protected virtual void ServerHandleSkillByID(int skillID, int actionPriority, Vector3 dir, bool isClientHandle, int uniqueID) { Skill skill = DataReader <Skill> .Get(skillID); if (skill == null) { return; } this.CurSkillID = skillID; this.ownerActor.IsRotating = false; this.ownerActor.ForceSetDirection(dir); this.ownerActor.ApplyMovingDirAsForward(); if (skill.effect != null) { for (int i = 0; i < skill.effect.get_Count(); i++) { this.MarkStaticEffectMessage(skill.effect.get_Item(i), isClientHandle); } } if (!string.IsNullOrEmpty(skill.attAction)) { List <int> actionEffects = XUtility.GetActionEffects(this.ownerActor.FixAnimator.get_runtimeAnimatorController(), skill.attAction); for (int j = 0; j < actionEffects.get_Count(); j++) { this.MarkStaticEffectMessage(actionEffects.get_Item(j), isClientHandle); } } if (isClientHandle) { this.serverTrusteeSkillActionStatusName.Add(new KeyValuePair <string, int>(skill.attAction, uniqueID)); if (string.IsNullOrEmpty(skill.attAction)) { this.ServerTrusteeSkillActionEnd(string.Empty, this.owner.ID); } } this.ownerActor.ServerCastAction(skill.attAction, actionPriority, (!isClientHandle) ? ActorParent.EffectFrameSetMode.Ignore : ActorParent.EffectFrameSetMode.Server, skill.changeSpeed, (!string.IsNullOrEmpty(skill.attAction)) ? skillID : 0, skill.combo, skill.eventTag); if (skill.superArmor == 1) { int fxID = FXManager.Instance.PlayFX(93, this.ownerActor.FixTransform, this.ownerActor.FixTransform.get_position(), this.ownerActor.FixTransform.get_rotation(), 1f, 1f, 0, false, 0, null, null, 1f, FXClassification.Normal); this.ownerActor.FixFXSystem.AddActionFX(fxID); } if (skill.skillWarningTime != 0) { WarningGraghHandler.AddWarningGragh(new SkillWarningGraghMessage { casterActor = this.ownerActor, targetPoint = null, skillID = skillID }); } this.ServerLogicTriggerEffect(skill); }
public static void ReleaseManagers() { WarningGraghHandler.Release(); BattleCalculator.Release(); GlobalBattleNetwork.Instance.Release(); BattleBlackboard.Instance.Release(); LocalBattleHandler.Instance.Release(); LocalInstanceHandler.Instance.Release(); CityManager.Instance.Release(); AOIService.Instance.Release(); EntityWorld.Instance.Release(); InstanceManager.Release(); LoginManager.Instance.Release(); ReconnectManager.Instance.Release(); NetworkManager.Instance.Release(); for (int i = 0; i < BaseSubSystemManager.ListManager.get_Count(); i++) { BaseSubSystemManager.ListManager.get_Item(i).Release(); } }
protected static GraghMessage MarkWarningGraghByDynamicWarningArea(XPoint caster, XPoint target, List <int> offset, List <int> dynamicWarningArea) { if (dynamicWarningArea.get_Count() < 4) { return(null); } XPoint xPoint = null; int num = dynamicWarningArea.get_Item(0); if (num != 1) { if (num == 2) { if (target == null) { return(null); } xPoint = new XPoint(); xPoint.position = target.position; xPoint.rotation = target.rotation; } } else { if (caster == null) { return(null); } xPoint = new XPoint(); xPoint.position = caster.position; xPoint.rotation = caster.rotation; } xPoint = xPoint.ApplyOffset(offset); List <int> list = new List <int>(); for (int i = 1; i < 4; i++) { list.Add(dynamicWarningArea.get_Item(i)); } return(WarningGraghHandler.MarkWarningGragh(xPoint, list)); }
public static void AddWarningGragh(SkillWarningGraghMessage message) { if (!message.casterActor) { return; } Skill skillData = DataReader <Skill> .Get(message.skillID); if (skillData == null) { return; } XPoint caster = new XPoint { position = message.casterActor.FixTransform.get_position(), rotation = message.casterActor.FixTransform.get_rotation() }; GraghMessage gragh = WarningGraghHandler.MarkWarningGraghByDynamicWarningArea(caster, message.targetPoint, skillData.dynamicWarningAreaOffset, skillData.dynamicWarningArea); if (gragh == null) { return; } int fxID = 0; fxID = FXManager.Instance.PlayFX((gragh.graghShape != GraghShape.Sector) ? 1104 : 1103, null, gragh.Center, gragh.fixBasePoint.rotation, message.casterActor.RealActionSpeed, 1f, 0, false, 0, null, delegate(ActorFX fx) { if (fx != null) { fx.VecterScale = ((gragh.graghShape != GraghShape.Sector) ? new Vector3(gragh.width, 1f, gragh.height) : new Vector3(gragh.range, 1f, gragh.range)); } WarningGraghHandler.warningFxTimer.Add(TimerHeap.AddTimer((uint)skillData.skillWarningTime, 0, delegate { FXManager.Instance.DeleteFX(fxID); })); }, 1f, FXClassification.Normal); message.casterActor.FixFXSystem.AddActionFX(fxID); }
public virtual void ClientHandleSkillByID(int skillID) { Skill skill = DataReader <Skill> .Get(skillID); if (skill == null) { return; } this.CurSkillID = skillID; this.MarkCD(skill); this.ownerActor.IsRotating = false; if (skill.autoAim == 1 && this.owner.AITarget != null && this.owner.AITarget.Actor) { this.ownerActor.ForceSetDirection(new Vector3(this.owner.AITarget.Actor.FixTransform.get_position().x - this.ownerActor.FixTransform.get_position().x, 0f, this.owner.AITarget.Actor.FixTransform.get_position().z - this.ownerActor.FixTransform.get_position().z)); this.ownerActor.ApplyMovingDirAsForward(); } for (int i = 0; i < skill.effect.get_Count(); i++) { this.MarkStaticEffectMessage(skill.effect.get_Item(i), true); } if (!string.IsNullOrEmpty(skill.attAction)) { List <int> actionEffects = XUtility.GetActionEffects(this.ownerActor.FixAnimator.get_runtimeAnimatorController(), skill.attAction); for (int j = 0; j < actionEffects.get_Count(); j++) { this.MarkStaticEffectMessage(actionEffects.get_Item(j), true); } } if (skill.aiSkillMove == 1 && this.owner.AITarget != null) { SkillWarningMessage skillWarningMessage = new SkillWarningMessage(); skillWarningMessage.caster = this.owner; skillWarningMessage.target = this.owner.AITarget; skillWarningMessage.skillID = skillID; skillWarningMessage.effectMessage = new Dictionary <int, XPoint>(); if (skill.effect != null) { for (int k = 0; k < skill.effect.get_Count(); k++) { int num = skill.effect.get_Item(k); if (this.effectMessageCache.ContainsKey(num) && !skillWarningMessage.effectMessage.ContainsKey(num)) { skillWarningMessage.effectMessage.Add(num, this.effectMessageCache.get_Item(num).basePoint); } } } List <int> actionEffects2 = XUtility.GetActionEffects(this.ownerActor.FixAnimator.get_runtimeAnimatorController(), skill.attAction); for (int l = 0; l < actionEffects2.get_Count(); l++) { int num2 = actionEffects2.get_Item(l); if (this.effectMessageCache.ContainsKey(num2) && !skillWarningMessage.effectMessage.ContainsKey(num2)) { skillWarningMessage.effectMessage.Add(num2, this.effectMessageCache.get_Item(num2).basePoint); } } EventDispatcher.BroadcastAsync <SkillWarningMessage>(WarningManagerEvent.AddSkillWarningMessage, skillWarningMessage); } bool flag = this.CheckSkillTrustee(skill); if (flag) { this.owner.IsSkillInTrustee = true; this.serverTrusteeSkillActionStatusName.Add(new KeyValuePair <string, int>(skill.attAction, 0)); if (string.IsNullOrEmpty(skill.attAction)) { this.ServerTrusteeSkillActionEnd(string.Empty, this.owner.ID); } } if (skill.actionPriority != 0) { this.ownerActor.ActionPriorityTable[skill.attAction] = skill.actionPriority; } this.ownerActor.CastAction(skill.attAction, true, skill.changeSpeed, (!string.IsNullOrEmpty(skill.attAction)) ? skillID : 0, skill.combo, skill.eventTag); if (skill.superArmor == 1) { int fxID = FXManager.Instance.PlayFX(93, this.ownerActor.FixTransform, this.ownerActor.FixTransform.get_position(), this.ownerActor.FixTransform.get_rotation(), 1f, 1f, 0, false, 0, null, null, 1f, FXClassification.Normal); this.ownerActor.FixFXSystem.AddActionFX(fxID); } if (skill.skillWarningTime != 0 && this.owner.AITarget != null) { WarningGraghHandler.AddWarningGragh(new SkillWarningGraghMessage { casterActor = this.ownerActor, targetPoint = (!this.owner.AITarget.Actor) ? null : new XPoint { position = this.owner.AITarget.Actor.FixTransform.get_position(), rotation = this.owner.AITarget.Actor.FixTransform.get_rotation() }, skillID = skillID }); } GlobalBattleNetwork.Instance.SendUseSkill(this.owner.ID, skillID, (this.owner.AITarget != null) ? this.owner.AITarget.ID : 0L, flag, this.ownerActor.FixTransform.get_position(), this.ownerActor.FixTransform.get_forward()); this.ClientLogicTriggerEffect(skill); }
public static void Release() { WarningGraghHandler.ClearData(); }
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(); }