Цитата Сообщение от Vetochka Посмотреть сообщение
А что происходит с именами групп? Проигрываю одну и ту же миссию, получаю имя группы (например, убитого самолета) в одних случаях получается имя как прописано в миссии, в других на том же самом самолете имя группы становится NoName. Игрок всегда определяется правильно.
Cтартануть группу по action.Do() тоже получается как-то загадочно. В одной и той же миссии, не трогая ни саму миссию, ни скрипта, то стартует, то не стартует. Гарантированно лечится заходом в полный редактор, переназначением имени группы и переназначением стартуемой группы в действиях.
Подскажите как это лечить?
Миссии для оффлайна.
Имхо, группа, которая стартует скриптом (с помощью действия скажем), по сути относится уже к другой миссии. Попробуй во-первых, назначит переменной MissionNumberListener значение -1, примерно вот так:

Код:
public override void OnBattleStarted()
{
     base.OnBattleStarted();
     MissionNumberListener = -1;
}
NONAME выпадает, если актор относится к другой миссии, а указанным выше кодом мы заставляем текущую миссию будет слушать все события, происходящие в подмиссиях.

Во вторых, имя группы состоит из собственно имени группы и префикса "принадлежности к миссии" (номер миссии с двоеточием). Получить правильно полное имя группы (например для использования в GamePlay.gpActorByName()) можно примерно вот так:

Код:
public override void OnActorCreated(int missionNumber, string shortName, AiActor actor)
{
    base.OnActorCreated(missionNumber, shortName, actor);
    string fullName = ActorName.Full(missionNumber, shortName);
}
В любом событии, относящемся к акторам, в первых двух параметрах передаются собственно номер миссии, где произошло событие, и короткое имя актора (как указано в файле миссии). Из двух этих параметров мы и получаем полное имя актора.