???
Математика на уровне МГУ

Page 28 of 32 FirstFirst ... 18242526272829303132 LastLast
Results 676 to 700 of 789

Thread: Вопросы.

  1. #676
    hehehe 111 podvoxx's Avatar
    Join Date
    Aug 2008
    Location
    Барнаул - Питер
    Age
    42
    Posts
    4,245

    Re: Вопросы.

    Спасибо, информация по параметрам очень пригодится.
    Еще параметр видел, но пока не проверял - I_Time. Это время на часах в кабине должно быть?

  2. #677
    Старший Офицер Форума
    Join Date
    Feb 2002
    Location
    Moscow
    Age
    48
    Posts
    6,904
    Images
    51

    Re: Вопросы.

    Quote Originally Posted by podvoxx View Post
    Спасибо, информация по параметрам очень пригодится.
    Еще параметр видел, но пока не проверял - I_Time. Это время на часах в кабине должно быть?
    I_Time нет, есть I_Timer - часы и секундомер:
    Code:
    /// <summary>
            /// [Inst: Timer]
            /// <para>Returns timer reading.</para>
            /// <para>Generic subtype (-1) shows clock / time of day, hours, [0.0, 24.0);</para>
            /// <para>Subtype 0 shows stopwatch reading, seconds.</para>
            /// </summary>
            I_Timer
    ещё время получить можно так - GamePlay.gpTimeofDay();
    Don't happy, be worry

  3. #678
    hehehe 111 podvoxx's Avatar
    Join Date
    Aug 2008
    Location
    Барнаул - Питер
    Age
    42
    Posts
    4,245

    Re: Вопросы.

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

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

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

    Code:
    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() равен нулю, т.е. номеру хост-миссии):

    Code:
    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

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

    Т.е. сейчас так выглядит:
    Code:
    [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]
    Выходит до загрузки хостмиссии номер подмиссии на единицу меньше определяется?
    2. Вопрос по линии фронта. Сейчас она черная, это будет правиться?

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

  4. #679
    Старший Офицер Форума
    Join Date
    Feb 2002
    Location
    Moscow
    Age
    48
    Posts
    6,904
    Images
    51

    Re: Вопросы.

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

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

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

    Code:
    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() равен нулю, т.е. номеру хост-миссии):

    Code:
    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

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

    Т.е. сейчас так выглядит:
    Code:
    [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().

    Quote Originally Posted by podvoxx View Post
    2. Вопрос по линии фронта. Сейчас она черная, это будет правиться?
    думаю да.

    Quote Originally Posted by podvoxx View Post
    3. Постоянно сообщают о взрывах на аэродромах в некоторых ангарах. Имеет ли смысл собрать информацию о таких ангарах?
    ну наверное да.
    Don't happy, be worry

  5. #680
    hehehe 111 podvoxx's Avatar
    Join Date
    Aug 2008
    Location
    Барнаул - Питер
    Age
    42
    Posts
    4,245

    Re: Вопросы.

    Quote Originally Posted by naryv View Post
    и я очень бы не советовал загружать какие-то подмиссии до старта основной, лучше это сделать хотя-бы в OnBattleStarted().
    Ясно, просто если грузить из OnBattleStarted, то там у меня не получалось в подмиссиях получать события по убитым акторам, т.е. подмиссия в таком случае "не видит" остальные миссии. Хотя надо будет еще проверить.

  6. #681
    Старший Офицер Форума
    Join Date
    Feb 2002
    Location
    Moscow
    Age
    48
    Posts
    6,904
    Images
    51

    Re: Вопросы.

    Quote Originally Posted by podvoxx View Post
    Ясно, просто если грузить из OnBattleStarted, то там у меня не получалось в подмиссиях получать события по убитым акторам, т.е. подмиссия в таком случае "не видит" остальные миссии. Хотя надо будет еще проверить.
    Code:
    public override void OnBattleStarted()
        {
            base.OnBattleStarted();
            MissionNumberListener = -1;
        }
    а после этого уже грузить. Но в Inited-е грузить точно не стоит - может абсолютно не корректно работать.

    PS а ещё - зачем 400 точек линии фронта ставить - она прокладывается как среднее между соседними маркерами разных цветов. Может проще в центре миссионных районов ставить по флажку соответствующего цвета ?
    Don't happy, be worry

  7. #682
    hehehe 111 podvoxx's Avatar
    Join Date
    Aug 2008
    Location
    Барнаул - Питер
    Age
    42
    Posts
    4,245

    Re: Вопросы.

    Quote Originally Posted by naryv View Post
    PS а ещё - зачем 400 точек линии фронта ставить - она прокладывается как среднее между соседними маркерами разных цветов. Может проще в центре миссионных районов ставить по флажку соответствующего цвета ?
    Там нужна точная граница, иначе аэродромы и дороги могут попасть на чужую территорию. Т.е. чтобы соответствовало нарисованной карте, а не наоборот

  8. #683
    Старший Офицер Форума
    Join Date
    Feb 2002
    Location
    Moscow
    Age
    48
    Posts
    6,904
    Images
    51

    Re: Вопросы.

    Quote Originally Posted by podvoxx View Post
    Там нужна точная граница, иначе аэродромы и дороги могут попасть на чужую территорию. Т.е. чтобы соответствовало нарисованной карте, а не наоборот
    ну на аэродромах тоже флажки поставить а дороги наверное не так важно на чьей территории, хотя если важно - можно, конечно и так
    Don't happy, be worry

  9. #684
    Старший Офицер Форума
    Join Date
    Feb 2002
    Location
    Moscow
    Age
    48
    Posts
    6,904
    Images
    51

    Re: Вопросы.

    Quote Originally Posted by Small_Bee View Post
    Процитирую сам себя, и отсюда вопрос - интересно, что команды вроде chat и battle stopped в такой конструкции проходят, но команда kick [player_name] - нет. Это принудительно так сделали или баг какой-то?
    В такой конструкции работают дополнительные команды, их 5 штук - "?","help", "battle", "missLoad","record" , чтобы использовать kick и другие основные команды надо вот такую конструкцию использовать :
    Code:
    if( !gameServerDef.consoleInput(command))   // выполнит если команда из доп. списка, в противном случае вернёт false и тогда - 
        gameServerDef.game.CmdExec(command)// должно выполнить основную команду
    Don't happy, be worry

  10. #685
    А кому сейчас легко? Small_Bee's Avatar
    Join Date
    Oct 2009
    Age
    45
    Posts
    1,685

    Re: Вопросы.

    Quote Originally Posted by naryv View Post
    В такой конструкции работают дополнительные команды, их 5 штук - "?","help", "battle", "missLoad","record" , чтобы использовать kick и другие основные команды надо вот такую конструкцию использовать :
    Code:
    if( !gameServerDef.consoleInput(command))   // выполнит если команда из доп. списка, в противном случае вернёт false и тогда - 
        gameServerDef.game.CmdExec(command)// должно выполнить основную команду
    Спасибо, но с game у меня связана проблема такого плана - любая попытка обращения к нему из скрипта миссии вызывает ошибку. Что-то связанное с сериализацией. Вечером воспроизведу и точнее скажу. Аналогичная ситуация, если подсовывать свою strategy.dll, и пытаться то же самое из нее сделать.
    Единственное, как работает - если подсовывать свой серверный аддин (по аналогии с синглом), и запускать ее из интерфейса игры. Там даже срабатывает активация аддина (по крайней мере событие активации приходит). А вот как то же самое сделать для выделенного сервера пока не допер.
    Пока эту проблему правда (именно с командой сервера) тупо обошел - сначала команда уходит коммандеру, а он уже непосредственно в консоль ее транслирует.
    И никак не получается разобрать, как работают консольные команды admin и secure.

  11. #686
    Старший Офицер Форума
    Join Date
    Feb 2002
    Location
    Moscow
    Age
    48
    Posts
    6,904
    Images
    51

    Re: Вопросы.

    Quote Originally Posted by Small_Bee View Post
    Спасибо, но с game у меня связана проблема такого плана - любая попытка обращения к нему из скрипта миссии вызывает ошибку. Что-то связанное с сериализацией. Вечером воспроизведу и точнее скажу.
    хорошо, буду ждать уточнение, постараемся исправить.

    UPD. Можно попробовать поиграть ключём scriptAppDomain в секции [rts] confs.ini:
    [rts]
    scriptAppDomain=0
    0 или 1 возможные значения, может быть ошибка уйдёт.

    Quote Originally Posted by Small_Bee View Post
    И никак не получается разобрать, как работают консольные команды admin и secure.
    Завтра напомните пожалуйста, попробую уточнить
    Last edited by naryv; 26-09-2012 at 18:12.
    Don't happy, be worry

  12. #687
    Старший Офицер Форума
    Join Date
    Feb 2002
    Location
    Moscow
    Age
    48
    Posts
    6,904
    Images
    51

    Re: Вопросы.

    Quote Originally Posted by Small_Bee View Post
    И никак не получается разобрать, как работают консольные команды admin и secure.
    admin позволяет назначить клиента администратором сервера. Такой клиент-админ может запускать все команды сервера - в консоль сервера их надо писать с приставкой sc перед командой, например "sc battle start" и т.п.

    secure позволяет поставить пароль на, армию, группу или юнит.
    Don't happy, be worry

  13. #688
    hehehe 111 podvoxx's Avatar
    Join Date
    Aug 2008
    Location
    Барнаул - Питер
    Age
    42
    Posts
    4,245

    Re: Вопросы.

    Quote Originally Posted by naryv View Post
    admin позволяет назначить клиента администратором сервера. Такой клиент-админ может запускать все команды сервера - в консоль сервера их надо писать с приставкой sc перед командой, например "sc battle start" и т.п.

    secure позволяет поставить пароль на, армию, группу или юнит.
    Т.е. можно назначить любого игрока админом и он сможет кикать нарушителей? А кроме ника можно как-то иденитифицировать игрока?(в идеале - steamID).

  14. #689
    Старший Офицер Форума
    Join Date
    Feb 2002
    Location
    Moscow
    Age
    48
    Posts
    6,904
    Images
    51

    Re: Вопросы.

    Quote Originally Posted by podvoxx View Post
    Т.е. можно назначить любого игрока админом и он сможет кикать нарушителей?
    да, любой такой игрок может выполнять все серверные команды, как сам сервер.
    Quote Originally Posted by podvoxx View Post
    А кроме ника можно как-то иденитифицировать игрока?(в идеале - steamID).
    можно пароль поставить, по стимИД - нет, нельзя.
    Don't happy, be worry

  15. #690
    А кому сейчас легко? Small_Bee's Avatar
    Join Date
    Oct 2009
    Age
    45
    Posts
    1,685

    Re: Вопросы.

    Quote Originally Posted by naryv View Post
    хорошо, буду ждать уточнение, постараемся исправить.
    Вот такая ошибка

    Скрытый текст:
    Code:
    =================================================
    System.Runtime.Serialization.SerializationException: Type 'XCmHVL2XxNBIYasUAhA.m
    5wJuI2TCJecIAJ6C2k' in assembly 'maddox, Version=1.0.0.0, Culture=neutral, Publi
    cKeyToken=8b6839725e48404f' is not marked as serializable.
    
    Server stack trace:
       at maddox.game.GameServerDef.get_game()
       at maddox.game.world.Strategy.Init(IGamePlay gamePlay) in C:\Users\Small_Bee\
    Documents\Visual Studio 2010\Projects\Strategy\Strategy\Strategy.cs:line 29
       at maddox.game.ScriptRemote.loadBattleScript(String assemblyFileName, IGamePl
    ay gamePlay)
       at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(
    IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInCont
    ext, Object[]& outArgs)
       at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMes
    sage msg, Int32 methodPtr, Boolean fExecuteInContext)
    
    Exception rethrown at [0]:
       at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage req
    Msg, IMessage retMsg)
       at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgDa
    ta, Int32 type)
       at maddox.game.IScriptRemote.loadBattleScript(String assemblyFileName, IGameP
    lay gamePlay)
       at 5gH4oknoo5EY5CgCVcx.0YwoYOnr3vYskAKoCh6.yxDI29fawsP()
    =================================================
    
    =================================================
    System.Runtime.Serialization.SerializationException: Type 'XCmHVL2XxNBIYasUAhA.m
    5wJuI2TCJecIAJ6C2k' in assembly 'maddox, Version=1.0.0.0, Culture=neutral, Publi
    cKeyToken=8b6839725e48404f' is not marked as serializable.
    
    Server stack trace:
       at maddox.game.GameServerDef.get_game()
       at maddox.game.world.Strategy.Init(IGamePlay gamePlay) in C:\Users\Small_Bee\
    Documents\Visual Studio 2010\Projects\Strategy\Strategy\Strategy.cs:line 29
       at maddox.game.ScriptRemote.loadBattleScript(String assemblyFileName, IGamePl
    ay gamePlay)
       at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(
    IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInCont
    ext, Object[]& outArgs)
       at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMes
    sage msg, Int32 methodPtr, Boolean fExecuteInContext)
    
    Exception rethrown at [0]:
       at 5gH4oknoo5EY5CgCVcx.0YwoYOnr3vYskAKoCh6.yxDI29fawsP()
       at MW1vr45kkDswEmVZaHH.nYyHpA5yJ8g95O4DLEa.f3jWCkg4F3(vjbTQEEtEVyjgU6D54J )
    =================================================
    
    =================================================
    System.Runtime.Serialization.SerializationException: Type 'XCmHVL2XxNBIYasUAhA.m
    5wJuI2TCJecIAJ6C2k' in assembly 'maddox, Version=1.0.0.0, Culture=neutral, Publi
    cKeyToken=8b6839725e48404f' is not marked as serializable.
    
    Server stack trace:
       at maddox.game.GameServerDef.get_game()
       at maddox.game.world.Strategy.Init(IGamePlay gamePlay) in C:\Users\Small_Bee\
    Documents\Visual Studio 2010\Projects\Strategy\Strategy\Strategy.cs:line 29
       at maddox.game.ScriptRemote.loadBattleScript(String assemblyFileName, IGamePl
    ay gamePlay)
       at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(
    IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInCont
    ext, Object[]& outArgs)
       at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMes
    sage msg, Int32 methodPtr, Boolean fExecuteInContext)
    
    Exception rethrown at [0]:
       at MW1vr45kkDswEmVZaHH.nYyHpA5yJ8g95O4DLEa.f3jWCkg4F3(vjbTQEEtEVyjgU6D54J )
       at MW1vr45kkDswEmVZaHH.nYyHpA5yJ8g95O4DLEa.VaIifIGEbs1lvhe8qWB(Object )
       at MW1vr45kkDswEmVZaHH.nYyHpA5yJ8g95O4DLEa.Yi0WiwFXpL(vjbTQEEtEVyjgU6D54J )
       at MW1vr45kkDswEmVZaHH.nYyHpA5yJ8g95O4DLEa.EpqW0os9d1(String )
       at XCmHVL2XxNBIYasUAhA.m5wJuI2TCJecIAJ6C2k.MissionLoad(String )
    =================================================
    
    =================================================
    System.Runtime.Serialization.SerializationException: Type 'XCmHVL2XxNBIYasUAhA.m
    5wJuI2TCJecIAJ6C2k' in assembly 'maddox, Version=1.0.0.0, Culture=neutral, Publi
    cKeyToken=8b6839725e48404f' is not marked as serializable.
    
    Server stack trace:
       at maddox.game.GameServerDef.get_game()
       at maddox.game.world.Strategy.Init(IGamePlay gamePlay) in C:\Users\Small_Bee\
    Documents\Visual Studio 2010\Projects\Strategy\Strategy\Strategy.cs:line 29
       at maddox.game.ScriptRemote.loadBattleScript(String assemblyFileName, IGamePl
    ay gamePlay)
       at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(
    IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInCont
    ext, Object[]& outArgs)
       at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMes
    sage msg, Int32 methodPtr, Boolean fExecuteInContext)
    
    Exception rethrown at [0]:
       at XCmHVL2XxNBIYasUAhA.m5wJuI2TCJecIAJ6C2k.MissionLoad(String )
       at aX2DOmhyS6kclbFDNtd.c6MannhpCKJgNfMedU4.DNgTRJ0qZgs(gPJU6kIZ4shGykFNZg7 )
       at aX2DOmhyS6kclbFDNtd.c6MannhpCKJgNfMedU4.ZJ8TYghii8gjhjgJGaF.rVjXD1enz1g4TJ
    NGAfGc(Object , Object )
       at aX2DOmhyS6kclbFDNtd.c6MannhpCKJgNfMedU4.ZJ8TYghii8gjhjgJGaF.lnATRrMeUxh(gP
    JU6kIZ4shGykFNZg7 )
       at aX2DOmhyS6kclbFDNtd.c6MannhpCKJgNfMedU4.y72nUBeniTInHs9txyUS(Object , Obje
    ct )
       at aX2DOmhyS6kclbFDNtd.c6MannhpCKJgNfMedU4.consoleInput(String )
       at 3FZcxHms5IqjoeGeo2h.F0VeDtmByYlY9Blsrhq.SFKIPXhgdov(String )
       at IE6CYH9RP8HnCFpewZx.y26yKC95JK9uMUhliYG.vc5cAq3bmR4(String , c7ZuPW9BqdyfJ
    C6pStx )
    =================================================
    >battle start
    
    =================================================
    System.ApplicationException: Mission: Mission not loaded.
       at MW1vr45kkDswEmVZaHH.nYyHpA5yJ8g95O4DLEa.uZlW3QAC9N(Double )
       at MW1vr45kkDswEmVZaHH.nYyHpA5yJ8g95O4DLEa.OtqWYy0BF1()
       at XCmHVL2XxNBIYasUAhA.m5wJuI2TCJecIAJ6C2k.BattleStart()
       at aX2DOmhyS6kclbFDNtd.c6MannhpCKJgNfMedU4.s9DTR3ZqI4t(gPJU6kIZ4shGykFNZg7 )
       at aX2DOmhyS6kclbFDNtd.c6MannhpCKJgNfMedU4.ZJ8TYghii8gjhjgJGaF.rVjXD1enz1g4TJ
    NGAfGc(Object , Object )
       at aX2DOmhyS6kclbFDNtd.c6MannhpCKJgNfMedU4.ZJ8TYghii8gjhjgJGaF.lnATRrMeUxh(gP
    JU6kIZ4shGykFNZg7 )
       at aX2DOmhyS6kclbFDNtd.c6MannhpCKJgNfMedU4.y72nUBeniTInHs9txyUS(Object , Obje
    ct )
       at aX2DOmhyS6kclbFDNtd.c6MannhpCKJgNfMedU4.consoleInput(String )
       at 3FZcxHms5IqjoeGeo2h.F0VeDtmByYlY9Blsrhq.SFKIPXhgdov(String )
       at IE6CYH9RP8HnCFpewZx.y26yKC95JK9uMUhliYG.vc5cAq3bmR4(String , c7ZuPW9BqdyfJ
    C6pStx )
    =================================================


    И кусочек кода Strategy, который ее вызывает

    Code:
    public override void Init(IGamePlay gamePlay)
            {
                base.Init(gamePlay);
                if (gamePlay is GameServerDef)
                {
                    gameServer = (GameServerDef)gamePlay;
                    gameServer.EventChat += new GameDef.Chat(gameServer_EventChat);
                    GameServerIterface gi = gameServer.game;
                    string addinName = gameServer.addInName;
                    this.GamePlay.gpLogServer(null, "Addin name is `" + addinName + "`", null);
                }   
            }
    
            public override void OnEventGame(GameEventId eventId, object eventArg0, object eventArg1, int eventArgInt)
            {
                base.OnEventGame(eventId, eventArg0, eventArg1, eventArgInt);
            }
    А именно строка GameServerIterface gi = gameServer.game;
    Похожую ошибку вызывает также строка
    gameServer.EventChat += new GameDef.Chat(gameServer_EventChat);
    если ее написать в скрипте миссии. В стратегии нормально.

  16. #691
    Старший Офицер Форума
    Join Date
    Feb 2002
    Location
    Moscow
    Age
    48
    Posts
    6,904
    Images
    51

    Re: Вопросы.

    Quote Originally Posted by Small_Bee View Post
    Вот такая ошибка



    И кусочек кода Strategy, который ее вызывает

    Code:
    public override void Init(IGamePlay gamePlay)
            {
                base.Init(gamePlay);
                if (gamePlay is GameServerDef)
                {
                    gameServer = (GameServerDef)gamePlay;
                    gameServer.EventChat += new GameDef.Chat(gameServer_EventChat);
                    GameServerIterface gi = gameServer.game;
                    string addinName = gameServer.addInName;
                    this.GamePlay.gpLogServer(null, "Addin name is `" + addinName + "`", null);
                }   
            }
    
            public override void OnEventGame(GameEventId eventId, object eventArg0, object eventArg1, int eventArgInt)
            {
                base.OnEventGame(eventId, eventArg0, eventArg1, eventArgInt);
            }
    А именно строка GameServerIterface gi = gameServer.game;
    Похожую ошибку вызывает также строка
    gameServer.EventChat += new GameDef.Chat(gameServer_EventChat);
    если ее написать в скрипте миссии. В стратегии нормально.
    по словам главного программиста
    [rts]
    scriptAppDomain=0
    должно помочь
    Don't happy, be worry

  17. #692
    А кому сейчас легко? Small_Bee's Avatar
    Join Date
    Oct 2009
    Age
    45
    Posts
    1,685

    Re: Вопросы.

    Quote Originally Posted by naryv View Post
    по словам главного программиста
    [rts]
    scriptAppDomain=0
    должно помочь
    При этой опции и скрипт работает по другому - по крайней мере относительно событий, связанных со стартом и остановкой битвы. Как именно я детально пока не разбирался (вроде они не вызываются должным образом). Т.е. на данный момент это не подходит.

  18. #693
    hehehe 111 podvoxx's Avatar
    Join Date
    Aug 2008
    Location
    Барнаул - Питер
    Age
    42
    Posts
    4,245

    Re: Вопросы.

    А АИ наземки правился? Просто колонны как-то плохо ездить стали(машинки разных типов). Ведущая машина постоянно на три-пять корпусов влево по направлению движения держится. Спотыкаются друг об друга часто, раньше стабильней было и резвей ехали

  19. #694
    Старший Офицер Форума
    Join Date
    Feb 2002
    Location
    Moscow
    Age
    48
    Posts
    6,904
    Images
    51

    Re: Вопросы.

    Quote Originally Posted by Small_Bee View Post
    При этой опции и скрипт работает по другому - по крайней мере относительно событий, связанных со стартом и остановкой битвы. Как именно я детально пока не разбирался (вроде они не вызываются должным образом). Т.е. на данный момент это не подходит.
    как я понял, при scriptAppDomain=1(по умолчанию) весь game пытается перекинуться в другой домен, что и вызывает ошибку сериализации, глав. программист сказал, что вообще game не планировался для работы из скрипта - он для своего сервера скорее. При scriptAppDomain=0 game остаётся в своём домене и ошибку не должен давать,а вот что за проблема с стартом и стопом - не знаю, вроде-бы не должно ничего страшного происходить.

    Quote Originally Posted by podvoxx View Post
    А АИ наземки правился? Просто колонны как-то плохо ездить стали(машинки разных типов). Ведущая машина постоянно на три-пять корпусов влево по направлению движения держится. Спотыкаются друг об друга часто, раньше стабильней было и резвей ехали
    только это -
    Quote Originally Posted by naryv View Post
    ага, увеличили ещё на полметра в каждую сторону.
    у меня вроде как ездили так и ездят, может им дорога узковата, если на обочину их маршрут сильно вынуждает выехать - они пытаются вернуться на дорогу, поэтому могут быть косяки.


    Для юзерских меток - вот пример миссии tests.zip при создании юзером метки - пишется об этом сообщение и в точку метки от позиции игрока +1000м вылетают бомбардировщики, метка рисуется у всех клиентов. Есть один момент - ивенты о метках приходят в скрипт в сингле, либо от клиентов в сетевой игре, сервер сам свои ивенты не получает.
    Don't happy, be worry

  20. #695
    А кому сейчас легко? Small_Bee's Avatar
    Join Date
    Oct 2009
    Age
    45
    Posts
    1,685

    Re: Вопросы.

    Quote Originally Posted by naryv View Post
    как я понял, при scriptAppDomain=1(по умолчанию) весь game пытается перекинуться в другой домен, что и вызывает ошибку сериализации, глав. программист сказал, что вообще game не планировался для работы из скрипта - он для своего сервера скорее. При scriptAppDomain=0 game остаётся в своём домене и ошибку не должен давать,а вот что за проблема с стартом и стопом - не знаю, вроде-бы не должно ничего страшного происходить.
    С game вроде понятно.
    Ок, может моя ошибка была где-то, попробую позже наглядный пример накидать, что бы видно было разницу.

  21. #696
    hehehe 111 podvoxx's Avatar
    Join Date
    Aug 2008
    Location
    Барнаул - Питер
    Age
    42
    Posts
    4,245

    Re: Вопросы.

    Quote Originally Posted by naryv View Post
    только это - у меня вроде как ездили так и ездят, может им дорога узковата, если на обочину их маршрут сильно вынуждает выехать - они пытаются вернуться на дорогу, поэтому могут быть косяки.
    Не знаю, может из-за сборной колонны(могут быть танки с грузовиками) так. Но первая машина всегда в стороне от дороги, позже еще потестирую. До этого проверял на двух разных дорогах, результат примерно один и тот же.
    И они точно не едут по одной колее. Т.е. к примеру 5-6 машин более-менее ровно идут, а пара драндулетов на корпус или больше может в сторону уходить.

  22. #697
    3GIAP.ru -atas-'s Avatar
    Join Date
    Dec 2001
    Location
    Москва
    Age
    55
    Posts
    2,992
    Blog Entries
    1

    Re: Вопросы.

    На форуме 1С не могут с метками разобраться. Нужна помощь http://forum.1cpublishing.eu/showthread.php?t=34676
    ...зелёные горят.
    ----------------------

    i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.

  23. #698
    Старший Офицер Форума
    Join Date
    Feb 2002
    Location
    Moscow
    Age
    48
    Posts
    6,904
    Images
    51

    Re: Вопросы.

    Quote Originally Posted by -atas- View Post
    На форуме 1С не могут с метками разобраться. Нужна помощь http://forum.1cpublishing.eu/showthread.php?t=34676
    Ага, спасибо за размещение ссылки на пример там, из примера вроде всё должно быть понятно, еслли нет, ребята здесь спросят.
    Don't happy, be worry

  24. #699

    Re: Вопросы.

    Hello naryv,

    thanks for posting the hind with "scriptAppDomain = 0", this finally allows me to register to the EventChat.

    I have some problems with the creation of user labels. Basically I want to use gpMakeUserLabel to create a user label for each waypoint of an air group, and than use gpMakeUserLabel to draw it to the player. This is needed to show the waypoints to the players under full real realism settings.

    Code:
    public override void OnPlaceEnter(Player player, AiActor actor, int placeIndex)
    {
        base.OnPlaceEnter(player, actor, placeIndex);
    
        if (actor is AiAircraft)
        {
            AiAircraft aiAircraft = actor as AiAircraft;
            AiAirGroup aiAirGroup = aiAircraft.AirGroup();
            if (aiAirGroup != null)
            {
                AiWayPoint[] waypoints = aiAirGroup.GetWay();
    
                foreach (AiWayPoint waypoint in waypoints)
                {
                    GPUserLabel userLabel = GamePlay.gpMakeUserLabel(new maddox.GP.Point2d(waypoint.P.x, waypoint.P.x), player, waypoint.P.z.ToString(System.Globalization.CultureInfo.InvariantCulture.NumberFormat), GamePlay.gpTimeofDay(), (int)GPUserIconType.Waypoint);
                    GamePlay.gpDrawUserLabel(new Player[] { player }, userLabel);
                }
            }
        }
    }
    The problem is that the labels are not displayed. The creation seems to have been successful, at least gpMakeUserLabel didn't return null. There is also no error or exception in the log.

    Am I missing something? Do I have to store the created user label in order to display it? Is it because the same player is used to create and draw it?
    Last edited by 41Sqn_Banks; 11-10-2012 at 03:27.

  25. #700
    Старший Офицер Форума
    Join Date
    Feb 2002
    Location
    Moscow
    Age
    48
    Posts
    6,904
    Images
    51

    Re: Вопросы.

    Quote Originally Posted by 41Sqn_Banks View Post
    Hello naryv,
    Hi Banks!

    Quote Originally Posted by 41Sqn_Banks View Post
    I have some problems with the creation of user labels. Basically I want to use gpMakeUserLabel to create a user label for each waypoint of an air group, and than use gpMakeUserLabel to draw it to the player. This is needed to show the waypoints to the players under full real realism settings.

    Code:
    public override void OnPlaceEnter(Player player, AiActor actor, int placeIndex)
    {
        base.OnPlaceEnter(player, actor, placeIndex);
    
        if (actor is AiAircraft)
        {
            AiAircraft aiAircraft = actor as AiAircraft;
            AiAirGroup aiAirGroup = aiAircraft.AirGroup();
            if (aiAirGroup != null)
            {
                AiWayPoint[] waypoints = aiAirGroup.GetWay();
    
                foreach (AiWayPoint waypoint in waypoints)
                {
                    GPUserLabel userLabel = GamePlay.gpMakeUserLabel(new maddox.GP.Point2d(waypoint.P.x, waypoint.P.x), player, waypoint.P.z.ToString(System.Globalization.CultureInfo.InvariantCulture.NumberFormat), GamePlay.gpTimeofDay(), (int)GPUserIconType.Waypoint);
                    GamePlay.gpDrawUserLabel(new Player[] { player }, userLabel);
                }
            }
        }
    }
    The problem is that the labels are not displayed. The creation seems to have been successful, at least gpMakeUserLabel didn't return null. There is also no error or exception in the log.

    Am I missing something? Do I have to store the created user label in order to display it? Is it because the same player is used to create and draw it?
    Now in single mission there would be event OnUserCreateUserLabel(GPUserLabel ul) after you make gpDrawUserLabel(), but it really don't display, this is bug ( hope it would be fixed with next patch, we didn't test it this way in single). But it should work in online missions, displaying labels for users thats not a server, i mean client players would get displayed labels, server player wouldn't.
    Don't happy, be worry

Page 28 of 32 FirstFirst ... 18242526272829303132 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •