public override void CmdCommonLearnSkill(IFrameCommand cmd) { FrameCommand <LearnSkillCommand> command = (FrameCommand <LearnSkillCommand>)cmd; if (Singleton <CBattleSystem> .instance.IsMatchLearnSkillRule(base.actorPtr, (SkillSlotType)command.cmdData.bSlotType) && (base.actor.SkillControl.m_iSkillPoint > 0)) { base.actor.SkillControl.m_iSkillPoint--; } else { return; } PoolObjHandle <ActorRoot> actorPtr = base.actorPtr; if (base.actor.SkillControl.m_iSkillPoint >= 0) { SkillSlot slot; if (command.cmdData.bSkillLevel == 0) { int num; if (base.actor.BuffHolderComp.changeSkillRule.GetChangeSkillSlot(command.cmdData.bSlotType, out num)) { actorPtr.handle.SkillControl.InitSkillSlot(command.cmdData.bSlotType, num, 0); } else { IGameActorDataProvider actorDataProvider = Singleton <ActorDataCenter> .instance.GetActorDataProvider(GameActorDataProviderType.StaticBattleDataProvider); ActorStaticSkillData skillData = new ActorStaticSkillData(); if (actorDataProvider.GetActorStaticSkillData(ref base.actor.TheActorMeta, (ActorSkillSlot)command.cmdData.bSlotType, ref skillData)) { actorPtr.handle.SkillControl.InitSkillSlot(command.cmdData.bSlotType, skillData.SkillId, skillData.PassiveSkillId); } } } actorPtr.handle.SkillControl.TryGetSkillSlot((SkillSlotType)command.cmdData.bSlotType, out slot); if (slot != null) { int skillLevel = slot.GetSkillLevel(); if (skillLevel == command.cmdData.bSkillLevel) { slot.SetSkillLevel(skillLevel + 1); Singleton <EventRouter> .GetInstance().BroadCastEvent <PoolObjHandle <ActorRoot>, byte, byte>("HeroSkillLevelUp", actorPtr, command.cmdData.bSlotType, (byte)(skillLevel + 1)); } } } }
private void AddActionsFromActors(DictionaryView <string, Action> actions, List <PoolObjHandle <ActorRoot> > actors) { if (actors == null) { return; } for (int i = 0; i < actors.get_Count(); i++) { ActorRoot handle = actors.get_Item(i).handle; this.AddBehaviorTree(handle.CharInfo); IGameActorDataProvider actorDataProvider = Singleton <ActorDataCenter> .instance.GetActorDataProvider(GameActorDataProviderType.StaticBattleDataProvider); ActorStaticSkillData actorStaticSkillData = default(ActorStaticSkillData); for (int j = 0; j < 8; j++) { actorDataProvider.GetActorStaticSkillData(ref handle.TheActorMeta, (ActorSkillSlot)j, ref actorStaticSkillData); if (actorStaticSkillData.SkillId != 0) { this.AddActionsFromSkill(actions, actorStaticSkillData.SkillId); this.AddActionsFromPassiveSkill(actions, actorStaticSkillData.PassiveSkillId); } } } }
private void AddActionsFromActors(DictionaryView <string, AGE.Action> actions, List <PoolObjHandle <ActorRoot> > actors) { if (actors != null) { for (int i = 0; i < actors.Count; i++) { PoolObjHandle <ActorRoot> handle = actors[i]; ActorRoot root = handle.handle; this.AddBehaviorTree(root.CharInfo); IGameActorDataProvider actorDataProvider = Singleton <ActorDataCenter> .instance.GetActorDataProvider(GameActorDataProviderType.StaticBattleDataProvider); ActorStaticSkillData skillData = new ActorStaticSkillData(); for (int j = 0; j < 8; j++) { actorDataProvider.GetActorStaticSkillData(ref root.TheActorMeta, (ActorSkillSlot)j, ref skillData); if (skillData.SkillId != 0) { this.AddActionsFromSkill(actions, skillData.SkillId); this.AddActionsFromPassiveSkill(actions, skillData.PassiveSkillId); } } } } }
public override void Init() { base.Init(); this.talentSystem = new TalentSystem(); this.talentSystem.Init(base.actorPtr); this.stSkillStat = new CSkillStat(); if (this.stSkillStat != null) { this.stSkillStat.Initialize(base.actorPtr); this.InitRandomSkill(); this.InitPassiveSkill(); IGameActorDataProvider actorDataProvider = Singleton <ActorDataCenter> .instance.GetActorDataProvider(GameActorDataProviderType.StaticBattleDataProvider); IGameActorDataProvider provider2 = Singleton <ActorDataCenter> .instance.GetActorDataProvider(GameActorDataProviderType.ServerDataProvider); ActorStaticSkillData skillData = new ActorStaticSkillData(); for (int i = 0; i < 8; i++) { if (i == 6) { SLevelContext curLvelContext = Singleton <BattleLogic> .GetInstance().GetCurLvelContext(); if (curLvelContext.IsGameTypeGuide()) { if (curLvelContext.m_mapID == CBattleGuideManager.GuideLevelID5v5) { goto Label_00D8; } continue; } if (!curLvelContext.IsMobaModeWithOutGuide() || (curLvelContext.m_pvpPlayerNum != 10)) { continue; } } Label_00D8: if (i == 7) { SLevelContext context2 = Singleton <BattleLogic> .GetInstance().GetCurLvelContext(); if (!context2.m_bEnableOrnamentSlot || (context2.m_ornamentSkillId <= 0)) { continue; } } if ((((i == 4) || (i == 6)) || (i == 7)) && (base.actor.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Hero)) { SLevelContext context3 = Singleton <BattleLogic> .instance.GetCurLvelContext(); if ((context3 == null) || (context3.m_mapID <= 0)) { continue; } int extraSkillId = context3.m_extraSkillId; switch (i) { case 6: { extraSkillId = context3.m_extraSkill2Id; if (extraSkillId > 0) { break; } continue; } case 7: extraSkillId = context3.m_ornamentSkillId; break; default: this.CreateTalent(context3.m_extraPassiveSkillId); break; } this.InitSkillSlot(i, extraSkillId, 0); SkillSlot slot = this.SkillSlotArray[i]; if (slot != null) { slot.SetSkillLevel(1); } continue; } if (actorDataProvider.GetActorStaticSkillData(ref base.actor.TheActorMeta, (ActorSkillSlot)i, ref skillData)) { this.InitSkillSlot(i, skillData.SkillId, skillData.PassiveSkillId); if (((i > 3) || (i < 1)) || (!Singleton <BattleLogic> .GetInstance().m_GameInfo.gameContext.levelContext.IsSoulGrow() || (base.actor.TheActorMeta.ActorType != ActorTypeDef.Actor_Type_Hero))) { SkillSlot slot2 = this.SkillSlotArray[i]; if (slot2 != null) { slot2.SetSkillLevel(1); } } } } uint skillID = 0; if (provider2.GetActorServerCommonSkillData(ref base.actor.TheActorMeta, out skillID)) { int num5 = 5; if (skillID != 0) { this.InitSkillSlot(num5, (int)skillID, 0); SkillSlot slot3 = this.SkillSlotArray[num5]; if (slot3 != null) { slot3.SetSkillLevel(1); } } } if (base.actor.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Hero) { this.SkillUseCache = new SkillCache(); } } }
public void AddPreloadActor(ref List <ActorPreloadTab> list, ref ActorMeta actorMeta, float spawnCnt, int ownerSkinID = 0) { for (int i = 0; i < list.Count; i++) { ActorPreloadTab tab = list[i]; if (tab.theActor.ConfigId != actorMeta.ConfigId) { continue; } if (actorMeta.ActorType == ActorTypeDef.Actor_Type_Hero) { if (this.GetActorMarkID(actorMeta) == tab.MarkID) { goto Label_0085; } continue; } if ((actorMeta.ActorType == ActorTypeDef.Actor_Type_Monster) && (spawnCnt > 0f)) { tab.spawnCnt += spawnCnt; list[i] = tab; } Label_0085: retCnt++; return; } ActorStaticData actorData = new ActorStaticData(); IGameActorDataProvider actorDataProvider = Singleton <ActorDataCenter> .instance.GetActorDataProvider(GameActorDataProviderType.StaticBattleDataProvider); actorDataProvider.GetActorStaticData(ref actorMeta, ref actorData); ActorServerData data2 = new ActorServerData(); Singleton <ActorDataCenter> .instance.GetActorDataProvider(GameActorDataProviderType.ServerDataProvider).GetActorServerData(ref actorMeta, ref data2); CActorInfo actorInfo = CActorInfo.GetActorInfo(actorData.TheResInfo.ResPath, enResourceType.BattleScene); if (actorInfo != null) { ActorPreloadTab loadInfo = new ActorPreloadTab { theActor = actorMeta }; loadInfo.modelPrefab.assetPath = actorInfo.GetArtPrefabName((ownerSkinID == 0) ? ((int)data2.SkinId) : ownerSkinID, -1); loadInfo.modelPrefab.nInstantiate = 1; loadInfo.spawnCnt = spawnCnt; loadInfo.MarkID = this.GetActorMarkID(actorMeta); loadInfo.ageActions = new List <AssetLoadBase>(); loadInfo.parPrefabs = new List <AssetLoadBase>(); loadInfo.mesPrefabs = new List <AssetLoadBase>(); loadInfo.spritePrefabs = new List <AssetLoadBase>(); loadInfo.soundBanks = new List <AssetLoadBase>(); loadInfo.behaviorXml = new List <AssetLoadBase>(); ActorStaticSkillData skillData = new ActorStaticSkillData(); for (int j = 0; j < 7; j++) { actorDataProvider.GetActorStaticSkillData(ref actorMeta, (ActorSkillSlot)j, ref skillData); if (skillData.SkillId != 0) { this.AnalyseSkill(ref loadInfo, skillData.SkillId); this.AnalysePassiveSkill(ref loadInfo, skillData.PassiveSkillId); } } if (actorMeta.ActorType == ActorTypeDef.Actor_Type_Hero) { ResTalentHero dataByKey = GameDataMgr.talentHero.GetDataByKey((uint)actorMeta.ConfigId); if (dataByKey != null) { this.AnalyseHeroTalent(ref loadInfo, dataByKey); } } else if (actorMeta.ActorType == ActorTypeDef.Actor_Type_Monster) { ActorStaticData data4 = new ActorStaticData(); Singleton <ActorDataCenter> .instance.GetActorDataProvider(GameActorDataProviderType.StaticBattleDataProvider).GetActorStaticData(ref actorMeta, ref data4); int randomPassiveSkillRule = data4.TheBaseAttribute.RandomPassiveSkillRule; if ((randomPassiveSkillRule > 0) && !this.randomSkillCheckerSet.ContainsKey(randomPassiveSkillRule)) { this.randomSkillCheckerSet.Add(randomPassiveSkillRule, true); ResRandomSkillPassiveRule rule = GameDataMgr.randomSkillPassiveDatabin.GetDataByKey(randomPassiveSkillRule); if ((rule.astRandomSkillPassiveID1 != null) && (rule.astRandomSkillPassiveID1.Length > 0)) { for (int k = 0; k < rule.astRandomSkillPassiveID1.Length; k++) { this.AnalysePassiveSkill(ref loadInfo, rule.astRandomSkillPassiveID1[k].iParam); } } if ((rule.astRandomSkillPassiveID2 != null) && (rule.astRandomSkillPassiveID2.Length > 0)) { for (int m = 0; m < rule.astRandomSkillPassiveID2.Length; m++) { this.AnalysePassiveSkill(ref loadInfo, rule.astRandomSkillPassiveID2[m].iParam); } } } } if (!string.IsNullOrEmpty(actorInfo.deadAgePath)) { AssetLoadBase item = new AssetLoadBase { assetPath = actorInfo.deadAgePath }; loadInfo.ageActions.Add(item); } if (!string.IsNullOrEmpty(actorInfo.BtResourcePath) && !this.behaviorXmlSet.ContainsKey(actorInfo.BtResourcePath)) { AssetLoadBase base3 = new AssetLoadBase { assetPath = actorInfo.BtResourcePath }; loadInfo.behaviorXml.Add(base3); this.behaviorXmlSet.Add(actorInfo.BtResourcePath, true); } loadInfo.soundBanks = new List <AssetLoadBase>(); this.AnalyseSoundBanks(ref loadInfo, ref actorInfo, ref data2); list.Add(loadInfo); if (actorMeta.ActorType == ActorTypeDef.Actor_Type_Hero) { this.CheckCallMonsterSkill(actorInfo, ref list, ref actorMeta, (int)data2.SkinId); } } }
public override void Init() { base.Init(); this.talentSystem = new TalentSystem(); this.talentSystem.Init(base.actorPtr); this.stSkillStat = new CSkillStat(); if (this.stSkillStat != null) { this.stSkillStat.Initialize(base.actorPtr); this.InitRandomSkill(); IGameActorDataProvider actorDataProvider = Singleton <ActorDataCenter> .instance.GetActorDataProvider(GameActorDataProviderType.StaticBattleDataProvider); IGameActorDataProvider provider2 = Singleton <ActorDataCenter> .instance.GetActorDataProvider(GameActorDataProviderType.ServerDataProvider); ActorStaticSkillData skillData = new ActorStaticSkillData(); for (int i = 0; i < 7; i++) { ResDT_LevelCommonInfo info4; if (i == 6) { SLevelContext context = Singleton <BattleLogic> .GetInstance().GetCurLvelContext(); if (context.GameType == COM_GAME_TYPE.COM_SINGLE_GAME_OF_GUIDE) { if (context.iLevelID == CBattleGuideManager.GuideLevelID5v5) { goto Label_00DF; } continue; } ResDT_LevelCommonInfo info = null; info = CLevelCfgLogicManager.FindLevelConfigMultiGame(context.iLevelID); if ((info == null) || (info.bMaxAcntNum != 10)) { continue; } } Label_00DF: if (((i != 4) && (i != 6)) || (base.actor.TheActorMeta.ActorType != ActorTypeDef.Actor_Type_Hero)) { goto Label_0284; } SLevelContext curLvelContext = Singleton <BattleLogic> .instance.GetCurLvelContext(); if (curLvelContext == null) { continue; } int iLevelID = curLvelContext.iLevelID; if (iLevelID <= 0) { continue; } if (Singleton <LobbyLogic> .instance.inMultiGame) { goto Label_0214; } ResLevelCfgInfo outLevelCfg = null; ResDT_LevelCommonInfo outLevelComInfo = null; CLevelCfgLogicManager.FindLevelConfigSingleGame(iLevelID, out outLevelCfg, out outLevelComInfo); if (outLevelComInfo == null) { goto Label_01AD; } int iExtraSkillId = outLevelComInfo.iExtraSkillId; if (i == 6) { iExtraSkillId = outLevelComInfo.iExtraSkill2Id; if (iExtraSkillId > 0) { goto Label_0185; } continue; } this.CreateTalent(outLevelComInfo.iExtraPassiveSkillId); Label_0185: this.InitSkillSlot(i, iExtraSkillId, 0); SkillSlot slot = this.SkillSlotArray[i]; if (slot != null) { slot.SetSkillLevel(1); } continue; Label_01AD: if (outLevelCfg == null) { continue; } int num4 = outLevelCfg.iExtraSkillId; if (i == 6) { num4 = outLevelCfg.iExtraSkill2Id; if (num4 > 0) { goto Label_01EC; } continue; } this.CreateTalent(outLevelCfg.iExtraPassiveSkillId); Label_01EC: this.InitSkillSlot(i, num4, 0); SkillSlot slot2 = this.SkillSlotArray[i]; if (slot2 != null) { slot2.SetSkillLevel(1); } continue; Label_0214: info4 = CLevelCfgLogicManager.FindLevelConfigMultiGame(iLevelID); if (info4 == null) { continue; } int num5 = info4.iExtraSkillId; if (i == 6) { num5 = info4.iExtraSkill2Id; if (num5 > 0) { goto Label_025C; } continue; } this.CreateTalent(info4.iExtraPassiveSkillId); Label_025C: this.InitSkillSlot(i, num5, 0); SkillSlot slot3 = this.SkillSlotArray[i]; if (slot3 != null) { slot3.SetSkillLevel(1); } continue; Label_0284: if (actorDataProvider.GetActorStaticSkillData(ref base.actor.TheActorMeta, (ActorSkillSlot)i, ref skillData)) { this.InitSkillSlot(i, skillData.SkillId, skillData.PassiveSkillId); if (((i > 3) || (i < 1)) || (!Singleton <BattleLogic> .GetInstance().m_GameInfo.gameContext.IsSoulGrow() || (base.actor.TheActorMeta.ActorType != ActorTypeDef.Actor_Type_Hero))) { SkillSlot slot4 = this.SkillSlotArray[i]; if (slot4 != null) { slot4.SetSkillLevel(1); } } } } uint skillID = 0; if (provider2.GetActorServerCommonSkillData(ref base.actor.TheActorMeta, out skillID)) { int num7 = 5; if (skillID != 0) { this.InitSkillSlot(num7, (int)skillID, 0); SkillSlot slot5 = this.SkillSlotArray[num7]; if (slot5 != null) { slot5.SetSkillLevel(1); } } } if (base.actor.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Hero) { this.SkillUseCache = new SkillCache(); } } }
public override void Init() { base.Init(); this.talentSystem = new TalentSystem(); this.talentSystem.Init(this.actorPtr); this.stSkillStat = new CSkillStat(); if (this.stSkillStat == null) { return; } this.stSkillStat.Initialize(this.actorPtr); this.InitRandomSkill(); this.InitPassiveSkill(); IGameActorDataProvider actorDataProvider = Singleton <ActorDataCenter> .instance.GetActorDataProvider(GameActorDataProviderType.StaticBattleDataProvider); IGameActorDataProvider actorDataProvider2 = Singleton <ActorDataCenter> .instance.GetActorDataProvider(GameActorDataProviderType.ServerDataProvider); ActorStaticSkillData actorStaticSkillData = default(ActorStaticSkillData); this.ornamentFirstSwitchCdEftTime = Singleton <BattleLogic> .GetInstance().GetCurLvelContext().m_ornamentFirstSwitchCdEftTime; this.RotateBodyBulletFindEnemyLogicFrameTick = 0uL; int i = 0; while (i < 8) { if (i != 6) { goto IL_104; } SLevelContext curLvelContext = Singleton <BattleLogic> .GetInstance().GetCurLvelContext(); if (curLvelContext.IsGameTypeGuide()) { if (CBattleGuideManager.Is5v5GuideLevel(curLvelContext.m_mapID)) { goto IL_104; } } else if (curLvelContext.IsMobaModeWithOutGuide() && curLvelContext.m_pvpPlayerNum == 10) { goto IL_104; } IL_FB: i++; continue; IL_104: if ((i == 4 || i == 6 || i == 7) && this.actor.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Hero) { SLevelContext curLvelContext2 = Singleton <BattleLogic> .instance.GetCurLvelContext(); if (curLvelContext2 != null) { int mapID = curLvelContext2.m_mapID; if (mapID > 0) { int num = curLvelContext2.m_extraSkillId; if (i == 6) { num = curLvelContext2.m_extraSkill2Id; if (num <= 0) { goto IL_FB; } } else if (i == 7) { if (!curLvelContext2.m_bEnableOrnamentSlot || curLvelContext2.m_ornamentSkillId <= 0) { goto IL_FB; } num = curLvelContext2.m_ornamentSkillId; } else { this.CreateTalent(curLvelContext2.m_extraPassiveSkillId, SKILL_USE_FROM_TYPE.SKILL_USE_FROM_TYPE_SKILL, 0u); } this.InitSkillSlot(i, num, 0); SkillSlot skillSlot = this.SkillSlotArray[i]; if (skillSlot != null) { skillSlot.SetSkillLevel(1); } } } goto IL_FB; } if (!actorDataProvider.GetActorStaticSkillData(ref this.actor.TheActorMeta, (ActorSkillSlot)i, ref actorStaticSkillData)) { goto IL_FB; } this.InitSkillSlot(i, actorStaticSkillData.SkillId, actorStaticSkillData.PassiveSkillId); if (i <= 3 && i >= 1 && Singleton <BattleLogic> .GetInstance().m_LevelContext.IsSoulGrow() && (this.actor.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Hero || this.actor.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Call)) { goto IL_FB; } SkillSlot skillSlot2 = this.SkillSlotArray[i]; if (skillSlot2 == null) { goto IL_FB; } skillSlot2.SetSkillLevel(1); goto IL_FB; } uint num2 = 0u; if (actorDataProvider2.GetActorServerCommonSkillData(ref this.actor.TheActorMeta, out num2)) { int num3 = 5; if (num2 != 0u) { this.InitSkillSlot(num3, (int)num2, 0); SkillSlot skillSlot3 = this.SkillSlotArray[num3]; if (skillSlot3 != null) { skillSlot3.SetSkillLevel(1); } } } if (this.actor.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Hero || this.actor.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Call) { this.SkillUseCache = new SkillCache(); } }
public void AddPreloadActor(ref List <ActorPreloadTab> list, ref ActorMeta actorMeta, float spawnCnt, int ownerSkinID = 0) { ActorStaticData inStaticData = default(ActorStaticData); IGameActorDataProvider actorDataProvider = Singleton <ActorDataCenter> .instance.GetActorDataProvider(GameActorDataProviderType.StaticBattleDataProvider); actorDataProvider.GetActorStaticData(ref actorMeta, ref inStaticData); ActorServerData actorServerData = default(ActorServerData); IGameActorDataProvider actorDataProvider2 = Singleton <ActorDataCenter> .instance.GetActorDataProvider(GameActorDataProviderType.ServerDataProvider); actorDataProvider2.GetActorServerData(ref actorMeta, ref actorServerData); CActorInfo actorInfo = CActorInfo.GetActorInfo(inStaticData.TheResInfo.ResPath, enResourceType.BattleScene); if (actorInfo == null) { return; } for (int i = 0; i < list.get_Count(); i++) { ActorPreloadTab actorPreloadTab = list.get_Item(i); if (actorPreloadTab.theActor.ActorType == actorMeta.ActorType && actorPreloadTab.theActor.ConfigId == actorMeta.ConfigId) { if (actorMeta.ActorType == ActorTypeDef.Actor_Type_Hero || actorMeta.ActorType == ActorTypeDef.Actor_Type_Call) { int actorMarkID = this.GetActorMarkID(actorMeta); if (actorMarkID != actorPreloadTab.MarkID) { goto IL_13B; } uint skillID = 0u; if (actorDataProvider2.GetActorServerCommonSkillData(ref actorMeta, out skillID)) { this.AnalyseSkill(ref actorPreloadTab, (int)skillID); } } else if (actorMeta.ActorType == ActorTypeDef.Actor_Type_Monster && spawnCnt > 0f) { actorPreloadTab.spawnCnt += spawnCnt; list.set_Item(i, actorPreloadTab); } LoaderHelper.retCnt++; return; } IL_13B :; } ActorPreloadTab actorPreloadTab2 = new ActorPreloadTab(); actorPreloadTab2.theActor = actorMeta; actorPreloadTab2.modelPrefab.assetPath = actorInfo.GetArtPrefabName((ownerSkinID != 0) ? ownerSkinID : ((int)actorServerData.SkinId), -1); actorPreloadTab2.modelPrefab.nInstantiate = 1; actorPreloadTab2.spawnCnt = spawnCnt; actorPreloadTab2.MarkID = this.GetActorMarkID(actorMeta); actorPreloadTab2.ageActions = new List <AssetLoadBase>(); actorPreloadTab2.parPrefabs = new List <AssetLoadBase>(); actorPreloadTab2.mesPrefabs = new List <AssetLoadBase>(); if (actorServerData.SkinId != 0u) { actorInfo.PreLoadAdvanceSkin(actorPreloadTab2.mesPrefabs, actorServerData.SkinId, -1); } actorPreloadTab2.spritePrefabs = new List <AssetLoadBase>(); actorPreloadTab2.soundBanks = new List <AssetLoadBase>(); actorPreloadTab2.behaviorXml = new List <AssetLoadBase>(); ActorStaticSkillData actorStaticSkillData = default(ActorStaticSkillData); for (int j = 0; j < 8; j++) { actorDataProvider.GetActorStaticSkillData(ref actorMeta, (ActorSkillSlot)j, ref actorStaticSkillData); this.AnalyseSkill(ref actorPreloadTab2, actorStaticSkillData.SkillId); this.AnalysePassiveSkill(ref actorPreloadTab2, actorStaticSkillData.PassiveSkillId); } if (actorMeta.ActorType == ActorTypeDef.Actor_Type_Hero || actorMeta.ActorType == ActorTypeDef.Actor_Type_Call) { int skillID2; int skillID3; int skillID4; int passiveSkillID; this.GetMapSkills(out skillID2, out skillID3, out skillID4, out passiveSkillID); this.AnalyseSkill(ref actorPreloadTab2, skillID2); this.AnalyseSkill(ref actorPreloadTab2, skillID3); this.AnalyseSkill(ref actorPreloadTab2, skillID4); this.AnalysePassiveSkill(ref actorPreloadTab2, passiveSkillID); uint skillID5 = 0u; if (actorDataProvider2.GetActorServerCommonSkillData(ref actorMeta, out skillID5)) { this.AnalyseSkill(ref actorPreloadTab2, (int)skillID5); } this.AnalyseHeroBornAndReviveAge(ref actorPreloadTab2, actorMeta.ConfigId); ResHeroCfgInfo dataByKey = GameDataMgr.heroDatabin.GetDataByKey((uint)actorMeta.ConfigId); if (dataByKey != null) { this.AnalysePassiveSkill(ref actorPreloadTab2, dataByKey.iPassiveID1); this.AnalysePassiveSkill(ref actorPreloadTab2, dataByKey.iPassiveID2); } } else if (actorMeta.ActorType == ActorTypeDef.Actor_Type_Monster) { ActorStaticData actorStaticData = default(ActorStaticData); IGameActorDataProvider actorDataProvider3 = Singleton <ActorDataCenter> .instance.GetActorDataProvider(GameActorDataProviderType.StaticBattleDataProvider); actorDataProvider3.GetActorStaticData(ref actorMeta, ref actorStaticData); int randomPassiveSkillRule = actorStaticData.TheBaseAttribute.RandomPassiveSkillRule; if (randomPassiveSkillRule > 0 && !this.randomSkillCheckerSet.ContainsKey(randomPassiveSkillRule)) { this.randomSkillCheckerSet.Add(randomPassiveSkillRule, true); ResRandomSkillPassiveRule dataByKey2 = GameDataMgr.randomSkillPassiveDatabin.GetDataByKey((long)randomPassiveSkillRule); if (dataByKey2.astRandomSkillPassiveID1 != null && dataByKey2.astRandomSkillPassiveID1.Length > 0) { for (int k = 0; k < dataByKey2.astRandomSkillPassiveID1.Length; k++) { this.AnalysePassiveSkill(ref actorPreloadTab2, dataByKey2.astRandomSkillPassiveID1[k].iParam); } } if (dataByKey2.astRandomSkillPassiveID2 != null && dataByKey2.astRandomSkillPassiveID2.Length > 0) { for (int l = 0; l < dataByKey2.astRandomSkillPassiveID2.Length; l++) { this.AnalysePassiveSkill(ref actorPreloadTab2, dataByKey2.astRandomSkillPassiveID2[l].iParam); } } } ResMonsterCfgInfo dataCfgInfoByCurLevelDiff = MonsterDataHelper.GetDataCfgInfoByCurLevelDiff(actorMeta.ConfigId); if (dataCfgInfoByCurLevelDiff != null && dataCfgInfoByCurLevelDiff.iBufDropID != 0 && dataCfgInfoByCurLevelDiff.iBufDropRate > 0) { ShenFuSystem.PreLoadShenfuResource(dataCfgInfoByCurLevelDiff.iBufDropID, ref actorPreloadTab2, this); } if (actorStaticData.TheMonsterOnlyInfo.SoldierType == 8 && dataCfgInfoByCurLevelDiff != null) { ListView <Assets.Scripts.GameLogic.SoldierWave> listView = new ListView <Assets.Scripts.GameLogic.SoldierWave>(); int iKillByCamp1ChangeSoldierWave = dataCfgInfoByCurLevelDiff.iKillByCamp1ChangeSoldierWave; int iKillByCamp2ChangeSoldierWave = dataCfgInfoByCurLevelDiff.iKillByCamp2ChangeSoldierWave; listView.AddRange(SoldierRegion.GetWavesForPreLoad(iKillByCamp1ChangeSoldierWave)); listView.AddRange(SoldierRegion.GetWavesForPreLoad(iKillByCamp2ChangeSoldierWave)); for (int m = 0; m < listView.Count; m++) { Assets.Scripts.GameLogic.SoldierWave soldierWave = listView[m]; if (soldierWave != null && soldierWave.WaveInfo != null && soldierWave.WaveInfo.astNormalSoldierInfo != null && soldierWave.WaveInfo.astNormalSoldierInfo.Length > 0) { for (int n = 0; n < soldierWave.WaveInfo.astNormalSoldierInfo.Length; n++) { ResSoldierTypeInfo resSoldierTypeInfo = soldierWave.WaveInfo.astNormalSoldierInfo[n]; if (resSoldierTypeInfo.dwSoldierID == 0u) { break; } ActorMeta actorMeta2 = default(ActorMeta); ActorMeta actorMeta3 = actorMeta2; actorMeta3.ActorType = ActorTypeDef.Actor_Type_Monster; actorMeta3.ConfigId = (int)resSoldierTypeInfo.dwSoldierID; actorMeta2 = actorMeta3; this.AddPreloadActor(ref list, ref actorMeta2, resSoldierTypeInfo.dwSoldierNum * 2f, 0); } } } } } if (!string.IsNullOrEmpty(actorInfo.deadAgePath)) { actorPreloadTab2.ageActions.Add(new AssetLoadBase { assetPath = actorInfo.deadAgePath }); } if (!string.IsNullOrEmpty(actorInfo.BtResourcePath) && !this.behaviorXmlSet.ContainsKey(actorInfo.BtResourcePath)) { actorPreloadTab2.behaviorXml.Add(new AssetLoadBase { assetPath = actorInfo.BtResourcePath }); this.behaviorXmlSet.Add(actorInfo.BtResourcePath, true); } actorPreloadTab2.soundBanks = new List <AssetLoadBase>(); this.AnalyseSoundBanks(ref actorPreloadTab2, ref actorInfo, ref actorServerData); list.Add(actorPreloadTab2); if (actorMeta.ActorType == ActorTypeDef.Actor_Type_Hero) { this.CheckCallMonsterSkill(actorInfo, ref list, ref actorMeta, (int)actorServerData.SkinId); } else if (actorMeta.ActorType == ActorTypeDef.Actor_Type_Organ) { this.CheckOrganSoldierWave(ref list, ref actorMeta, inStaticData); } }