public void OnCastSpell() { if (IsMoving) { return; } if (null == mAttackTarget || !mAttackTarget.CanBeAttacked()) { ChangeState(ePlayerState.Idle); return; } //if (Spell(mCurrentSpellID, mAttackTarget) == eSkillResult.OK) eSkillResult ret = eSkillResult.OK; if (CastSpell(mCurrentSpellID, mAttackTarget.Id, ref ret)) { mCurrSpellNode++; ChangeState(ePlayerState.WaitCoolDown); } else { ChangeState(ePlayerState.Idle); } }
public override void OnCastSpell() { if (!mIsCanAttack) { return; } if (IsMoving) { return; } RoleActor target = GetTarget(mAttackTarget); if (null == target || !target.CanBeAttacked()) { ChangeState(eNPCState.Idle); return; } //if (Spell(mCurrentSpellID, target) == eSkillResult.OK) eSkillResult ret = eSkillResult.OK; if (CastSpell(mCurrentSpellID, mAttackTarget, ref ret)) { mCurrSpellNode++; ChangeState(eNPCState.WaitCoolDown); } }
public void RPC_CastSpell(ulong targetId, int skillId, RPC.RPCForwardInfo fwd) { eSkillResult ret = eSkillResult.CastFailed; this.CastSpell(skillId, targetId, ref ret); RPC.PackageWriter retPkg = new RPC.PackageWriter(); retPkg.Write((sbyte)ret); retPkg.Write(skillId); retPkg.Write(targetId); retPkg.DoReturnPlanes2Client(fwd); }
/// <summary> /// 使用技能 /// </summary> public bool CastSpell(int skillId, ulong targetId, ref eSkillResult result) { ASkillObject skbase = mSkillMgr.GetSkill(skillId); if (null == skbase) { return(false); } var skill = skbase as SkillActive; if (null == skill) { return(false); } bool isCastSuccess = CastSpell(skill, targetId); result = skill.mResult; return(isCastSuccess); }
public virtual void OnCastSpell() { if (!mIsCanAttack) { return; } if (IsMoving) { return; } //RoleActor target = GetTarget(mAttackTarget); //Spell(mCurrentSpellID, target); eSkillResult ret = eSkillResult.OK; if (CastSpell(mCurrentSpellID, mAttackTarget, ref ret)) { mSpellCD = mNowTime + (long)NPCData.Template.interval * 1000; ChangeState(eNPCState.WaitCoolDown); } }