//------------------------------------------------------------------------- public override void enter() { EbLog.Note("CNodeStateStart.enter() NodeType=" + mNode.getNodeType() + " NodeId=" + mNode.getNodeId()); mNodeServerScript = mNode._getNodeServerScript(); mNodeClientScript = mNode._getNodeClientScript(); mNode._setNodeState(_eNodeState.Start); // 广播NodeEnterStart消息 if (!mNode.getNodeSys().isClient()) { List <object> list_param = new List <object>(); list_param.Add(mNode.getNodeType()); list_param.Add(mNode.getNodeId()); mNode._getNodeServerListener().nodeSendMsg((int)_eNodeMsg.NodeEnterStart, list_param); } // 执行脚本函数 if (mNodeServerScript != null) { mNodeServerScript.onEnterStartState(mNode); } else if (mNodeClientScript != null) { mNodeClientScript.onEnterStartState(mNode); } }
//------------------------------------------------------------------------- public override void enter() { EbLog.Note("CNodeStateStop.enter() NodeType=" + mNode.getNodeType() + " NodeId=" + mNode.getNodeId()); mNodeServerScript = mNode._getNodeServerScript(); mNodeClientScript = mNode._getNodeClientScript(); mNode._setNodeState(_eNodeState.Stop); // 生成NodeOp if (!mNode.getNodeSys().isClient()) { List <_tNodeParamPair> list_param = new List <_tNodeParamPair>(); { _tNodeParamPair pp; pp.k = (byte)_eNodeParam.AllExit; pp.v = mNode._isSelectAllExits(); list_param.Add(pp); } { _tNodeParamPair pp; pp.k = (byte)_eNodeParam.ExitId; pp.v = mNode.getExitId(); list_param.Add(pp); } mNode.getNodeMgr()._opEnterState(mNode.getNodeId(), mNode.getNodeState(), list_param); } // 执行脚本函数 if (mNodeServerScript != null) { mNodeServerScript.onEnterStopState(mNode); } else if (mNodeClientScript != null) { mNodeClientScript.onEnterStopState(mNode); } // 广播BeforeEffect消息 //mpEntity.sendMessage((int)MsgType.Entity, 2, mpEntity.getNodeId(), null); // 执行EffectXml中定义的效果 _parseEffectXml(); _doEffect(); // 执行脚本函数 if (mNodeServerScript != null) { mNodeServerScript.onDoEffect(mNode, mNode.getExitId()); } else if (mNodeClientScript != null) { mNodeClientScript.onDoEffect(mNode, mNode.getExitId()); } mNode.postEvent("evSetNextState"); }
//------------------------------------------------------------------------- public override void enter() { if (mNode.getNodeMgr().EnableLog) { StringBuilder sb = new StringBuilder(512); sb.Append("EtPlayer et_guid="); sb.Append(mNode.getNodeMgr().EtPlayer.Guid); sb.Append(" NodeType="); sb.Append(mNode.getNodeType()); sb.Append(" NodeId="); sb.Append(mNode.getNodeId()); sb.Append(" Start"); EbLog.Note(sb.ToString()); } mNodeServerScript = mNode._getNodeServerScript(); mNodeClientScript = mNode._getNodeClientScript(); mNode._setNodeState(_eNodeState.Start); // 生成NodeOp if (!mNode.getNodeSys().isClient()) { mNode.getNodeMgr()._opEnterState(mNode.getNodeId(), mNode.getNodeState()); } // 广播NodeEnterStart消息 if (!mNode.getNodeSys().isClient()) { List <object> list_param = new List <object>(); list_param.Add(mNode.getNodeType()); list_param.Add(mNode.getNodeId()); mNode._getNodeServerListener().nodeSendMsg((int)_eNodeMsg.NodeEnterStart, list_param); } // 执行脚本函数 if (mNodeServerScript != null) { mNodeServerScript.onEnterStartState(mNode); } else if (mNodeClientScript != null) { mNodeClientScript.onEnterStartState(mNode); } }
//------------------------------------------------------------------------- public override void enter() { mNodeServerScript = mNode._getNodeServerScript(); mNodeClientScript = mNode._getNodeClientScript(); mNode._setNodeState(_eNodeState.Release); // 销毁cur node int node_id = mNode.getNodeId(); int next_node_id = mNode._getNextNodeId(); CNode parent_node = mNode.getParentNode(); // 生成NodeOp if (!mNode.getNodeSys().isClient()) { mNode.getNodeMgr()._opDestroyNode(node_id); } // 创建NextNode if (!mNode.getNodeSys().isClient()) { bool exit_all = mNode._isSelectAllExits(); if (exit_all) { var groups = mNode.getDefXml().GetGroupArray("Exit"); foreach (int i in groups.Keys) { Property exit_successor_id = groups[i].GetValue("Successor"); if (exit_successor_id != null) { int e_id = int.Parse(exit_successor_id.Value); if (e_id > 0) { mNode.getNodeMgr()._opCreateNode(e_id, _eNodeState.Init, mNode.getNodeId()); } } } } else { if (parent_node != null && next_node_id == parent_node.getNodeId()) { // 不创建NextNode,通知父Node出口 int parent_exit_id = 0; var groups = mNode.getDefXml().GetGroupArray("Exit"); int exit_id = mNode.getExitId(); foreach (int i in groups.Keys) { if (i == exit_id) { Property prop_parent_exit_id = groups[i].GetValue("ParentExit"); parent_exit_id = int.Parse(prop_parent_exit_id.Value); break; } } //EbLog.Note("parent_exit_id=" + parent_exit_id); parent_node._notifyExit(parent_exit_id); } else if (next_node_id > 0) { mNode.getNodeMgr()._opCreateNode(next_node_id, _eNodeState.Init, mNode.getNodeId()); } else { EbLog.Note("Not Create Next Node. next_node_id=" + next_node_id); } } if (parent_node != null) { parent_node._removeChildNode(mNode.getNodeId()); } } }
//------------------------------------------------------------------------- public override void enter() { if (mNode.getNodeMgr().EnableLog) { StringBuilder sb = new StringBuilder(512); sb.Append("EtPlayer et_guid="); sb.Append(mNode.getNodeMgr().EtPlayer.Guid); sb.Append(" NodeType="); sb.Append(mNode.getNodeType()); sb.Append(" NodeId="); sb.Append(mNode.getNodeId()); sb.Append(" Stop"); EbLog.Note(sb.ToString()); } mNodeServerScript = mNode._getNodeServerScript(); mNodeClientScript = mNode._getNodeClientScript(); mNode._setNodeState(_eNodeState.Stop); // 生成NodeOp if (!mNode.getNodeSys().isClient()) { List <_tNodeParamPair> list_param = new List <_tNodeParamPair>(); { _tNodeParamPair pp; pp.k = (byte)_eNodeParam.AllExit; pp.v = mNode._isSelectAllExits(); list_param.Add(pp); } { _tNodeParamPair pp; pp.k = (byte)_eNodeParam.ExitId; pp.v = mNode.getExitId(); list_param.Add(pp); } mNode.getNodeMgr()._opEnterState(mNode.getNodeId(), mNode.getNodeState(), list_param); } // 执行脚本函数 if (mNodeServerScript != null) { mNodeServerScript.onEnterStopState(mNode); } else if (mNodeClientScript != null) { mNodeClientScript.onEnterStopState(mNode); } // 广播BeforeEffect消息 //mpEntity.sendMessage((int)MsgType.Entity, 2, mpEntity.getNodeId(), null); // 执行EffectXml中定义的效果 _parseEffectXml(); _doEffect(); // 执行脚本函数 if (mNodeServerScript != null) { mNodeServerScript.onDoEffect(mNode, mNode.getExitId()); } else if (mNodeClientScript != null) { mNodeClientScript.onDoEffect(mNode, mNode.getExitId()); } mNode.postEvent("evSetNextState"); }
//------------------------------------------------------------------------- public override void enter() { if (mNode.getNodeMgr().EnableLog) { StringBuilder sb = new StringBuilder(512); sb.Append("EtPlayer et_guid="); sb.Append(mNode.getNodeMgr().EtPlayer.Guid); sb.Append(" NodeType="); sb.Append(mNode.getNodeType()); sb.Append(" NodeId="); sb.Append(mNode.getNodeId()); sb.Append(" Run"); EbLog.Note(sb.ToString()); } mNodeServerScript = mNode._getNodeServerScript(); mNodeClientScript = mNode._getNodeClientScript(); mNode._setNodeState(_eNodeState.Run); // 生成NodeOp if (!mNode.getNodeSys().isClient()) { mNode.getNodeMgr()._opEnterState(mNode.getNodeId(), mNode.getNodeState()); } // 决策是否需要创建子Node { CNodeMgr node_mgr = mNode.getNodeMgr(); int node_id = mNode.getNodeId(); EventDef node_def = mNode.getDefXml(); if (mNode.hasChildNodeDef() && mNode._getChildNodeCount() == 0) { bool ok = false; var group = node_def.GetGroup("LinkedToChild"); if (group != null) { ok = true; Property p_entity_def_uid = group.GetValue("UID"); int this_child_entity_id = int.Parse(p_entity_def_uid.Value); if (this_child_entity_id != 0) { node_mgr._opCreateNode(this_child_entity_id, _eNodeState.Init, node_id); } } if (!ok) { var groups = node_def.GetGroupArray("LinkedToChild"); if (groups != null) { foreach (int i in groups.Keys) { Property p_entity_def_uid = groups[i].GetValue("UID"); int this_child_entity_id = int.Parse(p_entity_def_uid.Value); if (this_child_entity_id != 0) { node_mgr._opCreateNode(this_child_entity_id, _eNodeState.Init, node_id); } } } } } } // 广播NodeRun消息 if (!mNode.getNodeSys().isClient()) { List <object> list_param = new List <object>(); list_param.Add(mNode.getNodeType()); list_param.Add(mNode.getNodeId()); mNode._getNodeServerListener().nodeSendMsg((int)_eNodeMsg.NodeEnterRun, list_param); } // 执行脚本函数 if (mNodeServerScript != null) { mNodeServerScript.onEnterRunState(mNode); } else if (mNodeClientScript != null) { mNodeClientScript.onEnterRunState(mNode); } }