예제 #1
0
        private void _InitSingleGame(SCPKG_STARTSINGLEGAMERSP svrGameInfo)
        {
            this._gameContextCommonData.GameType = svrGameInfo.bGameType;
            ResLevelCfgInfo levelCfg = null;

            if (this._gameContextCommonData.GameType == 2)
            {
                levelCfg = GameDataMgr.levelDatabin.GetDataByKey((long)svrGameInfo.iLevelId);
            }
            else if (this._gameContextCommonData.GameType == null)
            {
                levelCfg = GameDataMgr.levelDatabin.GetDataByKey((long)svrGameInfo.iLevelId);
                this._gameContextCommonData.LevelDifficulty = Singleton <CAdventureSys> .get_instance().currentDifficulty;
            }
            else if (this._gameContextCommonData.GameType == 7)
            {
                levelCfg = GameDataMgr.burnMap.GetDataByKey((long)Singleton <BurnExpeditionController> .GetInstance().model.Get_LevelID(Singleton <BurnExpeditionController> .GetInstance().model.curSelect_LevelIndex));
            }
            else if (this._gameContextCommonData.GameType == 8)
            {
                levelCfg = GameDataMgr.arenaLevelDatabin.GetDataByKey((long)svrGameInfo.iLevelId);
            }
            else if (this._gameContextCommonData.GameType == 1)
            {
                uint dwMapId      = svrGameInfo.stGameParam.get_stSingleGameRspOfCombat().dwMapId;
                byte bMapType     = svrGameInfo.stGameParam.get_stSingleGameRspOfCombat().bMapType;
                bool isWarmBattle = svrGameInfo.stGameParam.get_stSingleGameRspOfCombat().bIsWarmBattle > 0;
                byte bAILevel     = svrGameInfo.stGameParam.get_stSingleGameRspOfCombat().bAILevel;
                this._InitMultiGame(svrGameInfo.bGameType, (int)bMapType, dwMapId, isWarmBattle, (int)bAILevel);
                return;
            }
            this._SetSingleGame(levelCfg);
        }
예제 #2
0
 protected void DoNew9SlotCalc(SCPKG_STARTSINGLEGAMERSP inMessage)
 {
     if (inMessage.bGameType == 8 || inMessage.bGameType == 7)
     {
         this.Calc9SlotHeroStandingPosition(inMessage.stDetail.get_stSingleGameSucc());
     }
 }
예제 #3
0
        public TestGameContext(ref SCPKG_STARTSINGLEGAMERSP InMessage)
        {
            Singleton <ActorDataCenter> .get_instance().ClearHeroServerData();

            Player player = Singleton <GamePlayerCenter> .GetInstance().AddPlayer(1u, 1, 0, 1u, false, "test", 0, 0, 0uL, 0u, null, 0u, 0u, 0, 0, null);

            Singleton <GamePlayerCenter> .GetInstance().SetHostPlayer(1u);

            player.AddHero(InMessage.stDetail.get_stSingleGameSucc().astFighter[0].astChoiceHero[0].stBaseInfo.stCommonInfo.dwHeroID);
            COMDT_CHOICEHERO[] array = new COMDT_CHOICEHERO[]
            {
                new COMDT_CHOICEHERO()
            };
            array[0].stBaseInfo.stCommonInfo.dwHeroID = InMessage.stDetail.get_stSingleGameSucc().astFighter[0].astChoiceHero[0].stBaseInfo.stCommonInfo.dwHeroID;
            array[0].stBaseInfo.stCommonInfo.wSkinID  = InMessage.stDetail.get_stSingleGameSucc().astFighter[0].astChoiceHero[0].stBaseInfo.stCommonInfo.wSkinID;
            Singleton <ActorDataCenter> .get_instance().AddHeroesServerData(1u, array);

            Player player2 = Singleton <GamePlayerCenter> .GetInstance().AddPlayer(2u, 2, 0, 1u, true, string.Empty, 0, 0, 0uL, 0u, null, 0u, 0u, 0, 0, null);

            player2.AddHero(166u);
            array = new COMDT_CHOICEHERO[]
            {
                new COMDT_CHOICEHERO()
            };
            array[0].stBaseInfo.stCommonInfo.dwHeroID = 166u;
            Singleton <ActorDataCenter> .get_instance().AddHeroesServerData(2u, array);

            this.LevelContext = new SLevelContext();
            this.LevelContext.SetGameType(0);
            this.LevelContext.m_levelArtistFileName = PlayerPrefs.GetString("PrevewMapArt");
            base.levelContext.m_levelDesignFileName = PlayerPrefs.GetString("PrevewMapDesigner");
            base.levelContext.m_levelDifficulty     = 1;
        }
        public TestGameContext(ref SCPKG_STARTSINGLEGAMERSP InMessage)
        {
            Singleton <ActorDataCenter> .instance.ClearHeroServerData();

            Player player = Singleton <GamePlayerCenter> .GetInstance().AddPlayer(1u, COM_PLAYERCAMP.COM_PLAYERCAMP_1, 0, 1u, false, "test", 0, 0, 0uL, 0u, null, 0u, 0u, 0u, 0, 0, null, 0uL);

            Singleton <GamePlayerCenter> .GetInstance().SetHostPlayer(1u);

            player.AddHero(InMessage.stDetail.stSingleGameSucc.astFighter[0].astChoiceHero[0].stBaseInfo.stCommonInfo.dwHeroID);
            COMDT_CHOICEHERO[] array = new COMDT_CHOICEHERO[]
            {
                new COMDT_CHOICEHERO()
            };
            array[0].stBaseInfo.stCommonInfo.dwHeroID = InMessage.stDetail.stSingleGameSucc.astFighter[0].astChoiceHero[0].stBaseInfo.stCommonInfo.dwHeroID;
            array[0].stBaseInfo.stCommonInfo.wSkinID  = InMessage.stDetail.stSingleGameSucc.astFighter[0].astChoiceHero[0].stBaseInfo.stCommonInfo.wSkinID;
            Singleton <ActorDataCenter> .instance.AddHeroesServerData(1u, array);

            Player player2 = Singleton <GamePlayerCenter> .GetInstance().AddPlayer(2u, COM_PLAYERCAMP.COM_PLAYERCAMP_2, 0, 1u, true, string.Empty, 0, 0, 0uL, 0u, null, 0u, 0u, 0u, 0, 0, null, 0uL);

            player2.AddHero(166u);
            array = new COMDT_CHOICEHERO[]
            {
                new COMDT_CHOICEHERO()
            };
            array[0].stBaseInfo.stCommonInfo.dwHeroID = 166u;
            Singleton <ActorDataCenter> .instance.AddHeroesServerData(2u, array);

            this.LevelContext = new SLevelContext();
            this.LevelContext.SetGameType(COM_GAME_TYPE.COM_SINGLE_GAME_OF_ADVENTURE);
            this.LevelContext.m_levelArtistFileName = "ART_PGD_13_High_Artist";
            base.levelContext.m_levelDesignFileName = "PVP_17_Design";
            base.levelContext.m_levelDifficulty     = 1;
        }
