Example #1
0
        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);
            }
        }
Example #2
0
        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);
            }
        }
Example #3
0
        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);
        }
Example #4
0
        /// <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);
        }
Example #5
0
        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);
            }
        }