Esempio n. 1
0
    /// <summary>
    /// 前摇技能流监听相应
    /// </summary>
    /// <param name="entityId"></param>
    /// <param name="skill_id_"></param>
    /// <param name="message"></param>
    public void Run_CastSingSkillResponse(uint entityId, uint skill_id_, CastSingSkillResponse message)
    {
        CastSingSkillResponse.Types.Success success = message.Success;
        if (success != null)
        {
            CastSkillResult result    = success.Success_.Result;
            EmitNode        nodeinfo  = success.Success_.NodeInfo;
            StopSkill       stopskill = success.Success_.StopSkill;

            // 处理是否可以释放的返回结果
            if (result != null)
            {
                DisposeCastSkillResult(result);
            }

            //随机发射点
            if (nodeinfo != null)
            {
                DisposeEmitNodeResult(entityId, nodeinfo);
            }

            // 执行取消技能
            if (stopskill != null)
            {
                DisposeStopResult(stopskill);
            }
        }
    }
Esempio n. 2
0
    /// <summary>
    /// 引导技能流监听响应
    /// </summary>
    /// <param name="message"></param>
    public void Run_CastGuideSkillResponse(uint entityId, CastGuideSkillResponse message)
    {
        CastGuideSkillResponse.Types.Success success = message.Success;
        if (success != null)
        {
            CastSkillResult     result              = success.Success_.Result;
            EmitNode            node_info           = success.Success_.NodeInfo;
            StopSkill           stopskill           = success.Success_.StopSkill;
            GuideSkillEndResult guideSkillEndResult = success.Success_.EndResult;
            ChangeGuideSkillTargetInfoResult changeGuideSkillTargetInfoResult = success.Success_.ChangeResult;

            Leyoutech.Utility.DebugUtility.Log("SkillRPCNet", " 引导技能流监听响应" + this.GetHashCode());


            // 处理是否可以释放的返回结果
            if (result != null)
            {
                DisposeCastSkillResult(result);
            }

            //随机发射点
            if (node_info != null)
            {
                DisposeEmitNodeResult(entityId, node_info);
            }

            // 执行取消技能
            if (stopskill != null)
            {
                DisposeStopResult(stopskill);
            }

            //引导按键抬起,end 阶段
            if (guideSkillEndResult != null)
            {
                DisposeGuideSkillEndResult(guideSkillEndResult);
            }

            //目标改变
            if (changeGuideSkillTargetInfoResult != null)
            {
            }
        }
    }
Esempio n. 3
0
    /// <summary>
    /// 蓄力技能流监听响应
    /// </summary>
    /// <param name="message"></param>
    public void Run_CastAccumulationSkillResponse(uint entityId, CastAccumulationSkillResponse message)
    {
        CastAccumulationSkillResponse.Types.Success success = message.Success;
        if (success != null)
        {
            CastSkillResult            result     = success.Success_.Result;
            AccumulationSkillEndResult end_result = success.Success_.EndResult;
            EmitNode  node_info = success.Success_.NodeInfo;
            StopSkill stopskill = success.Success_.StopSkill;

            Leyoutech.Utility.DebugUtility.Log("SkillRPCNet", " 蓄力技能流监听响应" + this.GetHashCode());


            // 处理是否可以释放的返回结果
            if (result != null)
            {
                DisposeCastSkillResult(result);
            }

            //处理蓄力按键抬起
            if (end_result != null)
            {
                DisposeAccumulationSkillEndResult(entityId, end_result);
            }

            //随机发射点
            if (node_info != null)
            {
                DisposeEmitNodeResult(entityId, node_info);
            }

            // break 阶段
            if (stopskill != null)
            {
                DisposeStopResult(stopskill);
            }
        }
    }
Esempio n. 4
0
    /// <summary>
    /// 处理是否可以释放的返回结果
    /// </summary>
    private static void DisposeCastSkillResult(CastSkillResult result)
    {
        if (result == null)
        {
            Leyoutech.Utility.DebugUtility.LogError("技能释放验证", "服务器下行消息  --- > CastSkillResult 为null ,服务器检查下 ");
            return;
        }

        BaseEntity entity = GameplayManager.Instance.GetEntityManager().GetEntityById <BaseEntity>(result.CasterId);

        if (entity == null)
        {
            return;
        }

        CaseSkillResult caseSkillResult = new CaseSkillResult();

        if (result.Code)
        {
            //验证成功
            uint skillid = result.SkillId;
            caseSkillResult.skillId = (int)skillid;
            caseSkillResult.succeed = true;
            Leyoutech.Utility.DebugUtility.Log("技能释放验证", string.Format("验证成功 SkillId = {0}", skillid));
        }
        else
        {
            //验证失败
            uint skillid = result.SkillId;
            caseSkillResult.skillId = (int)skillid;
            caseSkillResult.succeed = false;

            Leyoutech.Utility.DebugUtility.Log("技能释放验证", string.Format("验证失败 SkillId = {0}", skillid));
        }
        entity.SendEvent(ComponentEventName.CaseSkillResult, caseSkillResult);
    }