예제 #5
0
 public void InitSingleGame(SCPKG_STARTSINGLEGAMERSP svrGameInfo)
 {
     this._ResetAllInfo();
     if (svrGameInfo != null)
     {
         this._InitSingleGame(svrGameInfo);
     }
 }
예제 #6
0
        public TestGameContext(ref SCPKG_STARTSINGLEGAMERSP InMessage)
        {
            Singleton <ActorDataCenter> .instance.ClearHeroServerData();

            Singleton <GamePlayerCenter> .GetInstance().AddPlayer(1, COM_PLAYERCAMP.COM_PLAYERCAMP_1, 0, 1, false, "test", 0, 0, 0L, 0, null, 0, 0, 0, 0);

            Singleton <GamePlayerCenter> .GetInstance().SetHostPlayer(1);

            base.LevelContext = new SLevelContext();
            base.LevelContext.SetGameType(COM_GAME_TYPE.COM_SINGLE_GAME_OF_ADVENTURE);
        }
예제 #7
0
        public static SLevelContext CreatePveLevelContext(SCPKG_STARTSINGLEGAMERSP InMessage)
        {
            SLevelContext context = new SLevelContext();

            context.SetGameType((COM_GAME_TYPE)InMessage.bGameType);
            ResLevelCfgInfo pveMapInfo = GetPveMapInfo(InMessage.bGameType, InMessage.iLevelId);

            if (InMessage.bGameType == 2)
            {
                context.InitPveData(pveMapInfo, 1);
                if (pveMapInfo.bGuideLevelSubType == 0)
                {
                    context.m_isMobaType = true;
                    return(context);
                }
                if (pveMapInfo.bGuideLevelSubType == 1)
                {
                    context.m_isMobaType = false;
                }
                return(context);
            }
            if (InMessage.bGameType == 0)
            {
                context.InitPveData(pveMapInfo, Singleton <CAdventureSys> .instance.currentDifficulty);
                return(context);
            }
            if (InMessage.bGameType == 7)
            {
                context.InitPveData(pveMapInfo, 1);
                return(context);
            }
            if (InMessage.bGameType == 8)
            {
                context.InitPveData(pveMapInfo, 1);
                return(context);
            }
            if ((InMessage.bGameType != 3) && (InMessage.bGameType == 1))
            {
                byte bMapType = InMessage.stGameParam.stSingleGameRspOfCombat.bMapType;
                uint dwMapId  = InMessage.stGameParam.stSingleGameRspOfCombat.dwMapId;
                context = CreatePvpLevelContext(bMapType, dwMapId, (COM_GAME_TYPE)InMessage.bGameType, 1);
                context.m_isWarmBattle = Convert.ToBoolean(InMessage.stGameParam.stSingleGameRspOfCombat.bIsWarmBattle);
                context.SetWarmHeroAiDiff(InMessage.stGameParam.stSingleGameRspOfCombat.bAILevel);
            }
            return(context);
        }
        public static SLevelContext CreatePveLevelContext(SCPKG_STARTSINGLEGAMERSP InMessage)
        {
            SLevelContext sLevelContext = new SLevelContext();

            sLevelContext.SetGameType(InMessage.bGameType);
            ResLevelCfgInfo pveMapInfo = CLevelCfgLogicManager.GetPveMapInfo(InMessage.bGameType, InMessage.iLevelId);

            if (InMessage.bGameType == 2)
            {
                sLevelContext.InitPveData(pveMapInfo, 1);
                if (pveMapInfo.bGuideLevelSubType == 0)
                {
                    sLevelContext.m_isMobaType = true;
                }
                else if (pveMapInfo.bGuideLevelSubType == 1)
                {
                    sLevelContext.m_isMobaType = false;
                }
            }
            else if (InMessage.bGameType == 0)
            {
                sLevelContext.InitPveData(pveMapInfo, Singleton <CAdventureSys> .get_instance().currentDifficulty);
            }
            else if (InMessage.bGameType == 7)
            {
                sLevelContext.InitPveData(pveMapInfo, 1);
            }
            else if (InMessage.bGameType == 8)
            {
                sLevelContext.InitPveData(pveMapInfo, 1);
            }
            else if (InMessage.bGameType != 3)
            {
                if (InMessage.bGameType == 1)
                {
                    byte bMapType = InMessage.stGameParam.get_stSingleGameRspOfCombat().bMapType;
                    uint dwMapId  = InMessage.stGameParam.get_stSingleGameRspOfCombat().dwMapId;
                    sLevelContext = CLevelCfgLogicManager.CreatePvpLevelContext(bMapType, dwMapId, InMessage.bGameType, 1);
                    sLevelContext.m_isWarmBattle = Convert.ToBoolean(InMessage.stGameParam.get_stSingleGameRspOfCombat().bIsWarmBattle);
                    sLevelContext.SetWarmHeroAiDiff(InMessage.stGameParam.get_stSingleGameRspOfCombat().bAILevel);
                }
            }
            return(sLevelContext);
        }
