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); }
protected void DoNew9SlotCalc(SCPKG_STARTSINGLEGAMERSP inMessage) { if (inMessage.bGameType == 8 || inMessage.bGameType == 7) { this.Calc9SlotHeroStandingPosition(inMessage.stDetail.get_stSingleGameSucc()); } }
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; }
public void InitSingleGame(SCPKG_STARTSINGLEGAMERSP svrGameInfo) { this._ResetAllInfo(); if (svrGameInfo != null) { this._InitSingleGame(svrGameInfo); } }
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); }
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); }
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); } } }
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; } } }
public override void BuildGameContext(ProtocolObject svrInfo) { SCPKG_STARTSINGLEGAMERSP svrGameInfo = (SCPKG_STARTSINGLEGAMERSP)svrInfo; Singleton <GameContextEx> .GetInstance().InitSingleGame(svrGameInfo); }
public override void BuildGamePlayer(ProtocolObject svrInfo) { SCPKG_STARTSINGLEGAMERSP svrGameInfo = (SCPKG_STARTSINGLEGAMERSP)svrInfo; this.PlayerBuilder.BuildSoloGamePlayers(svrGameInfo); }
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); }
public void StartSoloGame(SCPKG_STARTSINGLEGAMERSP soloGameInfo) { this._gameBuilder.BuildSoloGame(); }
public static GameContextBase CreateSingleGameContext(SCPKG_STARTSINGLEGAMERSP InMessage) { return(new SingleGameContext(InMessage)); }
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); } }