/// <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); } } }
/// <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) { } } }
/// <summary> /// 执行取消技能 /// </summary> /// <param name="result"></param> private void DisposeStopResult(StopSkill result) { if (result == null) { Leyoutech.Utility.DebugUtility.LogError("技能停止", "服务器下行消息 --- >StopSkill 为null ,服务器检查下 "); return; } BaseEntity entity = GameplayManager.Instance.GetEntityManager().GetEntityById <BaseEntity>(result.CasterId); if (entity == null) { return; } //结束技能 StopSkillResult endResult = new StopSkillResult(); uint skillid = result.SkillId; endResult.skillId = (int)skillid; entity.SendEvent(ComponentEventName.ToStopSkill, endResult); }
/// <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); } } }
/// <summary> /// 处理技能break /// </summary> private static void DisposeStopSkill(StopSkill result) { BaseEntity entity = GameplayManager.Instance.GetEntityManager().GetEntityById <BaseEntity>(result.CasterId); if (entity == null) { return; } if (entity.GetCurrSkillId() < 0 || entity.GetCurrSkillId() != (int)result.SkillId) //小于0 则不再释放中 { return; } Leyoutech.Utility.DebugUtility.LogWarning("广播技能", string.Format("处理技能break, SkillId = {0}", result.SkillId)); //结束技能 StopSkillResult endResult = new StopSkillResult(); uint skillid = result.SkillId; endResult.skillId = (int)skillid; entity.SendEvent(ComponentEventName.ToStopSkill, endResult); }
private static void Run(GameSession.BroadSkillInfoResponse message) { GameSession.BroadSkillInfoResponse.Types.Success success = message.Success; if (success != null) { SkillSelectTargetInfoBroadcast target_info = success.Success_.TargetInfo; //吟唱和引导技能开始 SkillEmitNodeBroadcast node_info = success.Success_.NodeInfo; //随机挂点同步 StopSkill stop_skill = success.Success_.StopSkill; //技能break GuideSkillEnd guide_end = success.Success_.GuideEnd; //引导技能正常结束 SkillChangeTargetBroadcast change_result = success.Success_.ChangeResult; //引导技能切换目标 AccumulationSkillEndBroadcast accumalation_end = success.Success_.AccumalationEnd; //蓄力技能蓄力结束(抬起按键) AccumulationSkillBegin accumulation_skill_begin = success.Success_.AccumulationSkillBegin; //蓄力技能蓄力开始(按下按键) AddBuf add_buf = success.Success_.AddBuf; //添加buf DeleteBuf delete_buf = success.Success_.DeleteBuf; //删除buf SyncClipInfo clip_info = success.Success_.ClipInfo; // 弹夹信息 // 处理吟唱和引导技能开始 if (target_info != null) { DisposeSkillSelectTargetInfoBroadcast(target_info); } // 随机挂点同步 if (node_info != null) { DisposeSkillEmitNodeBroadcast(node_info); } // 技能break if (stop_skill != null) { DisposeStopSkill(stop_skill); } // 引导技能正常结束 if (guide_end != null) { DisposeGuideSkillEnd(guide_end); } // 引导技能切换目标 if (change_result != null) { DisposeSkillChangeTargetBroadcast(change_result); } // 蓄力技能蓄力结束(抬起按键) if (accumalation_end != null) { DisposeAccumulationSkillEndBroadcast(accumalation_end); } // 蓄力技能蓄力开始(按下按键) if (accumulation_skill_begin != null) { DisposeAccumulationSkillBegin(accumulation_skill_begin); } //添加buf if (add_buf != null) { DisposeAddBuf(add_buf); } //删除buf if (delete_buf != null) { DisposeDeleteBuf(delete_buf); } //弹夹信息 if (clip_info != null) { DisposeSyncClipInfo(clip_info); } } }