예제 #9
0
        public void BuildSoloGamePlayers(SCPKG_STARTSINGLEGAMERSP svrGameInfo)
        {
            Singleton <ActorDataCenter> .get_instance().ClearHeroServerData();

            if (Singleton <GamePlayerCenter> .get_instance().GetAllPlayers().get_Count() > 0)
            {
            }
            Singleton <GamePlayerCenter> .get_instance().ClearAllPlayers();

            if (svrGameInfo.stDetail.get_stSingleGameSucc() == null || svrGameInfo.stDetail.get_stSingleGameSucc().bNum < 1)
            {
                return;
            }
            this.DoNew9SlotCalc(svrGameInfo);
            int num = Mathf.Min((int)svrGameInfo.stDetail.get_stSingleGameSucc().bNum, svrGameInfo.stDetail.get_stSingleGameSucc().astFighter.Length);

            for (int i = 0; i < num; i++)
            {
                COMDT_PLAYERINFO cOMDT_PLAYERINFO = svrGameInfo.stDetail.get_stSingleGameSucc().astFighter[i];
                if (CheatCommandReplayEntry.heroPerformanceTest)
                {
                    cOMDT_PLAYERINFO.astChoiceHero = svrGameInfo.stDetail.get_stSingleGameSucc().astFighter[0].astChoiceHero;
                }
                if (cOMDT_PLAYERINFO.bObjType != 0)
                {
                    string empty       = string.Empty;
                    int    honorId     = 0;
                    int    honorLevel  = 0;
                    uint   gradeOfRank = 0u;
                    ulong  uid;
                    uint   logicWrold;
                    uint   level;
                    if (cOMDT_PLAYERINFO.bObjType == 2)
                    {
                        if (svrGameInfo.bGameType == 1 && Convert.ToBoolean(svrGameInfo.stGameParam.get_stSingleGameRspOfCombat().bIsWarmBattle))
                        {
                            uid        = cOMDT_PLAYERINFO.stDetail.get_stPlayerOfNpc().ullFakeUid;
                            logicWrold = cOMDT_PLAYERINFO.stDetail.get_stPlayerOfNpc().dwFakeLogicWorldID;
                            level      = cOMDT_PLAYERINFO.stDetail.get_stPlayerOfNpc().dwFakePvpLevel;
                        }
                        else
                        {
                            uid        = 0uL;
                            logicWrold = 0u;
                            level      = cOMDT_PLAYERINFO.dwLevel;
                        }
                    }
                    else
                    {
                        uid         = ((cOMDT_PLAYERINFO.bObjType != 1) ? 0uL : cOMDT_PLAYERINFO.stDetail.get_stPlayerOfAcnt().ullUid);
                        logicWrold  = (uint)((cOMDT_PLAYERINFO.bObjType != 1) ? 0 : cOMDT_PLAYERINFO.stDetail.get_stPlayerOfAcnt().iLogicWorldID);
                        level       = cOMDT_PLAYERINFO.dwLevel;
                        honorId     = cOMDT_PLAYERINFO.stDetail.get_stPlayerOfAcnt().iHonorID;
                        honorLevel  = cOMDT_PLAYERINFO.stDetail.get_stPlayerOfAcnt().iHonorLevel;
                        gradeOfRank = (uint)((svrGameInfo.stGameParam.get_stSingleGameRspOfCombat() != null) ? svrGameInfo.stGameParam.get_stSingleGameRspOfCombat().bGradeOfRank : 0);
                    }
                    uint vipLv = 0u;
                    if (cOMDT_PLAYERINFO.stDetail.get_stPlayerOfAcnt() != null)
                    {
                        vipLv = cOMDT_PLAYERINFO.stDetail.get_stPlayerOfAcnt().stGameVip.dwCurLevel;
                    }
                    Player player = Singleton <GamePlayerCenter> .GetInstance().AddPlayer(cOMDT_PLAYERINFO.dwObjId, cOMDT_PLAYERINFO.bObjCamp, (int)cOMDT_PLAYERINFO.bPosOfCamp, level, cOMDT_PLAYERINFO.bObjType != 1, StringHelper.UTF8BytesToString(ref cOMDT_PLAYERINFO.szName), 0, (int)logicWrold, uid, vipLv, null, gradeOfRank, 0u, honorId, honorLevel, null);

                    if (player != null)
                    {
                        for (int j = 0; j < cOMDT_PLAYERINFO.astChoiceHero.Length; j++)
                        {
                            uint dwHeroID = cOMDT_PLAYERINFO.astChoiceHero[j].stBaseInfo.stCommonInfo.dwHeroID;
                            player.AddHero(dwHeroID);
                        }
                        player.isGM = LobbyMsgHandler.isHostGMAcnt;
                    }
                    Singleton <ActorDataCenter> .get_instance().AddHeroesServerData(cOMDT_PLAYERINFO.dwObjId, cOMDT_PLAYERINFO.astChoiceHero);
                }
                if (cOMDT_PLAYERINFO.bObjType == 1)
                {
                    Singleton <GamePlayerCenter> .GetInstance().SetHostPlayer(cOMDT_PLAYERINFO.dwObjId);
                }
            }
        }
