/// <summary>
        /// 引导技能切换目标
        /// </summary>
        private static void DisposeSkillChangeTargetBroadcast(SkillChangeTargetBroadcast 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;
            }

            BroadCastSkill_ChangeTargets bctarges = new BroadCastSkill_ChangeTargets();
            uint skillid = result.SkillId;

            bctarges.skillId   = (int)skillid;
            bctarges.targets   = result.TargetList;
            bctarges.direction = result.TargetPosition;

            Leyoutech.Utility.DebugUtility.LogWarning("广播技能", string.Format("引导技能切换目标 SkillId = {0}", skillid));

            entity.SendEvent(ComponentEventName.BroadCastSkill_ChangeTargets, bctarges);
        }
        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);
                }
            }
        }