public static void RequestInitCoordinator() { LocalAgent.InitCoordinator(); }
public static void RequestRestartWorkerAgents() { LocalAgent.RestartAgentGroup("DefaultDeployed"); }
public static bool RequestPingCoordinator() { return(LocalAgent.PingCoordinator(true)); }
public static void RequestPingRemoteAgents() { LocalAgent.PingRemoteAgents(AgentApplication.Options.AllowedRemoteAgentGroup); }
public static void RequestRestartQAAgents() { LocalAgent.RestartAgentGroup("QATestGroup"); }
protected bool CheckAddGlobalBuff(Buff buffData, EntityParent caster, EntityParent target) { if (buffData == null) { return(false); } if (caster == null) { return(false); } if (target == null) { return(false); } if (!EntityWorld.Instance.TargetTypeFilter <EntityParent>(target, caster, buffData.globalTarget)) { return(false); } if (!BattleCalculator.CalculateAddBuff(caster.BattleBaseAttrs, target.BattleBaseAttrs, (double)buffData.buffProp, 0)) { return(false); } XDict <int, BuffState> buffListByEntityID = this.GetBuffListByEntityID(target.ID); if (buffListByEntityID == null) { return(false); } for (int i = 0; i < buffListByEntityID.Count; i++) { if (LocalAgent.GetBuffDataByID(buffListByEntityID.ElementKeyAt(i)).resist.Contains(buffData.type)) { return(false); } } for (int j = 0; j < buffListByEntityID.Count; j++) { if (LocalAgent.GetBuffDataByID(buffListByEntityID.ElementKeyAt(j)).resistId.Contains(buffData.id)) { return(false); } } List <int> list = new List <int>(); for (int k = 0; k < buffListByEntityID.Count; k++) { if (LocalAgent.GetBuffDataByID(buffListByEntityID.ElementKeyAt(k)).cover.Contains(buffData.type)) { list.Add(buffListByEntityID.ElementKeyAt(k)); } } for (int l = 0; l < list.get_Count(); l++) { this.AppRemoveBuff(list.get_Item(l), target.ID); } list.Clear(); for (int m = 0; m < buffListByEntityID.Count; m++) { if (buffData.delete.Contains(LocalAgent.GetBuffDataByID(buffListByEntityID.ElementKeyAt(m)).type)) { list.Add(buffListByEntityID.ElementKeyAt(m)); } } for (int n = 0; n < list.get_Count(); n++) { this.AppRemoveBuff(list.get_Item(n), target.ID); } if (LocalAgent.CheckBuffByTargetIDAndBuffID(target.ID, buffData.id)) { int overlayModeId = buffData.overlayModeId; if (overlayModeId != 1 && overlayModeId != 2) { this.AppRemoveBuff(buffData.id, target.ID); } } return(true); }
public static void InitManagers() { FPSManager.Instance.Init(); SoundManager.CreateInstance(); SDKManager.Instance.Init(); NativeCallManager.Instance.Init(); VoiceSDKManager.Instance.Init(); PushNotificationManager.Instance.Init(); BTLoader.Init(); AssetManager.AssetOfTPManager.Instance.Init(); UIQueueManager.Instance.Init(); UIStackManager.Instance.Init(); GuideManager.Instance.Init(); BadWordsFilter.Instance.Init(); NetworkManager.Instance.Init(); LoginManager.Instance.Init(); ReconnectManager.Instance.Init(); EntityWorld.Instance.Init(); MySceneManager.Instance.Init(); AOIService.Instance.Init(); CityManager.Instance.Init(); InstanceManager.Init(); GangFightManager.Instance.Init(); BountyManager.Instance.Init(); DungeonManager.Instance.Init(); DefendFightManager.Instance.Init(); SurvivalManager.Instance.Init(); PVPManager.Instance.Init(); ServerGMManager.Instance.Init(); ElementInstanceManager.Instance.Init(); WildBossManager.Instance.Init(); SpecialFightManager.Instance.Init(); DarkTrialManager.Instance.Init(); FashionManager.Instance.Init(); RadarManager.Instance.Init(); MemCollabManager.Instance.Init(); GodWeaponProgressManager.Instance.Init(); SystemOpenProgressManager.Instance.Init(); BadgeManager.Instance.Init(); ActorVisibleManager.Instance.Init(); NPCManager.Instance.Init(); WildBossManager.Instance.Init(); TaskNPCManager.Instance.Init(); WildBossNPCManager.Instance.Init(); HearthNPCManager.Instance.Init(); CollectionNPCManager.Instance.Init(); PetManager.Instance.Init(); BackpackManager.Instance.Init(); EnergyManager.Instance.Init(); BoxRewardManager.Instance.Init(); GuildManager.Instance.Init(); TeamManager.Instance.Init(); MultiPlayerManager.Instance.Init(); GoldBuyManager.Instance.Init(); ElementManager.Instance.Init(); ChangeCareerManager.Instance.Init(); GlobalManager.Instance.Init(); EquipmentManager.Instance.Init(); SignInManager.Instance.Init(); MainTaskManager.Instance.Init(); DailyTaskManager.Instance.Init(); CharacterManager.Instance.Init(); UpgradeManager.Instance.Init(); GuildWarManager.Instance.Init(); VIPManager.Instance.Init(); RechargeManager.Instance.Init(); RankingManager.Instance.Init(); SkillUIManager.Instance.Init(); RoleTalentManager.Instance.Init(); TipsManager.Instance.Init(); EliteDungeonManager.Instance.Init(); TeamBasicManager.Instance.Init(); WildMonsterManager.Instance.Init(); GodSoldierManager.Instance.Init(); GodWeaponManager.Instance.Init(); SkillRuneManager.Instance.Init(); GuildBossManager.Instance.Init(); RenameManager.Instance.Init(); HuntManager.Instance.Init(); RankUpManager.Instance.Init(); RankUpChangeManager.Instance.Init(); MultiPVPManager.Instance.Init(); TramcarManager.Instance.Init(); GuildSkillManager.Instance.Init(); PetTaskManager.Instance.Init(); GuildStorageManager.Instance.Init(); MarketManager.Instance.Init(); LimitTimeMarketManager.Instance.Init(); GuildMarketManager.Instance.Init(); XMarketManager.Instance.Init(); TransactionNPCManager.Instance.Init(); GlobalBattleNetwork.Instance.Init(); BattleBlackboard.Instance.Init(); LocalInstanceHandler.Instance.Init(); LocalBattleHandler.Instance.Init(); LocalAgent.Intergrate(LocalInstanceHandler.Instance, LocalBattleHandler.Instance); BattleCalculator.Init(); WarningGraghHandler.Init(); BattleTimeManager.Instance.Init(); BattleDialogManager.Instance.Init(); ChatManager.Instance.Init(); FriendManager.Instance.Init(); MailManager.Instance.Init(); TitleManager.Instance.Init(); BroadcastManager.Instance.Init(); BillboardManager.Instance.Init(); FloatTextAddManager.Instance.Init(); GemManager.Instance.Init(); Activity7DayManager.Instance.Init(); ActivityCenterManager.Instance.Init(); WingManager.Instance.Init(); ConsumeRechargeManager.Instance.Init(); LuckDrawManager.Instance.Init(); NoticeManager.Instance.Init(); OperateActivityManager.Instance.Init(); AchievementManager.Instance.Init(); StrongerManager.Instance.Init(); FirstPayManager.Instance.Init(); InvestFundManager.Instance.Init(); GrowUpPlanManager.Instance.Init(); ActivityTossDiscountManager.Instance.Init(); NewPeoperGiftPackageManager.Instance.Init(); CheckPlayerInfoManager.Instance.Init(); OffHookManager.Instance.Init(); MushroomHitManager.Instance.Init(); BossBookManager.Instance.Init(); GiftExchangeManager.Instance.Init(); DayGiftManager.Instance.Init(); VipTasteCardManager.Instance.Init(); AcOpenServerManager.Instance.Init(); RedBagManager.Instance.Init(); }
protected void KillBuff(int buffID, long casterID, long targetID, int fromSkillLevel, bool isCommunicateMix) { Buff buffDataByID = LocalAgent.GetBuffDataByID(buffID); EntityParent entityByID = LocalAgent.GetEntityByID(casterID); EntityParent entityByID2 = LocalAgent.GetEntityByID(targetID); switch (buffDataByID.type) { case 1: LocalBattleBuffCalculatorDamageHandler.KillBuff(buffID, casterID, targetID, fromSkillLevel, isCommunicateMix); break; case 2: LocalBattleBuffCalculatorTreatHandler.KillBuff(buffID, casterID, targetID, fromSkillLevel, isCommunicateMix); break; case 3: LocalBattleBuffTauntHandler.KillBuff(buffDataByID, entityByID, entityByID2, fromSkillLevel, isCommunicateMix); break; case 4: LocalBattleBuffFixHandler.KillBuff(buffDataByID, entityByID, entityByID2, fromSkillLevel, isCommunicateMix); break; case 5: LocalBattleBuffStaticHandler.KillBuff(buffDataByID, entityByID, entityByID2, fromSkillLevel, isCommunicateMix); break; case 6: LocalBattleBuffShiftHandler.KillBuff(buffDataByID, entityByID, entityByID2, fromSkillLevel, isCommunicateMix); break; case 7: LocalBattleBuffChangeAttrsHandler.KillBuff(buffDataByID, entityByID, entityByID2, fromSkillLevel, isCommunicateMix); break; case 8: LocalBattleBuffSuperArmorHandler.KillBuff(buffDataByID, entityByID, entityByID2, fromSkillLevel, isCommunicateMix); break; case 9: LocalBattleBuffDrainHandler.KillBuff(buffID, casterID, targetID, fromSkillLevel, isCommunicateMix); break; case 10: LocalBattleBuffIgnoreFormulaHandler.KillBuff(buffDataByID, entityByID, entityByID2, fromSkillLevel, isCommunicateMix); break; case 11: LocalBattleBuffCloseRendererHandler.KillBuff(buffDataByID, entityByID, entityByID2, fromSkillLevel, isCommunicateMix); break; case 12: LocalBattleBuffMoveCastHandler.KillBuff(buffDataByID, entityByID, entityByID2, fromSkillLevel, isCommunicateMix); break; case 13: LocalBattleBuffFilterHandler.KillBuff(buffDataByID, entityByID, entityByID2, fromSkillLevel, isCommunicateMix); break; case 14: LocalBattleBuffDizzyHandler.KillBuff(buffDataByID, entityByID, entityByID2, fromSkillLevel, isCommunicateMix); break; case 15: LocalBattleBuffUnconspicuousHandler.KillBuff(buffDataByID, entityByID, entityByID2, fromSkillLevel, isCommunicateMix); break; case 16: LocalBattleBuffAuraHandler.KillBuff(buffDataByID, entityByID, entityByID2, fromSkillLevel, isCommunicateMix); break; case 17: LocalBattleBuffWeakHandler.KillBuff(buffDataByID, entityByID, entityByID2, fromSkillLevel, isCommunicateMix); break; case 18: LocalBattleBuffIncurableHandler.KillBuff(buffDataByID, entityByID, entityByID2, fromSkillLevel, isCommunicateMix); break; case 19: LocalBattleBuffCalculatorTreat2Handler.KillBuff(buffID, casterID, targetID, fromSkillLevel, isCommunicateMix); break; } if (buffDataByID.tempSkill > 0) { LocalBattleProtocolSimulator.SendRemoveSkill(targetID, buffDataByID.tempSkill); } }
protected void HandleTriggerEffect(long casterID, int skillID, int effectID, List <EffectTargetInfo> effectTargetInfos, XPoint basePoint, int effectUniqueID, bool isAddEffect = true, bool isCommunicateMix = false) { Effect effectDataByID = LocalAgent.GetEffectDataByID(effectID); EntityParent entityByID = LocalAgent.GetEntityByID(casterID); List <long> list = new List <long>(); for (int i = 0; i < effectTargetInfos.get_Count(); i++) { list.Add(effectTargetInfos.get_Item(i).targetId); } if (isAddEffect) { if (list.get_Count() > 0 && LocalAgent.GetEntityUsable(entityByID, isCommunicateMix)) { int num = BattleCalculator.CalculateEffectCasterActPoint(entityByID.BattleBaseAttrs, (double)effectDataByID.casterPoint); entityByID.SetValue(GameData.AttrType.ActPoint, entityByID.TryAddValue(GameData.AttrType.ActPoint, (long)num), true); } if (isCommunicateMix && effectDataByID.type1 != 0 && effectDataByID.type1 != 1 && effectDataByID.type1 != 2) { GlobalBattleNetwork.Instance.SendClientDriveBattleEffectDamage(casterID, 0L, (!LocalAgent.GetEntityUsable(entityByID, isCommunicateMix)) ? 0L : entityByID.Hp, 0L, 0L, skillID, effectID, true, false, null, null, basePoint, new List <long>(), string.Empty, true); } } for (int j = 0; j < list.get_Count(); j++) { EntityParent entityByID2 = LocalAgent.GetEntityByID(list.get_Item(j)); if (LocalAgent.GetEntityUsable(entityByID2, isCommunicateMix)) { entityByID2.SetValue(GameData.AttrType.ActPoint, entityByID2.TryAddValue(GameData.AttrType.ActPoint, (long)effectDataByID.targetPoint), true); } } switch (effectDataByID.type1) { case 1: LocalBattleEffectCalculatorDamageHandler.AppDamage(effectDataByID, entityByID, list, basePoint, skillID, isAddEffect, isCommunicateMix); break; case 2: LocalBattleEffectCalculatorTreatHandler.AppTheat(effectDataByID, entityByID, list, basePoint, skillID, isAddEffect, isCommunicateMix); break; case 3: LocalBattleEffectSummonMonsterHandler.AppSummonMonster(effectDataByID, entityByID, basePoint, isCommunicateMix); break; case 4: LocalBattleEffectReliveHandler.AppRelive(list, isCommunicateMix); break; case 5: LocalBattleEffectDrainHandler.AppDrain(effectDataByID, entityByID, list, isCommunicateMix); break; case 7: this.AppFuse(entityByID, skillID, isCommunicateMix); break; case 8: LocalBattleEffectSummonPetHandler.AppSummonPet(effectDataByID, entityByID, skillID, isCommunicateMix); break; case 9: LocalBattleEffectPetManualSkillHandler.AppManualSkill(entityByID, list, skillID, isCommunicateMix); break; case 10: LocalBattleEffectBlinkHandler.AppBlink(effectDataByID, entityByID, basePoint, isCommunicateMix); break; case 11: LocalBattleEffectHitHandler.AppHit(effectDataByID, entityByID, list, basePoint, isAddEffect); break; } for (int k = 0; k < list.get_Count(); k++) { for (int l = 0; l < effectDataByID.addLoopBuff.get_Count(); l++) { this.AppAddBuff(effectDataByID.addLoopBuff.get_Item(l), entityByID, list.get_Item(k), skillID, effectDataByID.element, isCommunicateMix); } if (isAddEffect) { for (int m = 0; m < effectDataByID.addBuff.get_Count(); m++) { this.AppAddBuff(effectDataByID.addBuff.get_Item(m), entityByID, list.get_Item(k), skillID, effectDataByID.element, isCommunicateMix); } for (int n = 0; n < effectDataByID.removeBuff.get_Count(); n++) { this.AppRemoveBuff(effectDataByID.removeBuff.get_Item(n), list.get_Item(k)); } } if (entityByID != null) { int skillLevelByID = entityByID.GetSkillLevelByID(skillID); for (int num2 = 0; num2 < effectDataByID.gradeAddLoopBuffId.get_Count(); num2++) { if (effectDataByID.gradeAddLoopBuffId.get_Item(num2).key == skillLevelByID) { this.AppAddBuff(effectDataByID.gradeAddLoopBuffId.get_Item(num2).value, entityByID, list.get_Item(k), skillID, effectDataByID.element, isCommunicateMix); } } if (isAddEffect) { for (int num3 = 0; num3 < effectDataByID.gradeAddBuffId.get_Count(); num3++) { if (effectDataByID.gradeAddBuffId.get_Item(num3).key == skillLevelByID) { this.AppAddBuff(effectDataByID.gradeAddBuffId.get_Item(num3).value, entityByID, list.get_Item(k), skillID, effectDataByID.element, isCommunicateMix); } } } } } }
protected void IntervalHandleBuff(int buffID, long targetID) { EntityParent entityByID = LocalAgent.GetEntityByID(targetID); if (entityByID == null) { return; } XDict <int, BuffState> buffListByEntityID = this.GetBuffListByEntityID(targetID); if (buffListByEntityID == null) { return; } if (buffListByEntityID.Count == 0) { return; } if (!buffListByEntityID.ContainsKey(buffID)) { return; } EntityParent entityByID2 = LocalAgent.GetEntityByID(this.buffStateTable[targetID][buffID].casterID); if (entityByID2 == null) { return; } Buff buffDataByID = LocalAgent.GetBuffDataByID(buffID); BuffType type = (BuffType)buffDataByID.type; switch (type) { case BuffType.Aura: entityByID.GetSkillManager().ClientCastSkillByID(buffDataByID.tempSkill); return; case BuffType.Weak: case BuffType.Incurable: IL_83: if (type == BuffType.Damage) { LocalBattleBuffCalculatorDamageHandler.IntervalBuff(buffDataByID, entityByID2, entityByID, this.buffStateTable[targetID][buffID].fromSkillID, this.buffStateTable[targetID][buffID].fromSkillLevel, this.buffStateTable[targetID][buffID].fromSkillAttrChange, this.buffStateTable[targetID][buffID].isCommunicateMix); return; } if (type == BuffType.Theat) { LocalBattleBuffCalculatorTreatHandler.IntervalBuff(buffDataByID, entityByID2, entityByID, this.buffStateTable[targetID][buffID].fromSkillID, this.buffStateTable[targetID][buffID].fromSkillLevel, this.buffStateTable[targetID][buffID].fromSkillAttrChange, this.buffStateTable[targetID][buffID].isCommunicateMix); return; } if (type != BuffType.Drain) { return; } LocalBattleBuffDrainHandler.IntervalBuff(buffDataByID, entityByID2, entityByID, this.buffStateTable[targetID][buffID].fromSkillID, this.buffStateTable[targetID][buffID].fromSkillLevel, this.buffStateTable[targetID][buffID].fromSkillAttrChange, this.buffStateTable[targetID][buffID].isCommunicateMix); return; case BuffType.Theat2: LocalBattleBuffCalculatorTreat2Handler.IntervalBuff(buffDataByID, entityByID2, entityByID, this.buffStateTable[targetID][buffID].fromSkillID, this.buffStateTable[targetID][buffID].fromSkillLevel, this.buffStateTable[targetID][buffID].fromSkillAttrChange, this.buffStateTable[targetID][buffID].isCommunicateMix); return; } goto IL_83; }
protected bool CheckBuff(Buff buffData, EntityParent caster, EntityParent target, int fromSkillID, int elementType, bool isCommunicateMix = false) { if (buffData == null) { return(false); } if (caster == null) { return(false); } if (target == null) { return(false); } if (LocalAgent.GetSpiritIsDead(target, isCommunicateMix)) { return(false); } if (!target.IsFighting) { return(false); } if (!BattleCalculator.CalculateAddBuff(caster.BattleBaseAttrs, target.BattleBaseAttrs, (double)buffData.buffProp, elementType)) { return(false); } XDict <int, BuffState> buffListByEntityID = this.GetBuffListByEntityID(target.ID); if (buffListByEntityID == null) { return(false); } for (int i = 0; i < buffListByEntityID.Count; i++) { if (LocalAgent.GetBuffDataByID(buffListByEntityID.ElementKeyAt(i)).resist.Contains(buffData.type)) { return(false); } } for (int j = 0; j < buffListByEntityID.Count; j++) { if (LocalAgent.GetBuffDataByID(buffListByEntityID.ElementKeyAt(j)).resistId.Contains(buffData.id)) { return(false); } } List <int> list = new List <int>(); for (int k = 0; k < buffListByEntityID.Count; k++) { if (LocalAgent.GetBuffDataByID(buffListByEntityID.ElementKeyAt(k)).cover.Contains(buffData.type)) { list.Add(buffListByEntityID.ElementKeyAt(k)); } } for (int l = 0; l < buffListByEntityID.Count; l++) { if (LocalAgent.GetBuffDataByID(buffListByEntityID.ElementKeyAt(l)).coverId.Contains(buffData.id)) { list.Add(buffListByEntityID.ElementKeyAt(l)); } } for (int m = 0; m < list.get_Count(); m++) { this.AppRemoveBuff(list.get_Item(m), target.ID); } list.Clear(); for (int n = 0; n < buffListByEntityID.Count; n++) { if (buffData.delete.Contains(LocalAgent.GetBuffDataByID(buffListByEntityID.ElementKeyAt(n)).type)) { list.Add(buffListByEntityID.ElementKeyAt(n)); } } for (int num = 0; num < list.get_Count(); num++) { this.AppRemoveBuff(list.get_Item(num), target.ID); } if (LocalAgent.CheckBuffByTargetIDAndBuffID(target.ID, buffData.id)) { int overlayModeId = buffData.overlayModeId; if (overlayModeId != 1 && overlayModeId != 2) { this.AppRemoveBuff(buffData.id, target.ID); } } return(true); }
protected void AppDeFuse(long casterID) { LocalAgent.AppClearBuff(casterID); this.AppClearFuse(casterID, false); }
public void AppFuse(EntityParent caster, int skillID, bool isCommunicateMix) { if (caster == null) { return; } if (caster.BattleBaseAttrs == null) { return; } XDict <int, LocalDimensionPetSpirit> petSpiritByOwnerID = LocalAgent.GetPetSpiritByOwnerID(caster.ID); if (petSpiritByOwnerID == null) { return; } if (petSpiritByOwnerID.Count == 0) { return; } int num = -1; for (int i = 0; i < petSpiritByOwnerID.Count; i++) { if (petSpiritByOwnerID.ElementValueAt(i).fuseRitualSkillInfo != null) { if (petSpiritByOwnerID.ElementValueAt(i).fuseRitualSkillInfo.skillId == skillID) { num = petSpiritByOwnerID.ElementKeyAt(i); LocalAgent.RemovePetSummonRitualSkill(caster.ID, petSpiritByOwnerID.ElementValueAt(i)); break; } } } List <EntityParent> values = EntityWorld.Instance.GetEntities <EntityPet>().Values; EntityPet entityPet = null; for (int j = 0; j < values.get_Count(); j++) { if (values.get_Item(j).IsFighting&& values.get_Item(j).OwnerListIdx == num && values.get_Item(j).OwnerID == caster.ID) { entityPet = (values.get_Item(j) as EntityPet); break; } } if (entityPet == null) { return; } FuseState fuseState = new FuseState(); fuseState.modelID = caster.ModelID; fuseState.skill.Clear(); using (Dictionary <int, int> .Enumerator enumerator = caster.GetSkillPairPart().GetEnumerator()) { while (enumerator.MoveNext()) { KeyValuePair <int, int> current = enumerator.get_Current(); fuseState.skill.Add(current.get_Key(), current.get_Value()); } } using (List <int> .Enumerator enumerator2 = caster.GetSkillSinglePart().GetEnumerator()) { while (enumerator2.MoveNext()) { int current2 = enumerator2.get_Current(); fuseState.skill.AddValue(current2); } } fuseState.petID = entityPet.ID; LocalAgent.AppClearBuff(caster.ID); LocalAgent.AppClearBuff(entityPet.ID); this.SetFuseAttrs(caster, entityPet, fuseState); Pet pet = DataReader <Pet> .Get(entityPet.TypeID); for (int k = 0; k < pet.fuseSkill.get_Count(); k++) { if (pet.fuseSkill.get_Item(k).key == caster.TypeID) { List <KeyValuePair <int, int> > list = new List <KeyValuePair <int, int> >(); list.Add(new KeyValuePair <int, int>(1, pet.fuseNormalSkill)); list.Add(new KeyValuePair <int, int>(11, pet.fuseSkill.get_Item(k).value)); LocalBattleProtocolSimulator.SendFit(caster.ID, entityPet.ID, pet.fuseModle, list, 1000 * (int)(entityPet.FuseTime + (caster as EntitySelf).TotalFuseTimePlus)); caster.SetValue(GameData.AttrType.MoveSpeed, DataReader <AvatarModel> .Get(pet.fuseModle).speed, true); break; } } fuseState.timerID = TimerHeap.AddTimer((uint)(1000f * (entityPet.FuseTime + (caster as EntitySelf).TotalFuseTimePlus)), 0, delegate { this.AppDeFuse(caster.ID); }); this.fuseStateTable.Add(caster.ID, fuseState); }
public static void AppDamage(Effect effectData, EntityParent caster, List <long> effectTargetIDs, XPoint basePoint, int skillID, bool isAddEffect, bool isCommunicateMix) { if (!LocalAgent.GetEntityCalculatable(caster, isCommunicateMix)) { return; } XDict <GameData.AttrType, long> effectCasterTempAttr = LocalBattleEffectCalculatorHandler.GetEffectCasterTempAttr(effectData, caster, skillID); bool flag = isAddEffect && isCommunicateMix; for (int i = 0; i < effectTargetIDs.get_Count(); i++) { if (LocalAgent.GetEntityCalculatable(caster, isCommunicateMix)) { EntityParent entityByID = LocalAgent.GetEntityByID(effectTargetIDs.get_Item(i)); if (LocalAgent.GetEntityCalculatable(entityByID, isCommunicateMix)) { if (!entityByID.IsUnconspicuous || effectData.forcePickup != 0) { if (!entityByID.IsIgnoreFormula) { CauseDamageEffectAnnouncer.Announce(caster, entityByID, effectData.id); UnderDamageEffectAnnouncer.Announce(entityByID, caster, effectData.id); BattleCalculator.DamageResult damageResult = BattleCalculator.CalculateDamage(caster.BattleBaseAttrs, entityByID.BattleBaseAttrs, caster.IsEntitySelfType || caster.IsEntityPlayerType || caster.IsEntityPetType, entityByID.IsEntitySelfType || entityByID.IsEntityPlayerType, effectCasterTempAttr, null); List <ClientDrvBuffInfo> casterBuffInfo = null; List <ClientDrvBuffInfo> targetBuffInfo = null; if (isCommunicateMix) { casterBuffInfo = LocalAgent.MakeClientDrvBuffInfo(caster.ID); targetBuffInfo = LocalAgent.MakeClientDrvBuffInfo(effectTargetIDs.get_Item(i)); } if (damageResult.Lifesteal > 0L && !damageResult.IsMiss && LocalAgent.GetEntityIsCurable(caster, isCommunicateMix)) { long num = LocalAgent.GetSpiritCurHp(caster, isCommunicateMix) + damageResult.Lifesteal; if (num > caster.RealHpLmt) { num = caster.RealHpLmt; } Pos pos = null; if (caster.Actor) { pos = new Pos(); pos.x = caster.Actor.FixTransform.get_position().x * 100f; pos.y = caster.Actor.FixTransform.get_position().z * 100f; } LocalAgent.SetSpiritCurHp(caster, num, isCommunicateMix); LocalBattleProtocolSimulator.SendTreat(caster.ID, (GameObjectType.ENUM)caster.WrapType, caster.ID, (GameObjectType.ENUM)caster.WrapType, BattleAction_Treat.TreatSrcType.SuckBlood, damageResult.Lifesteal, num, pos); } long num2 = LocalAgent.GetSpiritCurHp(entityByID, isCommunicateMix) - damageResult.Damage; if (damageResult.IsMiss) { CauseMissAnnouncer.Announce(caster, entityByID); UnderMissAnnouncer.Announce(entityByID, caster); } else if (num2 <= 0L) { num2 = 0L; LocalBattleHitHandler.AppDead(effectTargetIDs.get_Item(i)); GlobalBattleNetwork.Instance.SendClientDrvBattleDeathNty(effectTargetIDs.get_Item(i)); } else { if (damageResult.IsCrit) { CauseCritAnnouncer.Announce(caster, entityByID); UnderCritAnnouncer.Announce(entityByID, caster); } if (damageResult.IsParry) { CauseParryAnnouncer.Announce(caster, entityByID); UnderParryAnnouncer.Announce(entityByID, caster); LocalBattleHitHandler.AppParryFx(entityByID); } else { LocalBattleHitHandler.AppHit(effectData, caster, entityByID, basePoint, isAddEffect); } LocalBattleHitHandler.AppHitAudio(effectData, entityByID); LocalBattleHitHandler.AppWeakCalculate(caster, entityByID, effectCasterTempAttr); } LocalAgent.SetSpiritCurHp(entityByID, num2, isCommunicateMix); List <long> list = new List <long>(); if (isCommunicateMix && !damageResult.IsMiss) { list.Add((long)damageResult.parryRandomIndex); list.Add((long)damageResult.critRandomIndex); list.Add((long)damageResult.damageRandomIndex); GlobalBattleNetwork.Instance.SendClientDriveBattleEffectDamage(caster.ID, effectTargetIDs.get_Item(i), caster.Hp, num2, damageResult.Damage, skillID, effectData.id, flag, true, casterBuffInfo, targetBuffInfo, basePoint, list, string.Concat(new object[] { caster.TryAddValue(GameData.AttrType.SkillNmlDmgScale, effectCasterTempAttr), "_", caster.TryAddValue(GameData.AttrType.SkillNmlDmgAddAmend, effectCasterTempAttr), "_", entityByID.DefMulAmend, "_", caster.TryAddValue(GameData.AttrType.SkillIgnoreDefenceHurt, effectCasterTempAttr) }), false); } if (list.get_Count() == 3) { } LocalBattleProtocolSimulator.SendBleed(effectTargetIDs.get_Item(i), (GameObjectType.ENUM)entityByID.WrapType, caster.ID, (GameObjectType.ENUM)caster.WrapType, BattleAction_Bleed.DmgSrcType.Attack, ElemType.ENUM.Normal, damageResult.Damage, num2, damageResult.IsCrit, damageResult.IsParry, damageResult.IsMiss); if (flag) { flag = false; } } } } } } }