Цитата Сообщение от Vetochka Посмотреть сообщение
Именно так. Но с триггерами все просто.
Внутри AMission дописываем следующее:


Код:
public class Mission : AMission
{
// ------здесь скрипт, который уже был, его не трогать. Вставлять дописанное перед последней скобкой скрипта 
// ----- вставлять отсюда -----------------
public override void OnTrigger(int missionNumber, string shortName, bool active)
    {
      
        AiAction action;
if ("tname1".Equals(shortName) && active) //tmane1 - имя 1-го триггера 
        {
            GamePlay.gpGetTrigger(shortName).Enable = false;
            action = GamePlay.gpGetAction("aname1"); //aname1 - имя действия 1, которое вызывается по срабатыванию 1-го триггера
            if (action != null)
            {
                action.Do();
            }
       }

if ("tname2".Equals(shortName) && active) //tmane2 - имя 2-го триггера 
        {
            GamePlay.gpGetTrigger(shortName).Enable = false;
            action = GamePlay.gpGetAction("aname2"); //aname2 - имя действия 2, которое вызывается по срабатыванию 2-го триггера
            if (action != null)
            {
                action.Do();
            }
       }
// аналогично можно вставлять сколько удодно триггеров и привязывать к ним действия


    }
// ------------ до сюда
} // а это последняя скобка скрипта :)

Можно ещё проще :
Код:
 
public override void OnTrigger(int missionNumber, string shortName, bool active)
    {
        base.OnTrigger(missionNumber, shortName, active);        
        AiAction action = GamePlay.gpGetAction(ActorName.Full(missionNumber, shortName));
        if (action != null)
            action.Do();
    }
так все триггеры будут запускать одноимённые экшены, не надо на каждый триггер код писать.


Цитата Сообщение от -atas- Посмотреть сообщение
После добавления этого куска кода в скрипт триггеры редактора начинают работать со скриптом.
а в чём "скрип"? Может быть MissionNumberListener неверно установлен? Напомню, на всякий случай - по умолчанию каждая миссия "слышит" только свои события, т.е. если управляющий скрипт у нас в первой запущенной миссии, она не узнает о событии вызванном триггером или актором в подгруженной другой миссии. Чтобы скрипт "слышал" все события - надо установить параметр MissionNumberListener в -1 , вот так:
Код:
public override void OnBattleStarted()
{
     base.OnBattleStarted();
     MissionNumberListener = -1;
}
, теперь такая миссия "слышит" события во всех дозагруженных миссиях .