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

Показано с 1 по 25 из 789

Тема: Вопросы.

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Re: Вопросы.

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

  2. #2
    Старший Офицер Форума
    Регистрация
    15.02.2002
    Адрес
    Moscow
    Возраст
    46
    Сообщений
    6,905
    Images
    51

    Re: Вопросы.

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

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

    Цитата Сообщение от Small_Bee Посмотреть сообщение
    И никак не получается разобрать, как работают консольные команды admin и secure.
    Завтра напомните пожалуйста, попробую уточнить
    Крайний раз редактировалось naryv; 26.09.2012 в 18:12.
    Don't happy, be worry

  3. #3

    Re: Вопросы.

    Цитата Сообщение от naryv Посмотреть сообщение
    хорошо, буду ждать уточнение, постараемся исправить.
    Вот такая ошибка

    Скрытый текст:
    Код:
    =================================================
    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, который ее вызывает

    Код:
    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);
    если ее написать в скрипте миссии. В стратегии нормально.

  4. #4
    Старший Офицер Форума
    Регистрация
    15.02.2002
    Адрес
    Moscow
    Возраст
    46
    Сообщений
    6,905
    Images
    51

    Re: Вопросы.

    Цитата Сообщение от Small_Bee Посмотреть сообщение
    Вот такая ошибка



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

    Код:
    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

  5. #5

    Re: Вопросы.

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

  6. #6
    Старший Офицер Форума
    Регистрация
    15.02.2002
    Адрес
    Moscow
    Возраст
    46
    Сообщений
    6,905
    Images
    51

    Re: Вопросы.

    Цитата Сообщение от Small_Bee Посмотреть сообщение
    И никак не получается разобрать, как работают консольные команды admin и secure.
    admin позволяет назначить клиента администратором сервера. Такой клиент-админ может запускать все команды сервера - в консоль сервера их надо писать с приставкой sc перед командой, например "sc battle start" и т.п.

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

  7. #7
    hehehe 111 Аватар для podvoxx
    Регистрация
    25.08.2008
    Адрес
    Барнаул - Питер
    Возраст
    41
    Сообщений
    4,245

    Re: Вопросы.

    Цитата Сообщение от naryv Посмотреть сообщение
    admin позволяет назначить клиента администратором сервера. Такой клиент-админ может запускать все команды сервера - в консоль сервера их надо писать с приставкой sc перед командой, например "sc battle start" и т.п.

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

  8. #8
    Старший Офицер Форума
    Регистрация
    15.02.2002
    Адрес
    Moscow
    Возраст
    46
    Сообщений
    6,905
    Images
    51

    Re: Вопросы.

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

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •