コード例 #1
0
ファイル: SkillProcesser.cs プロジェクト: BoyDu/GameFramework
    public static void ProcessSkill(ReqCastSkill msg)
    {
        Entity caster = EntityManager.Instance.Find(msg.caster);

        if (caster == null)
        {
            Log.Error("找不到技能释放者!  id = " + msg.caster);
            return;
        }
        CSVSkill skillInfo = CSVManager.GetSkillCfg(msg.skillID);

        if (skillInfo == null)
        {
            Log.Error("找不到技能配置 skillid = " + msg.skillID);
            return;
        }

        List <Entity> targets = GetTargets(msg, skillInfo);

        if (targets == null)
        {
            return;
        }

        List <SkillResult> result = null;

        for (int i = 0; i < targets.Count; i++)
        {
            SkillResult sr = new SkillResult();
            sr.target = msg.target;
            if (skillInfo.type == 1) //普攻
            {
                sr.damage = caster.Property.PhysicDamage - targets[i].Property.PhysicDefence;
            }
            else if (skillInfo.type == 2)        //物理技能攻击
            {
            }
            else if (skillInfo.type == 3)    //法术技能攻击
            {
            }
            result.Add(sr);
        }
        OnCastSkill rsp = new OnCastSkill();

        rsp.result = result;
        caster.OnEvent(eEntityEvent.OnSkillResult, rsp);
    }
コード例 #2
0
ファイル: SkillProcesser.cs プロジェクト: BoyDu/GameFramework
    //得到这个技能作用的目标
    private static List <Entity> GetTargets(ReqCastSkill msg, CSVSkill skillInfo)
    {
        List <Entity> targets = null;

        if (skillInfo.type == 1)     //普攻
        {
            Entity target = EntityManager.Instance.Find(msg.target);
            if (targets == null)
            {
                Log.Error("找不到普通攻击的目标  target = " + msg.target);
                return(null);
            }
            targets = new List <Entity>();
            targets.Add(target);
        }
        else       //技能
        {
        }
        return(targets);
    }