Скрипты - Страница 134 - Форум HeroesWorld-а

Быстрая навигация по основным разделам форума:
Турниры
КАРТЫ
Heroes 6
Heroes 5
Heroes 4
Heroes 3
Heroes 2
Heroes 1
Might&Magic

Герои Меча и Магии 5 - Картостроительство (Редактор карт) В этом разделе можно обсуждать все что касается редактора карт для Heroes of Might and Magic V. Так же здесь обсуждаем картостроительство.

Ответ
Страница 134 из 260
 
Опции темы
#1996
Старый 16.06.2015, 12:08
  #1996
^
Аскет2
📖
Регистрация: 06.06.2015
Сообщения: 74
Регистрация: 06.06.2015
Сообщения: 74
По умолчанию
Re: Скрипты

Нет, таки не работают скрипты. В чём дело? Посмотрите, если можно.
Вложения
Тип файла: zip MapScript.zip (1.2 Кбайт, 8 просмотров)
Аскет2 вне форума
Ответить с цитированием
#1997
Старый 16.06.2015, 12:53
  #1997
^
MasteR
 
Аватар для MasteR
📖
Регистрация: 24.01.2013
Сообщения: 3351
Выставка наград
Регистрация: 24.01.2013
Сообщения: 3351
Выставка наград
По умолчанию
Re: Скрипты

Аскет2Нет, таки не работают скрипты. В чём дело? Посмотрите, если можно.

Надо разблокировать консоль в игре, и там будет написано, в чем именно косяк в скрипте. Не выкладывать же каждый раз скрипт целиком сюда.

По поводу скрипта, мельком глянул, вот что заметил:

	function SetPlayerStartResources (player, wood, ore, mercury, crystal, sulfur, gem, gold)
  if player == 1
  then wood = 20
  ore = 20
  mercury = 10
  crystal = 15
  sulfur = 10
  gem = 10
  gold = 15000
end
end

вот это что такое? Изобретение велосипеда, еще и неправильное.
	SetPlayerStartResources (1, 20, 20, 10, 15, 10, 10, 15000)

--без всяких function и пр.
может так проще?


и да, для чего все таки вот эта функция?
	function alive()
	while IsHeroAlive("Hero9") do
		sleep(10)
	end
	Loose()
-- или --
  Loose(1)
end
Если это то, о чем я думаю, то можно сделать намного проще и понятней, без всяких циклов
MasteR вне форума
Ответить с цитированием
#1998
Старый 16.06.2015, 12:55
  #1998
^
Аскет2
📖
Регистрация: 06.06.2015
Сообщения: 74
Регистрация: 06.06.2015
Сообщения: 74
По умолчанию
Re: Скрипты

Ну, главное, работает.
Аскет2 вне форума
Ответить с цитированием
#1999
Старый 16.06.2015, 13:01
  #1999
^
MasteR
 
Аватар для MasteR
📖
Регистрация: 24.01.2013
Сообщения: 3351
Выставка наград
Регистрация: 24.01.2013
Сообщения: 3351
Выставка наград
По умолчанию
Re: Скрипты

Аскет2Ну, главное, работает.

Ну для общей информации скажу, что есть триггер, реагирующий на потерю игроком героя. Можно сделать так, что если потерян "тот самый" герой, игрок тут же проигрывал.
MasteR вне форума
Ответить с цитированием
#2000
Старый 16.06.2015, 13:10
  #2000
^
Аскет2
📖
Регистрация: 06.06.2015
Сообщения: 74
Регистрация: 06.06.2015
Сообщения: 74
По умолчанию
Re: Скрипты

Хотя, если честно, ничего не работает.
Аскет2 вне форума
Ответить с цитированием
#2001
Старый 16.06.2015, 13:34
  #2001
^
MasteR
 
Аватар для MasteR
📖
Регистрация: 24.01.2013
Сообщения: 3351
Выставка наград
Регистрация: 24.01.2013
Сообщения: 3351
Выставка наград
По умолчанию
Re: Скрипты

	function gnom (heroname)
  if heroname == "Hero9"
  then MessageBox (GetMapDataPath().."ha.txt")
  Trigger(REGION_ENTER_AND_STOP_TRIGGER, "Ha", nil);
