Beispiel #1
0
        //-----------------------------------------------------------------------------
        public string evUpdate(IEbEvent ev)
        {
            int before_connected_count = 0;

            for (int i = 0; i < mServerNode.ListPeerBefore.Count; i++)
            {
                PhotonServerPeerC peer = mServerNode.ListPeerBefore[i];
                //peer.Service();

                //if (peer.PeerState == PeerStateValue.Disconnected)
                //{
                //    string s = peer.RemoteServerNodeInfo.ip;
                //    s += ":";
                //    s += peer.RemoteServerNodeInfo.port.ToString();
                //    peer.Connect(s, peer.RemoteServerNodeInfo.app_name);
                //}
                //else if (peer.PeerState == PeerStateValue.Connected)
                //{
                //    before_connected_count++;
                //}
            }

            // 等待后置连接,并统计连接信息
            if (mServerNode.ListPeerBefore.Count == before_connected_count &&
                mServerNode.getServerNode().vec_after.Count == mServerNode.ListPeerAfter.Count)
            {
                return("ServerNodeStateRun");
            }

            return("");
        }
Beispiel #2
0
    //-------------------------------------------------------------------------
    // event: 响应消息
    public string evMainSendMsg(IEbEvent ev)
    {
        EbEvent2 <int, List <object> > evt = ev as EbEvent2 <int, List <object> >;
        int           msg_id    = evt.param1;
        List <object> vec_param = evt.param2;

        bool handled = false;
        List <INodeTrigger> trigger_list = mNode.getTriggerList();

        foreach (var i in trigger_list)
        {
            handled = i.handleMsg(msg_id, vec_param);
            if (handled)
            {
                break;
            }
        }

        // 检查有没有触发器触发
        if (handled)
        {
            mNode.getNodeMgr().IsHandledMsg = true;
        }

        return("");
    }
        //-----------------------------------------------------------------------------
        public string evUpdate(IEbEvent ev)
        {
            EbEvent1<float> e = (EbEvent1<float>)ev;
            float elapsed_tm = e.param1;
            mfCurSecond += elapsed_tm;

            return "";
        }
Beispiel #4
0
        //-----------------------------------------------------------------------------
        public string evOnPeerStatusChanged(IEbEvent ev)
        {
            //TEvent2<int, StatusCode> evt = ev as TEvent2<int, StatusCode>;
            //int servernode_id = evt.param1;
            //StatusCode statusCode = evt.param2;

            return("");
        }
    //-------------------------------------------------------------------------
    // event: 每帧更新
    public string evMainUpdate(IEbEvent ev)
    {
        if (!mNode.getNodeSys().isClient())
        {
            // 更新所有触发器
            EbEvent1<float> evt = ev as EbEvent1<float>;
            float elasped_tm = evt.param1;
            List<INodeTrigger> trigger_list = mNode.getTriggerList();
            foreach (var i in trigger_list)
            {
                i.update(elasped_tm);
            }

            // 检查有没有触发器触发
            bool triggered = false;
            foreach (var i in trigger_list)
            {
                triggered = i.triggered();
                if (triggered) break;
            }
            if (trigger_list.Count == 0) triggered = true;
            foreach (var i in trigger_list)
            {
                i.reset();
            }

            // 检查触发条件是否满足
            bool triggered_condition = false;
            if (triggered)
            {
                triggered_condition = _checkTriggerCondition();
            }

            // 触发器触发了即执行脚本on_trigger函数
            bool trigger_ss = true;
            if (triggered)
            {
                if (mNodeServerScript != null)
                {
                    trigger_ss = mNodeServerScript.canExitStartState(mNode);
                }
            }

            // 触发结果
            bool can_run = false;
            if (triggered && triggered_condition && trigger_ss)
            {
                can_run = true;
            }

            if (can_run)
            {
                return "CNodeStateRun";
            }
        }

        return "";
    }
Beispiel #6
0
        //-----------------------------------------------------------------------------
        public string evUpdate(IEbEvent ev)
        {
            EbEvent1 <float> e          = (EbEvent1 <float>)ev;
            float            elapsed_tm = e.param1;

            mfCurSecond += elapsed_tm;

            return("");
        }
Beispiel #7
0
        //-----------------------------------------------------------------------------
        public string evUpdate(IEbEvent ev)
        {
            for (int i = 0; i < mServerNode.ListPeerBefore.Count; i++)
            {
                PhotonServerPeerC peer = mServerNode.ListPeerBefore[i];
                //peer.Service();
            }

            return("");
        }