예제 #10
0
        public SingleGameContext(SCPKG_STARTSINGLEGAMERSP InMessage)
        {
            DebugHelper.Assert(InMessage != null, "输入不应该为null");
            base.RewardCount = (InMessage == null) ? 0 : ((int)InMessage.dwRewardNum);
            Singleton <ActorDataCenter> .instance.ClearHeroServerData();

            if (Singleton <GamePlayerCenter> .instance.GetAllPlayers().Count > 0)
            {
            }
            Singleton <GamePlayerCenter> .instance.ClearAllPlayers();

            if (((InMessage != null) && (InMessage.stDetail.stSingleGameSucc != null)) && (InMessage.stDetail.stSingleGameSucc.bNum >= 1))
            {
                this.DoNew9SlotCalc(InMessage);
                int num = Mathf.Min(InMessage.stDetail.stSingleGameSucc.bNum, InMessage.stDetail.stSingleGameSucc.astFighter.Length);
                for (int i = 0; i < num; i++)
                {
                    COMDT_PLAYERINFO comdt_playerinfo = InMessage.stDetail.stSingleGameSucc.astFighter[i];
                    if (comdt_playerinfo.bObjType != 0)
                    {
                        ulong uid = 0L;
                        uint  dwFakeLogicWorldID = 0;
                        uint  level = 1;
                        if (comdt_playerinfo.bObjType == 2)
                        {
                            if ((InMessage.bGameType == 1) && Convert.ToBoolean(InMessage.stGameParam.stSingleGameRspOfCombat.bIsWarmBattle))
                            {
                                uid = comdt_playerinfo.stDetail.stPlayerOfNpc.ullFakeUid;
                                dwFakeLogicWorldID = comdt_playerinfo.stDetail.stPlayerOfNpc.dwFakeLogicWorldID;
                                level = comdt_playerinfo.stDetail.stPlayerOfNpc.dwFakePvpLevel;
                            }
                            else
                            {
                                uid = 0L;
                                dwFakeLogicWorldID = 0;
                                level = comdt_playerinfo.dwLevel;
                            }
                        }
                        else
                        {
                            uid = (comdt_playerinfo.bObjType != 1) ? ((ulong)0L) : comdt_playerinfo.stDetail.stPlayerOfAcnt.ullUid;
                            dwFakeLogicWorldID = (comdt_playerinfo.bObjType != 1) ? 0 : ((uint)comdt_playerinfo.stDetail.stPlayerOfAcnt.iLogicWorldID);
                            level = comdt_playerinfo.dwLevel;
                        }
                        uint vipLv = 0;
                        if (comdt_playerinfo.stDetail.stPlayerOfAcnt != null)
                        {
                            vipLv = comdt_playerinfo.stDetail.stPlayerOfAcnt.stGameVip.dwCurLevel;
                        }
                        Player player = Singleton <GamePlayerCenter> .GetInstance().AddPlayer(comdt_playerinfo.dwObjId, (COM_PLAYERCAMP)comdt_playerinfo.bObjCamp, comdt_playerinfo.bPosOfCamp, level, comdt_playerinfo.bObjType != 1, StringHelper.UTF8BytesToString(ref comdt_playerinfo.szName), 0, (int)dwFakeLogicWorldID, uid, vipLv, null, 0);

                        if (player != null)
                        {
                            for (int j = 0; j < comdt_playerinfo.astChoiceHero.Length; j++)
                            {
                                uint dwHeroID = comdt_playerinfo.astChoiceHero[j].stBaseInfo.stCommonInfo.dwHeroID;
                                player.AddHero(dwHeroID);
                            }
                            player.isGM = LobbyMsgHandler.isHostGMAcnt;
                        }
                        Singleton <ActorDataCenter> .instance.AddHeroesServerData(comdt_playerinfo.dwObjId, comdt_playerinfo.astChoiceHero);
                    }
                    if (comdt_playerinfo.bObjType == 1)
                    {
                        Singleton <GamePlayerCenter> .GetInstance().SetHostPlayer(comdt_playerinfo.dwObjId);
                    }
                }
                if (InMessage.bGameType == 2)
                {
                    ResLevelCfgInfo dataByKey = GameDataMgr.levelDatabin.GetDataByKey(InMessage.iLevelId);
                    DebugHelper.Assert(dataByKey != null);
                    base.LevelContext = new SLevelContext();
                    base.LevelContext.Init(dataByKey, 1);
                    if (dataByKey.bGuideLevelSubType == 0)
                    {
                        base.LevelContext.isPVPLevel = true;
                        base.LevelContext.isPVPMode  = true;
                    }
                    else if (dataByKey.bGuideLevelSubType == 1)
                    {
                        base.LevelContext.isPVPLevel = false;
                        base.LevelContext.isPVPMode  = false;
                    }
                    base.LevelContext.GameType            = (COM_GAME_TYPE)InMessage.bGameType;
                    this.levelContext.bShowTrainingHelper = dataByKey.bShowTrainingHelper > 0;
                    this.m_LevelDesignFileName            = base.LevelContext.LevelDesignFileName;
                    this.m_LevelArtistFileName            = base.LevelContext.LevelArtistFileName;
                }
                else if (InMessage.bGameType == 0)
                {
                    ResLevelCfgInfo levelCfg = GameDataMgr.levelDatabin.GetDataByKey(InMessage.iLevelId);
                    DebugHelper.Assert(levelCfg != null);
                    base.LevelContext = new SLevelContext();
                    base.LevelContext.Init(levelCfg, Singleton <CAdventureSys> .instance.currentDifficulty);
                    base.LevelContext.GameType            = (COM_GAME_TYPE)InMessage.bGameType;
                    this.levelContext.bShowTrainingHelper = levelCfg.bShowTrainingHelper > 0;
                    this.m_LevelDesignFileName            = base.LevelContext.LevelDesignFileName;
                    this.m_LevelArtistFileName            = base.LevelContext.LevelArtistFileName;
                }
                else if (InMessage.bGameType == 7)
                {
                    ResLevelCfgInfo info3 = GameDataMgr.burnMap.GetDataByKey(Singleton <BurnExpeditionController> .GetInstance().model.Get_LevelID(Singleton <BurnExpeditionController> .GetInstance().model.curSelect_LevelIndex));
                    DebugHelper.Assert(info3 != null);
                    base.LevelContext = new SLevelContext();
                    base.LevelContext.Init(info3, 1);
                    base.LevelContext.GameType            = (COM_GAME_TYPE)InMessage.bGameType;
                    this.levelContext.bShowTrainingHelper = info3.bShowTrainingHelper > 0;
                    this.m_LevelDesignFileName            = base.LevelContext.LevelDesignFileName;
                    this.m_LevelArtistFileName            = base.LevelContext.LevelArtistFileName;
                }
                else if (InMessage.bGameType == 8)
                {
                    ResLevelCfgInfo info4 = GameDataMgr.arenaLevelDatabin.GetDataByKey(InMessage.iLevelId);
                    DebugHelper.Assert(info4 != null);
                    base.LevelContext = new SLevelContext();
                    base.LevelContext.Init(info4, 1);
                    base.LevelContext.GameType            = (COM_GAME_TYPE)InMessage.bGameType;
                    this.levelContext.bShowTrainingHelper = info4.bShowTrainingHelper > 0;
                    this.m_LevelDesignFileName            = base.LevelContext.LevelDesignFileName;
                    this.m_LevelArtistFileName            = base.LevelContext.LevelArtistFileName;
                }
                else if (InMessage.bGameType == 1)
                {
                    base.LevelContext          = CLevelCfgLogicManager.MakeMobaContext((uint)InMessage.iLevelId, COM_GAME_TYPE.COM_SINGLE_GAME_OF_COMBAT, 1);
                    base.LevelContext.GameType = (COM_GAME_TYPE)InMessage.bGameType;
                    ResAcntBattleLevelInfo info5 = GameDataMgr.pvpLevelDatabin.GetDataByKey((uint)InMessage.iLevelId);
                    if (info5 != null)
                    {
                        this.m_LevelDesignFileName = StringHelper.UTF8BytesToString(ref info5.stLevelCommonInfo.szDesignFileName);
                        if (info5.stLevelCommonInfo.szArtistFileName != null)
                        {
                            this.m_LevelArtistFileName = StringHelper.UTF8BytesToString(ref info5.stLevelCommonInfo.szArtistFileName);
                        }
                    }
                    else
                    {
                        ResCounterPartLevelInfo info6 = GameDataMgr.cpLevelDatabin.GetDataByKey((uint)InMessage.iLevelId);
                        this.m_LevelDesignFileName = StringHelper.UTF8BytesToString(ref info6.stLevelCommonInfo.szDesignFileName);
                        if (info6.stLevelCommonInfo.szArtistFileName != null)
                        {
                            this.m_LevelArtistFileName = StringHelper.UTF8BytesToString(ref info6.stLevelCommonInfo.szArtistFileName);
                        }
                    }
                    base.LevelContext.isWarmBattle      = Convert.ToBoolean(InMessage.stGameParam.stSingleGameRspOfCombat.bIsWarmBattle);
                    base.LevelContext.DynamicDifficulty = InMessage.stGameParam.stSingleGameRspOfCombat.bAILevel;
                    base.LevelContext.MapType           = InMessage.stGameParam.stSingleGameRspOfCombat.bMapType;
                }
            }
        }
