Цитата Сообщение от podvoxx Посмотреть сообщение
1. Снова вопрос по GamePlay.gpNextMissionNumber(), намучался я тут с ним.
При вот таком применении выдает номер подмиссии 0. Почему так может быть? До этого -1 было получается? Почему не 1?

Код:
public override void Inited()
    {
        SendMessage.ToServer("[TEST] Номер подмиссии - [{0}]", GamePlay.gpNextMissionNumber());
        GamePlay.gpPostMissionLoad("missions\\SMP\\Battle\\submission\\destroyAI.mis");
       
    }
Inited() вызывается до загрузки хост миссии, поэтому gpNextMissionNumber() - показывает 0, это номер хост миссии будет.
Цитата Сообщение от podvoxx Посмотреть сообщение
Задача была в методе OnActorCreated сохранить все созданные акторы в заранее созданные списки. Актор добавляется в список только если номер подмиссии совпадает с тем, что получен при помощи GamePlay.gpNextMissionNumber(). Потом этими списками легко управлять: удалять акторы, заново создавать и т.п.
Далее необходимо было удалить все созданные акторы из одного из таких списков, создать новые и также добавить по номеру подмиссии в этот же список. Аналогично третья чистка/замена
В игре выглядит так - город сначала имеет обычное зенитное прикрытие. Как только его выбирают для штурма - все зенитки удаляются и загружается усиленный набор зениток. Штурм закончился, снова загрузился первоначальный набор зениток. Это работает и вполне нормально.
Однако сначала я не заметил баг, но потом попались на глаза зенитки синие и красные в одной точке, так как удаление акторов не происходило из-за неправильно определенного номера подмиссии. Разница была в единицу.
- Т.е. первая загрузка зениток - номер определен неверно, на единицу меньше
- Вторая и третья, уже во время миссии - номер в GamePlay.gpNextMissionNumber() верный

Тут еще особенность, точнее две. В миссии используется наследование от миссии командера. И вторая - первоначально загрузка зениток происходила до Inited(), примерно так:

Код:
public class Mission : RSTMission
{
    MissionBOR Data = MissionBOR.GetInstance; // Get MissionSMP class
    public override void Inited()
    {
        SendMessage.ToServer("[TEST] Номер подмиссии - [{0}]", GamePlay.gpNextMissionNumber());
        GamePlay.gpPostMissionLoad("missions\\SMP\\Battle\\submission\\destroyAI.mis");
       
    }
}
В этом Data в методе создания зениток правильный номер подмиссии определялся только если прибавить к нему единицу(так как на этот момент GamePlay.gpNextMissionNumber() равен нулю, т.е. номеру хост-миссии):

Код:
public void SetAAA()
        {
            AAAMisNumber = GamePlay.gpNextMissionNumber() + 1;
            SMPLibrary.LoadSubmission(BORLibrary.CreateAAArtilleryByTemplate(mapFile, this.Army, 0.2));
            SendMessage.ToServer("[SERVER]: Номер подмиссии ААА гарнизона [{0}] - [{1}]", Name, AAAMisNumber);
        }
Однако если потом в методе OnTickGame(к примеру) удалить акторы-зенитки и создать новые методом SetAAA(), то к номеру подмиссии уже не нужно прибавлять единицу, а если прибавить - то новые акторы не попадут в список через метод OnActorCreated

Код:
public void SetAAA()
        {
            AAAMisNumber = GamePlay.gpNextMissionNumber();
            SMPLibrary.LoadSubmission(BORLibrary.CreateAAArtilleryByTemplate(mapFile, this.Army, 0.2));
        }
Позже я вынес первое создание акторов в OnTickGame, номера стали совпадать.

Т.е. сейчас так выглядит:
Код:
[15:19:09]	35>difficulty Vulnerability 1
[15:19:09]	36>difficulty WindTurbulence 1
[15:19:09]	37>missLoad missions\SMP\Battle\battle.mis
[15:19:19]	38>[15:19:19]	Loading mission ...
[15:19:19]	Server to [Server]: ......................
[15:19:19]	Server to [Server]: [SERVER]: Инициализация миссии...ok
[15:19:20]	Server to [Server]: [SERVER]: Load hostmission: Battle.mis
[15:19:20]	Server to [Server]: [TEST] Номер подмиссии - [0]
[15:19:20]	Load landscape...
[15:19:22]	Load bridges
[15:19:22]	LongBridge: wrong width. (3)
[15:19:24]	Load static objects...
[15:19:25]	Mission loaded. time = 5,933
[15:19:25]	Loading mission ...
[15:19:25]	Server to [Server]: [SERVER]: Load submission: destroyAI.mis
[15:19:25]	Server to [Server]: [TEST]: ЗАГРУЖЕНА МИССИЯ # [1]
Выходит до загрузки хостмиссии номер подмиссии на единицу меньше определяется?
до загрузки 0-й миссии gpNextMissionNumber() будет показывать 0 (см. лог -
[15:19:09] 37>missLoad missions\SMP\Battle\battle.mis
[15:19:19] 38>[15:19:19] Loading mission ... - миссия начала загружаться
[15:19:20] Server to [Server]: [TEST] Номер подмиссии - [0] - она ещё не загружена, миссий в битве ещзё нет, gpNextMissionNumber() показывает 0
[15:19:25] Mission loaded. time = 5,933 а вот тут она уже загрузилась, в битве есть миссия, gpNextMissionNumber() покажет 1),и я очень бы не советовал загружать какие-то подмиссии до старта основной, лучше это сделать хотя-бы в OnBattleStarted().

Цитата Сообщение от podvoxx Посмотреть сообщение
2. Вопрос по линии фронта. Сейчас она черная, это будет правиться?
думаю да.

Цитата Сообщение от podvoxx Посмотреть сообщение
3. Постоянно сообщают о взрывах на аэродромах в некоторых ангарах. Имеет ли смысл собрать информацию о таких ангарах?
ну наверное да.