Beispiel #8
0
 //---------------------------------------------------------------------
 public string _onEvent(IEbEvent ev)
 {
     if (mMapAction.ContainsKey(ev.name))
     {
         return mMapAction[ev.name].action(ev);
     }
     else
     {
         return "";
     }
 }
        //-----------------------------------------------------------------------------
        public string evSetState(IEbEvent ev)
        {
            EbEvent1<_eLevelState> e = (EbEvent1<_eLevelState>)ev;
            _eLevelState level_state = e.param1;

            if (level_state == _eLevelState.Switch)
            {
                return "CRenderLevelStateSwitch";
            }

            return "";
        }
Beispiel #10
0
        //-----------------------------------------------------------------------------
        public string evSetState(IEbEvent ev)
        {
            EbEvent1 <_eLevelState> e           = (EbEvent1 <_eLevelState>)ev;
            _eLevelState            level_state = e.param1;

            if (level_state == _eLevelState.Switch)
            {
                return("CRenderLevelStateSwitch");
            }

            return("");
        }
        //-----------------------------------------------------------------------------
        public string evUpdate(IEbEvent ev)
        {
            EbEvent1<float> e = (EbEvent1<float>)ev;
            float elapsed_tm = e.param1;
            mfCurSecond += elapsed_tm;

            IRenderListener listener = mScene.getListener();
            if (listener != null)
            {
                listener.onSceneShowMessageBox("鱼潮来临!!!", false, "", 1, (int)0, false, false);//_eMessageBoxLayer.SwitchLevel
            }

            return "";
        }
Beispiel #12
0
        //-----------------------------------------------------------------------------
        public string evUpdate(IEbEvent ev)
        {
            EbEvent1 <float> e          = (EbEvent1 <float>)ev;
            float            elapsed_tm = e.param1;

            mfCurSecond += elapsed_tm;

            IRenderListener listener = mScene.getListener();

            if (listener != null)
            {
                listener.onSceneShowMessageBox("鱼潮来临!!!", false, "", 1, (int)0, false, false);//_eMessageBoxLayer.SwitchLevel
            }

            return("");
        }
        //---------------------------------------------------------------------
        public string evUpdate(IEbEvent ev)
        {
            EbEvent1 <float> e          = (EbEvent1 <float>)ev;
            float            elapsed_tm = e.param1;

            if (mfCurSecond > mfMaxSecond)
            {
                return("CLogicLevelStateNormal");
            }
            else
            {
                mfCurSecond += elapsed_tm;
            }

            return("");
        }
Beispiel #14
0
        //---------------------------------------------------------------------
        public string evUpdate(IEbEvent ev)
        {
            EbEvent1<float> e = (EbEvent1<float>)ev;
            float elapsed_tm = e.param1;

            if (mfCurSecond > mfMaxSecond)
            {
                return "CLogicLevelStateNormal";
            }
            else
            {
                mfCurSecond += elapsed_tm;
            }

            return "";
        }
Beispiel #15
0
    //-------------------------------------------------------------------------
    // event: 每帧更新
    public string evMainUpdate(IEbEvent ev)
    {
        EbEvent1 <float> evt        = ev as EbEvent1 <float>;
        float            elapsed_tm = evt.param1;

        // 执行脚本函数
        if (mNodeServerScript != null)
        {
            mNodeServerScript.onUpdate(mNode, elapsed_tm);
        }
        else if (mNodeClientScript != null)
        {
            mNodeClientScript.onUpdate(mNode, elapsed_tm);
        }

        return("");
    }
Beispiel #16
0
    //-------------------------------------------------------------------------
    // event: 响应消息
    public string evMainSendMsg(IEbEvent ev)
    {
        EbEvent2 <int, List <object> > evt = ev as EbEvent2 <int, List <object> >;
        int           msg_id        = evt.param1;
        List <object> msg_paramlist = evt.param2;

        if (mNodeServerScript != null)
        {
            mNodeServerScript.onServerMsg(mNode, 0, msg_id, 0, msg_paramlist);
        }
        else if (mNodeClientScript != null)
        {
            mNodeClientScript.onClientMsg(msg_id, msg_paramlist);
        }

        return("");
    }