예제 #11
0
        public override void BuildGameContext(ProtocolObject svrInfo)
        {
            SCPKG_STARTSINGLEGAMERSP svrGameInfo = (SCPKG_STARTSINGLEGAMERSP)svrInfo;

            Singleton <GameContextEx> .GetInstance().InitSingleGame(svrGameInfo);
        }
예제 #12
0
        public override void BuildGamePlayer(ProtocolObject svrInfo)
        {
            SCPKG_STARTSINGLEGAMERSP svrGameInfo = (SCPKG_STARTSINGLEGAMERSP)svrInfo;

            this.PlayerBuilder.BuildSoloGamePlayers(svrGameInfo);
        }
예제 #13
0
        public SingleGameContext(SCPKG_STARTSINGLEGAMERSP InMessage)
        {
            DebugHelper.Assert(InMessage != null, "输入不应该为null");
            this.RewardCount = (int)((InMessage != null) ? InMessage.dwRewardNum : 0u);
            Singleton <ActorDataCenter> .instance.ClearHeroServerData();

            if (Singleton <GamePlayerCenter> .instance.GetAllPlayers().get_Count() > 0)
            {
            }
            Singleton <GamePlayerCenter> .instance.ClearAllPlayers();

            if (InMessage == null || InMessage.stDetail.stSingleGameSucc == null || InMessage.stDetail.stSingleGameSucc.bNum < 1)
            {
                return;
            }
            this.DoNew9SlotCalc(InMessage);
            int num = Mathf.Min((int)InMessage.stDetail.stSingleGameSucc.bNum, InMessage.stDetail.stSingleGameSucc.astFighter.Length);

            for (int i = 0; i < num; i++)
            {
                COMDT_PLAYERINFO cOMDT_PLAYERINFO = InMessage.stDetail.stSingleGameSucc.astFighter[i];
                if (CheatCommandReplayEntry.heroPerformanceTest)
                {
                    cOMDT_PLAYERINFO.astChoiceHero = InMessage.stDetail.stSingleGameSucc.astFighter[0].astChoiceHero;
                }
                if (cOMDT_PLAYERINFO.bObjType != 0)
                {
                    string empty       = string.Empty;
                    int    honorId     = 0;
                    int    honorLevel  = 0;
                    uint   gradeOfRank = 0u;
                    uint   wangZheCnt  = 0u;
                    ulong  uid;
                    uint   logicWrold;
                    uint   level;
                    if (cOMDT_PLAYERINFO.bObjType == 2)
                    {
                        if (InMessage.bGameType == 1 && Convert.ToBoolean(InMessage.stGameParam.stSingleGameRspOfCombat.bIsWarmBattle))
                        {
                            uid        = cOMDT_PLAYERINFO.stDetail.stPlayerOfNpc.ullFakeUid;
                            logicWrold = cOMDT_PLAYERINFO.stDetail.stPlayerOfNpc.dwFakeLogicWorldID;
                            level      = cOMDT_PLAYERINFO.stDetail.stPlayerOfNpc.dwFakePvpLevel;
                        }
                        else
                        {
                            uid        = 0uL;
                            logicWrold = 0u;
                            level      = cOMDT_PLAYERINFO.dwLevel;
                        }
                    }
                    else
                    {
                        uid         = ((cOMDT_PLAYERINFO.bObjType == 1) ? cOMDT_PLAYERINFO.stDetail.stPlayerOfAcnt.ullUid : 0uL);
                        logicWrold  = (uint)((cOMDT_PLAYERINFO.bObjType == 1) ? cOMDT_PLAYERINFO.stDetail.stPlayerOfAcnt.iLogicWorldID : 0);
                        level       = cOMDT_PLAYERINFO.dwLevel;
                        honorId     = cOMDT_PLAYERINFO.stDetail.stPlayerOfAcnt.iHonorID;
                        honorLevel  = cOMDT_PLAYERINFO.stDetail.stPlayerOfAcnt.iHonorLevel;
                        gradeOfRank = (uint)((InMessage.stGameParam.stSingleGameRspOfCombat == null) ? 0 : InMessage.stGameParam.stSingleGameRspOfCombat.bGradeOfRank);
                        wangZheCnt  = cOMDT_PLAYERINFO.stDetail.stPlayerOfAcnt.dwWangZheCnt;
                    }
                    uint vipLv = 0u;
                    if (cOMDT_PLAYERINFO.stDetail.stPlayerOfAcnt != null)
                    {
                        vipLv = cOMDT_PLAYERINFO.stDetail.stPlayerOfAcnt.stGameVip.dwCurLevel;
                    }
                    Player player = Singleton <GamePlayerCenter> .GetInstance().AddPlayer(cOMDT_PLAYERINFO.dwObjId, (COM_PLAYERCAMP)cOMDT_PLAYERINFO.bObjCamp, (int)cOMDT_PLAYERINFO.bPosOfCamp, level, cOMDT_PLAYERINFO.bObjType != 1, StringHelper.UTF8BytesToString(ref cOMDT_PLAYERINFO.szName), 0, (int)logicWrold, uid, vipLv, null, gradeOfRank, 0u, wangZheCnt, honorId, honorLevel, null, 0uL);

                    if (player != null)
                    {
                        for (int j = 0; j < cOMDT_PLAYERINFO.astChoiceHero.Length; j++)
                        {
                            uint dwHeroID = cOMDT_PLAYERINFO.astChoiceHero[j].stBaseInfo.stCommonInfo.dwHeroID;
                            player.AddHero(dwHeroID);
                        }
                        player.isGM = LobbyMsgHandler.isHostGMAcnt;
                    }
                    Singleton <ActorDataCenter> .instance.AddHeroesServerData(cOMDT_PLAYERINFO.dwObjId, cOMDT_PLAYERINFO.astChoiceHero);
                }
                if (cOMDT_PLAYERINFO.bObjType == 1)
                {
                    Singleton <GamePlayerCenter> .GetInstance().SetHostPlayer(cOMDT_PLAYERINFO.dwObjId);
                }
            }
            if (InMessage.bGameType == 2)
            {
                CRoleInfo masterRoleInfo = Singleton <CRoleInfoManager> .GetInstance().GetMasterRoleInfo();

                if (masterRoleInfo != null)
                {
                    GuideInfo guideInfo = default(GuideInfo);
                    guideInfo.m_PlayerMobaLevel = masterRoleInfo.acntMobaInfo.iMobaLevel;
                    Singleton <CBattleGuideManager> .instance.SetPlayerGuideInfo(ref guideInfo);
                }
            }
            this.LevelContext = CLevelCfgLogicManager.CreatePveLevelContext(InMessage);
        }