end;
end;

Trigger(REGION_ENTER_AND_STOP_TRIGGER, "Ha", "ha");

Вот еще одна ошибка. В скрипте есть 2 функции gnom, и ни одной функции ha. Уж это можно было самому проверить
MasteR вне форума
Ответить с цитированием
#2002
Старый 16.06.2015, 13:44
  #2002
^
Аскет2
📖
Регистрация: 06.06.2015
Сообщения: 74
Регистрация: 06.06.2015
Сообщения: 74
По умолчанию
Re: Скрипты

Я нуб. Забыл написать в map.xdb дописать это

Добавлено через 1 минуту


Добавлено через 35 секунд
Короче, забыл про строку = скрипты не работают.

Добавлено через 2 минуты
Это уже исправил.
Аскет2 вне форума
Ответить с цитированием
#2003
Старый 16.06.2015, 16:42
  #2003
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

	function QuestPervii ()
  if HasArtefact ("Hero9", "TOME_OF_DESTRUCTION")  без кавычек, неверный id
    then MessageBox (GetMapDataPath().."QuestPervii.txt")
    ChangeHeroStat ("Hero9", STAT_DEFENSE, 7) STAT_DEFENCE
    RemoveArtefact ("Hero9", "TOME_OF_DESTRUCTION")  без кавычек, неверный id
   Trigger(OBJECT_TOUCH_TRIGGER, "Pervii", nil)
  else MessageBox (GetMapDataPath().."LoseL.txt")
end;
end;

	function QuestVtoroi ()
  if HasArtefacts ("Hero9", "SKULL_OF_MARKAL")  неправильное имя функции, id без кавычек, неверный id
    then MessageBox (GetMapDataPath().."QuestVtoroi.txt")
    ChangeHeroStat ("Hero9", STAT_OFFENCE, 7)
    RemoveArtefact ("Hero9", "SKULL_OF_MARKAL" ) без кавычек, неверный id
  Trigger(OBJECT_TOUCH_TRIGGER, "Vtoroi", nil)
  else MessageBox (GetMapDataPath().."LoseLI.txt")
end;
end;


	function alive()
	while IsHeroAlive("Hero9") do
		sleep(10)
	end
	Loose()
-- или --
  Loose(1)  убрать, дабы никого не смущать
end

	Trigger(OBJECT__TRIGGER, 'X', 'capture_town')  неправильный id триггера, указатель на несуществующую функцию
__________________
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
RedHeavenHero вне форума
Ответить с цитированием
#2004
Старый 16.06.2015, 17:05
  #2004
^
MasteR
 
Аватар для MasteR
📖
Регистрация: 24.01.2013
Сообщения: 3351
Выставка наград
Регистрация: 24.01.2013
Сообщения: 3351
Выставка наград
По умолчанию
Re: Скрипты

Чтобы не возиться со всякими константами типа REGION_ENTER_AND_STOP_TRIGGER, или TOME_OF_DESTRUCTION их лучше заменять на числа (все числа указаны в документе IDs for scripts). Так и компактнее, и позволит избежать ряд ошибок, почти незаметных при отладке.

Например коды
Trigger(REGION_ENTER_AND_STOP_TRIGGER, "Gnom", "gnom")
и
Trigger(6, "Gnom", "gnom")
работают одинаково, но вторую запись куда удобней использовать

Добавлено через 3 минуты
	function alive()
	while IsHeroAlive("Hero9") do
		sleep(10)
	end
	Loose()
-- или --
  Loose(1)  
end

	
function alive(heroname)
     if heroname=="Hero9" then
          Loose()
     end
end
Trigger(2, 1, "alive")
MasteR вне форума
Ответить с цитированием
#2005
Старый 16.06.2015, 17:09
  #2005
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

