/// <summary>
        /// 随机发射点索引结果
        /// </summary>
        /// <param name="obj"></param>
        public void OnRandomEmitNodeResult(IComponentEvent obj)
        {
            RandomEmitNodeResult result = obj as RandomEmitNodeResult;

            if (result == null)
            {
                return;
            }

            EmitSelectionData emitSelectionData = m_Context.GetObject <SkillRunningData>().EmitSelectoin;//发射口选择数据

            EmitData[] emitDatas = new EmitData[result.emitNode.IndexList.Count];
            for (int i = 0; i < result.emitNode.IndexList.Count; ++i)
            {
                emitDatas[i] = new EmitData()
                {
                    NodeType  = (BindNodeType)result.emitNode.NodeType,
                    NodeIndex = result.emitNode.IndexList[i],
                };
            }
            emitSelectionData.AddOrUpdateEmit(result.emitNode.AssignIndex, emitDatas);

            //恢复时间轴
            DoResumeSkill();
        }
        /// <summary>
        /// 处理随机挂点同步
        /// </summary>
        private static void DisposeSkillEmitNodeBroadcast(SkillEmitNodeBroadcast 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("收到随机发射点entity = {0},  SkillId = {1},发射点类型 = {2},index = {3} , assign_index  = {4}",
                                                                             entity.UId(),
                                                                             (int)result.SkillId,
                                                                             result.NodeInfo.NodeType,
                                                                             string.Join(",", result.NodeInfo.IndexList),
                                                                             result.NodeInfo.AssignIndex));

            RandomEmitNodeResult nodeResult = new RandomEmitNodeResult();

            nodeResult.emitNode = result.NodeInfo;
            entity.SendEvent(ComponentEventName.RandomEmitNode, nodeResult);
        }
Beispiel #3
0
    /// <summary>
    /// 处理随机发射点
    /// </summary>
    private void DisposeEmitNodeResult(uint entityId, EmitNode node_info)
    {
        if (node_info == null)
        {
            Leyoutech.Utility.DebugUtility.LogError("随机发射点", "服务器下行消息  --- >EmitNode 为null ,服务器检查下 ");
            return;
        }

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

        if (entity == null)
        {
            return;
        }

        Leyoutech.Utility.DebugUtility.LogWarning("随机发射点", string.Format("收到随机发射点entity = {0}, 发射点类型 = {1},indexs = {2} , assign_index  = {3}",
                                                                         entityId,
                                                                         (int)node_info.NodeType,
                                                                         string.Join(",", node_info.IndexList),
                                                                         (int)node_info.AssignIndex));

        RandomEmitNodeResult nodeResult = new RandomEmitNodeResult();

        nodeResult.emitNode = node_info;
        entity.SendEvent(ComponentEventName.RandomEmitNode, nodeResult);
    }