예제 #14
0
 public void StartSoloGame(SCPKG_STARTSINGLEGAMERSP soloGameInfo)
 {
     this._gameBuilder.BuildSoloGame();
 }
예제 #15
0
 public static GameContextBase CreateSingleGameContext(SCPKG_STARTSINGLEGAMERSP InMessage)
 {
     return(new SingleGameContext(InMessage));
 }
예제 #16
0
        public SingleGameContext(SCPKG_STARTSINGLEGAMERSP InMessage)
        {
            DebugHelper.Assert(InMessage != null, "输入不应该为null");
            base.RewardCount = (InMessage == null) ? 0 : ((int)InMessage.dwRewardNum);
            Singleton <ActorDataCenter> .instance.ClearHeroServerData();

            if (Singleton <GamePlayerCenter> .instance.GetAllPlayers().Count > 0)
            {
            }
            Singleton <GamePlayerCenter> .instance.ClearAllPlayers();

            if (((InMessage != null) && (InMessage.stDetail.stSingleGameSucc != null)) && (InMessage.stDetail.stSingleGameSucc.bNum >= 1))
            {
                this.DoNew9SlotCalc(InMessage);
                int num = Mathf.Min(InMessage.stDetail.stSingleGameSucc.bNum, InMessage.stDetail.stSingleGameSucc.astFighter.Length);
                for (int i = 0; i < num; i++)
                {
                    COMDT_PLAYERINFO comdt_playerinfo = InMessage.stDetail.stSingleGameSucc.astFighter[i];
                    if (CheatCommandReplayEntry.heroPerformanceTest)
                    {
                        comdt_playerinfo.astChoiceHero = InMessage.stDetail.stSingleGameSucc.astFighter[0].astChoiceHero;
                    }
                    if (comdt_playerinfo.bObjType != 0)
                    {
                        ulong uid = 0L;
                        uint  dwFakeLogicWorldID = 0;
                        uint  level       = 1;
                        int   honorId     = 0;
                        int   honorLevel  = 0;
                        uint  gradeOfRank = 0;
                        if (comdt_playerinfo.bObjType == 2)
                        {
                            if ((InMessage.bGameType == 1) && Convert.ToBoolean(InMessage.stGameParam.stSingleGameRspOfCombat.bIsWarmBattle))
                            {
                                uid = comdt_playerinfo.stDetail.stPlayerOfNpc.ullFakeUid;
                                dwFakeLogicWorldID = comdt_playerinfo.stDetail.stPlayerOfNpc.dwFakeLogicWorldID;
                                level = comdt_playerinfo.stDetail.stPlayerOfNpc.dwFakePvpLevel;
                            }
                            else
                            {
                                uid = 0L;
                                dwFakeLogicWorldID = 0;
                                level = comdt_playerinfo.dwLevel;
                            }
                        }
                        else
                        {
                            uid = (comdt_playerinfo.bObjType != 1) ? ((ulong)0L) : comdt_playerinfo.stDetail.stPlayerOfAcnt.ullUid;
                            dwFakeLogicWorldID = (comdt_playerinfo.bObjType != 1) ? 0 : ((uint)comdt_playerinfo.stDetail.stPlayerOfAcnt.iLogicWorldID);
                            level       = comdt_playerinfo.dwLevel;
                            honorId     = comdt_playerinfo.stDetail.stPlayerOfAcnt.iHonorID;
                            honorLevel  = comdt_playerinfo.stDetail.stPlayerOfAcnt.iHonorLevel;
                            gradeOfRank = (InMessage.stGameParam.stSingleGameRspOfCombat != null) ? InMessage.stGameParam.stSingleGameRspOfCombat.bGradeOfRank : 0;
                        }
                        uint vipLv = 0;
                        if (comdt_playerinfo.stDetail.stPlayerOfAcnt != null)
                        {
                            vipLv = comdt_playerinfo.stDetail.stPlayerOfAcnt.stGameVip.dwCurLevel;
                        }
                        Player player = Singleton <GamePlayerCenter> .GetInstance().AddPlayer(comdt_playerinfo.dwObjId, (COM_PLAYERCAMP)comdt_playerinfo.bObjCamp, comdt_playerinfo.bPosOfCamp, level, comdt_playerinfo.bObjType != 1, StringHelper.UTF8BytesToString(ref comdt_playerinfo.szName), 0, (int)dwFakeLogicWorldID, uid, vipLv, null, gradeOfRank, 0, honorId, honorLevel);

                        if (player != null)
                        {
                            for (int j = 0; j < comdt_playerinfo.astChoiceHero.Length; j++)
                            {
                                uint dwHeroID = comdt_playerinfo.astChoiceHero[j].stBaseInfo.stCommonInfo.dwHeroID;
                                player.AddHero(dwHeroID);
                            }
                            player.isGM = LobbyMsgHandler.isHostGMAcnt;
                        }
                        Singleton <ActorDataCenter> .instance.AddHeroesServerData(comdt_playerinfo.dwObjId, comdt_playerinfo.astChoiceHero);
                    }
                    if (comdt_playerinfo.bObjType == 1)
                    {
                        Singleton <GamePlayerCenter> .GetInstance().SetHostPlayer(comdt_playerinfo.dwObjId);
                    }
                }
                base.LevelContext = CLevelCfgLogicManager.CreatePveLevelContext(InMessage);
            }
        }