public override uint CommonAttackSearchEnemy(int srchR) { if (this.commonAttackEnemyHeroTargetID > 0u) { PoolObjHandle <ActorRoot> actor = Singleton <GameObjMgr> .GetInstance().GetActor(this.commonAttackEnemyHeroTargetID); if (!actor || actor.get_handle().ActorControl.IsDeadState) { this.ClearCommonAttackTarget(); base.SetEnemyHeroAttackTargetID(0u); return(0u); } this.SetCommonAttackTarget(this.commonAttackEnemyHeroTargetID, true); return(this.commonAttackEnemyHeroTargetID); } else { bool flag = false; uint num = base.ExecuteSearchTraget(srchR, ref flag); if (!flag) { return(num); } if (!base.IsValidTargetID(num)) { SkillCache skillUseCache = this.actor.SkillControl.SkillUseCache; if (skillUseCache != null && !skillUseCache.GetSpecialCommonAttack()) { this.CancelCommonAttackMode(); num = 0u; } } if (num == 0u) { this.ClearCommonAttackTarget(); } else { this.SetCommonAttackTarget(num, false); } return(num); } }
public override uint CommonAttackSearchEnemy(int srchR) { SkillCache skillUseCache = null; SelectEnemyType selectLowHp = SelectEnemyType.SelectLowHp; uint commonAttackTargetID = this.commonAttackTargetID; Player ownerPlayer = ActorHelper.GetOwnerPlayer(ref this.actorPtr); if (ownerPlayer != null) { if (base.IsValidTargetID(commonAttackTargetID)) { this.SetCommonAttackTarget(commonAttackTargetID); return(commonAttackTargetID); } selectLowHp = ownerPlayer.AttackTargetMode; } if (selectLowHp == SelectEnemyType.SelectLowHp) { commonAttackTargetID = Singleton <CommonAttackSearcher> .GetInstance().CommonAttackSearchLowestHpTarget(base.actor.ActorControl, srchR); } else { commonAttackTargetID = Singleton <CommonAttackSearcher> .GetInstance().CommonAttackSearchNearestTarget(base.actor.ActorControl, srchR); } if (!base.IsValidTargetID(commonAttackTargetID)) { skillUseCache = base.actor.ActorControl.actor.SkillControl.SkillUseCache; if ((skillUseCache != null) && !skillUseCache.GetSpecialCommonAttack()) { this.CancelCommonAttackMode(); commonAttackTargetID = 0; } } if (commonAttackTargetID == 0) { this.ClearCommonAttackTarget(); return(commonAttackTargetID); } this.SetCommonAttackTarget(commonAttackTargetID); return(commonAttackTargetID); }
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 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(); } }