public static void SendUseSkill(long casterID, long targetID, int skillID) { BattleAction_UseSkill battleAction_UseSkill = new BattleAction_UseSkill(); battleAction_UseSkill.casterId = casterID; battleAction_UseSkill.targetId = targetID; battleAction_UseSkill.skillId = skillID; EventDispatcher.BroadcastAsync <BattleAction_UseSkill, bool>(BattleActionEvent.UseSkill, battleAction_UseSkill, false); }
public void UseSkill(BattleAction_UseSkill data, bool isServerData) { if (this.owner.Actor == null) { return; } if (data.casterId != this.owner.ID) { return; } Debug.Log(string.Concat(new object[] { "下发 ServerCastSkillByID: ", data.skillId, " ", data.needManage, " ", data.mgrSn, " (", data.casterVector.x, ", ", data.casterVector.y, ")" })); Skill skill = DataReader <Skill> .Get(data.skillId); if (skill == null) { return; } if (skill.type3 == 1) { this.owner.AITargetID = data.targetId; this.owner.AITarget = ((!EntityWorld.Instance.AllEntities.ContainsKey(data.targetId)) ? null : EntityWorld.Instance.AllEntities[data.targetId]); } this.owner.CheckCancelManage(data.targetId, data.oldManageState, false); if (data.needManage && data.isManaged) { this.owner.IsSkillInTrustee = true; } if (isServerData) { this.owner.GetSkillManager().ServerCastSkillByID(data.skillId, data.curAniPri, new Vector3(data.casterVector.x, 0f, data.casterVector.y), data.needManage, data.mgrSn); } else { this.owner.GetSkillManager().ClientCastSkillByID(data.skillId); } }