DogenatorКасаемо пункта 2, я не совсем понял, что вы подразумеваете под «function_1” и “function_2”… Название самих функций? Или это функции, подобные function first_day , но для проверки других дней?
Названия функций, просто для примера. Скажем, возникло у вас желание сделать два события для одного триггера:
function first_day ()
...
end;
Trigger(NEW_DAY_TRIGGER, 'first_day' );
function Spawn_army()
....
end;
Trigger(NEW_DAY_TRIGGER, 'Spawn_army' );
Второй триггер перезапишет первый, работать не будет. Аналог этой конструкции:
function NewDayTrigger()
first_day();
Spawn_army();
end
Trigger(NEW_DAY_TRIGGER, 'NewDayTrigger' );
То есть чтобы исполнить функцию не надо обязательно Trigger'ы, startThread'ы и прочее, просто пишешь название функции и скобочки. В любом месте, в любых количествах. Ваши функции ничем не отличаются от встроенных функций, типа того же print().
Если что-то не работает, надо последовательно дебажить. Наверное, случай, с которым сталкивались все - нафигачил кода, допустил в нём ошибку в синтаксисе, ну там название функции вместо print() написал pint(), почти и не заметно. Движок игры просто выполняет скрипт карты строчка за строчкой - дошёл до неправильного названия функции, не понял что это такое, вылетел. Всё, скрипт больше не выполняется. Вы не поняли в чём дело, начали другой код какой-нибудь пробовать писать, а он тоже не работает. Можно сломать мозг думая что вы делаете не так, а на самом деле выполнение скрипта до вашего нового кода ни разу даже не доходило, крашилось раньше. Поэтому и очень важно ставить везде print'ы, чтобы понимать какой участок кода выполнился, какой нет. Я вам гарантирую, что если скопировать из ЧаВо конкретный кусок кода и вставить в карту (и не ошибиться в названиях объектов и файлов), то точно будет работать.