/// <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); }
/// <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); }