Beispiel #17
0
    //-------------------------------------------------------------------------
    // event: 设置进入停止状态
    public string evSetStopState(IEbEvent ev)
    {
        EbEvent1 <List <_tNodeParamPair> > evt        = ev as EbEvent1 <List <_tNodeParamPair> >;
        List <_tNodeParamPair>             list_param = evt.param1;

        Dictionary <byte, object> map_param = mNode.getMapParam();

        if (list_param != null)
        {
            foreach (var i in list_param)
            {
                map_param[i.k] = i.v;
            }
        }

        return("CNodeStateStop");
    }
        //---------------------------------------------------------------------
        public string evUpdate(IEbEvent ev)
        {
            EbEvent1 <float> e          = (EbEvent1 <float>)ev;
            float            elapsed_tm = e.param1;

            if (mfCurSecond > mfMaxSecond)
            {
                return("CLogicLevelStateSwitch");
            }
            else
            {
                mfCurSecond += elapsed_tm;
            }

            if (mLevel != null)
            {
                mLevel.updateOutFish(elapsed_tm);
            }

            return("");
        }
Beispiel #19
0
        //---------------------------------------------------------------------
        public string evUpdate(IEbEvent ev)
        {
            EbEvent1<float> e = (EbEvent1<float>)ev;
            float elapsed_tm = e.param1;

            if (mfCurSecond > mfMaxSecond)
            {
                return "CLogicLevelStateSwitch";
            }
            else
            {
                mfCurSecond += elapsed_tm;
            }

            if (mLevel != null)
            {
                mLevel.updateOutFish(elapsed_tm);
            }

            return "";
        }
Beispiel #20
0
    //-------------------------------------------------------------------------
    // event: 响应消息
    public string evMainSendMsg(IEbEvent ev)
    {
        EbEvent2 <int, List <object> > evt = ev as EbEvent2 <int, List <object> >;
        int           msg_id    = evt.param1;
        List <object> vec_param = evt.param2;

        List <INodeTrigger> trigger_list = mNode._getTriggerList();

        foreach (var i in trigger_list)
        {
            i.handleMsg(msg_id, vec_param);
        }

        // 检查有没有触发器触发
        foreach (var i in trigger_list)
        {
            if (i.triggered())
            {
                mNode.getNodeMgr().IsHandledMsg = true;
            }
        }

        return("");
    }
Beispiel #21
0
    //-------------------------------------------------------------------------
    public string evSetNextSate(IEbEvent ev)
    {
        // 根据NodeState跳转到对应state
        _eNodeState state = mNode.getNodeState();

        if (state == _eNodeState.Init || state == _eNodeState.Start)
        {
            return "CNodeStateStart";
        }
        else if (state == _eNodeState.Run)
        {
            return "CNodeStateRun";
        }
        else if (state == _eNodeState.Stop)
        {
            return "CNodeStateStop";
        }
        else if (state == _eNodeState.Release)
        {
            return "CNodeStateRelease";
        }

        return "CNodeStateStart";
    }
Beispiel #22
0
    //-------------------------------------------------------------------------
    public string evSetNextSate(IEbEvent ev)
    {
        // 根据NodeState跳转到对应state
        _eNodeState state = mNode.getNodeState();

        if (state == _eNodeState.Init || state == _eNodeState.Start)
        {
            return("CNodeStateStart");
        }
        else if (state == _eNodeState.Run)
        {
            return("CNodeStateRun");
        }
        else if (state == _eNodeState.Stop)
        {
            return("CNodeStateStop");
        }
        else if (state == _eNodeState.Release)
        {
            return("CNodeStateRelease");
        }

        return("CNodeStateStart");
    }
Beispiel #23
0
    //-------------------------------------------------------------------------
    // event: 响应消息
    public string evMainSendMsg(IEbEvent ev)
    {
        EbEvent2<int, List<object>> evt = ev as EbEvent2<int, List<object>>;
        int msg_id = evt.param1;
        List<object> msg_paramlist = evt.param2;

        if (mNodeServerScript != null)
        {
            mNodeServerScript.onServerMsg(mNode, 0, msg_id, 0, msg_paramlist);
        }
        else if (mNodeClientScript != null)
        {
            mNodeClientScript.onClientMsg(msg_id, msg_paramlist);
        }

        return "";
    }
Beispiel #24
0
    //-------------------------------------------------------------------------
    // event: 每帧更新
    public string evMainUpdate(IEbEvent ev)
    {
        EbEvent1<float> evt = ev as EbEvent1<float>;
        float elapsed_tm = evt.param1;

        // 执行脚本函数
        if (mNodeServerScript != null)
        {
            mNodeServerScript.onUpdate(mNode, elapsed_tm);
        }
        else if (mNodeClientScript != null)
        {
            mNodeClientScript.onUpdate(mNode, elapsed_tm);
        }

        return "";
    }
Beispiel #25
0
 //-------------------------------------------------------------------------
 public string evSetNextSate(IEbEvent ev)
 {
     return("CNodeStateRelease");
 }
Beispiel #26
0
 //-------------------------------------------------------------------------
 public string evSetNextSate(IEbEvent ev)
 {
     return "CNodeStateRelease";
 }
Beispiel #27
0
 //-------------------------------------------------------------------------
 // event: 设置进入运行状态
 public string evSetRunState(IEbEvent ev)
 {
     return("CNodeStateRun");
 }
Beispiel #28
0
    //-------------------------------------------------------------------------
    // event: 设置进入停止状态
    public string evSetStopState(IEbEvent ev)
    {
        EbEvent1<List<_tNodeParamPair>> evt = ev as EbEvent1<List<_tNodeParamPair>>;
        List<_tNodeParamPair> list_param = evt.param1;

        Dictionary<byte, object> map_param = mNode.getMapParam();
        if (list_param != null)
        {
            foreach (var i in list_param)
            {
                map_param[i.k] = i.v;
            }
        }

        return "CNodeStateStop";
    }
Beispiel #29
0
 //---------------------------------------------------------------------
 public string action(IEbEvent ev)
 {
     return mHandler(ev);
 }
 //-------------------------------------------------------------------------
 // event: 设置进入运行状态
 public string evSetRunState(IEbEvent ev)
 {
     return "CNodeStateRun";
 }
Beispiel #31
0
 //-----------------------------------------------------------------------------
 public string evUpdate(IEbEvent ev)
 {
     return("");
 }
Beispiel #32
0
 //-----------------------------------------------------------------------------
 public string evClose(IEbEvent ev)
 {
     return("ServerNodeStateStop");
 }
Beispiel #33
0
    //-------------------------------------------------------------------------
    // event: 每帧更新
    public string evMainUpdate(IEbEvent ev)
    {
        if (!mNode.getNodeSys().isClient())
        {
            // 更新所有触发器
            EbEvent1 <float>    evt          = ev as EbEvent1 <float>;
            float               elasped_tm   = evt.param1;
            List <INodeTrigger> trigger_list = mNode.getTriggerList();
            foreach (var i in trigger_list)
            {
                i.update(elasped_tm);
            }

            // 检查有没有触发器触发
            bool triggered = false;
            foreach (var i in trigger_list)
            {
                triggered = i.triggered();
                if (triggered)
                {
                    break;
                }
            }
            if (trigger_list.Count == 0)
            {
                triggered = true;
            }
            foreach (var i in trigger_list)
            {
                i.reset();
            }

            // 检查触发条件是否满足
            bool triggered_condition = false;
            if (triggered)
            {
                triggered_condition = _checkTriggerCondition();
            }

            // 触发器触发了即执行脚本on_trigger函数
            bool trigger_ss = true;
            if (triggered)
            {
                if (mNodeServerScript != null)
                {
                    trigger_ss = mNodeServerScript.canExitStartState(mNode);
                }
            }

            // 触发结果
            bool can_run = false;
            if (triggered && triggered_condition && trigger_ss)
            {
                can_run = true;
            }

            if (can_run)
            {
                return("CNodeStateRun");
            }
        }

        return("");
    }
    //-------------------------------------------------------------------------
    // event: 响应消息
    public string evMainSendMsg(IEbEvent ev)
    {
        EbEvent2<int, List<object>> evt = ev as EbEvent2<int, List<object>>;
        int msg_id = evt.param1;
        List<object> vec_param = evt.param2;

        bool handled = false;
        List<INodeTrigger> trigger_list = mNode.getTriggerList();
        foreach (var i in trigger_list)
        {
            handled = i.handleMsg(msg_id, vec_param);
            if (handled) break;
        }

        // 检查有没有触发器触发
        if (handled)
        {
            mNode.getNodeMgr().IsHandledMsg = true;
        }

        return "";
    }