Форум HeroesWorld-а - Показать сообщение отдельно - Скрипты для начинающих
Показать сообщение отдельно
#184
Старый 12.05.2018, 00:43
  #184
^
Jack_of_shadows
 
Аватар для Jack_of_shadows
📖
Регистрация: 08.09.2013
Сообщения: 510
Выставка наград
Регистрация: 08.09.2013
Сообщения: 510
Выставка наград
По умолчанию
Re: Скрипты для начинающих

Вся проблема была в том, что команда QuestionBox ссылается на новую функцию, в которой значение "dwell" из функции "capt_alt_dw" теряется, поэтому игре невозможно было задать, какой именно двеллинг перестраивать в этот момент. У меня это пока решено через сравнивание местоположения объектов, но, может это можно сделать как-то адекватнее и проще?
Что-то вы на пустом месте трудности создаёте. Сохраняете координаты в глобальные переменные, потом обращаетесь к ним в функции add_alt_dw (). Ведь точно также можно сразу сохранить название объекта в глобальную переменную, и потом сразу его использовать:
	function capt_alt_dw (prevowner, newowner, hero, dwell )
  alt_dw_dwell = dwell;
  QuestionBox("текст c вопросом бла бла бла", "add_alt_dw", nil); 
end;

function add_alt_dw ()
  ReplaceDwelling(alt_dw_dwell, TOWN_ACADEMY, 991 );
end;
А ещё я бы советовал использовать более сложные имена для функций и глобальных переменных, если хотите встраивать их в любую карту. Чем сложнее, тем больше шансов что ни с чем не совпадёт.

вообще все эти скрипты, сильно ли грузят игру?
Не заморачивайтесь по этому поводу. У меня на карте в триггере нового дня каждый ход отрабатывало наверное под тысячу строк кода, и это было совсем не заметно. Долго выполняется только работа с объектами на карте - удалить объект, поставить новый, изменить количество существ - по субъективным оценкам на каждую такую операцию идёт подтупливание игры на пол секунды может быть.
__________________
РПГ-сценарий для HoMM5: Путь героя

ЧаВо по созданию карт для HoMM5: ЧаВо
РПГ-сценарий для HoMM5: Путь героя

ЧаВо по созданию карт для HoMM5: ЧаВо
Jack_of_shadows вне форума
Ответить с цитированием