MasteRЧтобы не возиться со всякими константами типа REGION_ENTER_AND_STOP_TRIGGER, или TOME_OF_DESTRUCTION их лучше заменять на числа (все числа указаны в документе IDs for scripts). Так и компактнее, и позволит избежать ряд ошибок, почти незаметных при отладке.

Например коды
Trigger(REGION_ENTER_AND_STOP_TRIGGER, "Gnom", "gnom")
и
Trigger(6, "Gnom", "gnom")
работают одинаково, но вторую запись куда удобней использовать
Nargott не одобрит.
В Notepad++, где я, к примеру, пишу скрипты, при вводе первых букв константы предлагается список из слов в файле, остаётся только выбрать. Так шанс ошибиться меньше.

Добавлено через 2 минуты
	function alive()
	while IsHeroAlive("Hero9") do
		sleep(10)
	end
	Loose()
-- или --
  Loose(1)  
end

	
function alive(heroname)
     if heroname=="Hero9" then
          Loose()
     end
end
Trigger(2, 1, "alive")
Нужен скрипт, чтобы после смерти героя миссия провалилась. Заранее спс.
Второй сработает при любой потере игроком героя, первый - только при смерти/бегстве.
__________________
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
RedHeavenHero вне форума
Ответить с цитированием
#2006
Старый 16.06.2015, 17:13
  #2006
^
MasteR
 
Аватар для MasteR
📖
Регистрация: 24.01.2013
Сообщения: 3351
Выставка наград
Регистрация: 24.01.2013
Сообщения: 3351
Выставка наград
По умолчанию
Re: Скрипты

RedHeavenHeroNargott не одобрит.
В Notepad++, где я, к примеру, пишу скрипты, при вводе первых букв константы предлагается список из слов в файле, остаётся только выбрать. Так шанс ошибиться меньше.

Добавлено через 2 минуты


Второй сработает при любой потере игроком героя, первый - только при смерти.

Так то да. Но в данном конкретном случае потеря=смерть и смерть=потеря. Если б были всякие переходы героя от одного владельца к другому или что-то в этом роде, тогда да, была бы разница. И то триггер в любой момент можно отключить
MasteR вне форума
Ответить с цитированием
#2007
Старый 18.06.2015, 13:21
  #2007
^
Аскет2
📖
Регистрация: 06.06.2015
Сообщения: 74
Регистрация: 06.06.2015
Сообщения: 74
По умолчанию
Re: Скрипты

А как сделать так, чтобы страж границы потребовал для дальнейшего прохода деньги?
Аскет2 вне форума
Ответить с цитированием
#2008
Старый 18.06.2015, 16:58
  #2008
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

	function borderGuard()
  QuestionBox("ссылка на текст с вопросом", "bgok")
end

function bgok()
  local gold = GetPlayerResource(1, GOLD)
  if gold >= количество_золота then
    SetPlayerResource(1, GOLD, gold - количество_золота)
    RemoveObject("скриптовое имя стража границ")
  else
    MessageBox("ссылка на текст с оповещением о нехватке ресурсов")
  end
end

SetObjectEnabled("скриптовое имя стража границ", nil)
Trigger(4, "скриптовое имя стража границ", "borderGuard")
__________________
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
RedHeavenHero вне форума
Ответить с цитированием
#2009
Старый 18.06.2015, 18:36
  #2009
^
Аскет2
📖
Регистрация: 06.06.2015
Сообщения: 74
Регистрация: 06.06.2015
Сообщения: 74
По умолчанию
Re: Скрипты

То есть любого по цвету ставить надо, да?
Аскет2 вне форума
Ответить с цитированием
#2010
Старый 18.06.2015, 21:20
  #2010
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

Цвет значения не имеет.
__________________
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
RedHeavenHero вне форума
Ответить с цитированием
Ответ
Страница 134 из 260


Опции темы



Часовой пояс GMT +4, время: 02:35.


vBulletin v3.5.0, Copyright ©2000-2024, Jelsoft Enterprises Ltd. (Русский)

Яндекс цитирование    Top.Mail.Ru