Example #1
0
        public void record(uint session, SprotoTypeBase responseObj, object ud)
        {
            PlayService service = _ctx.QueryService <PlayService>(PlayService.Name);

            UnityEngine.Debug.Assert(service != null);
            service.OnRspRecord(responseObj);
        }
Example #2
0
 public SprotoTypeBase handshake(uint session, SprotoTypeBase requestObj)
 {
     UnityEngine.Debug.LogFormat("request hanshake.");
     S2cSprotoType.handshake.response responseObj = new S2cSprotoType.handshake.response();
     responseObj.errorcode = Errorcode.SUCCESS;
     return(responseObj);
 }
Example #3
0
        public SprotoTypeBase OnBorn(SprotoTypeBase requestObj)
        {
            //S2cSprotoType.born.request obj = requestObj as S2cSprotoType.born.request;
            //if (obj != null) {
            //    foreach (var b in obj.bs) {
            //        uint session = (uint)b.session;
            //        long ballid = b.ballid;
            //        float radis = b.radis;
            //        float length = b.length;
            //        float width = b.width;
            //        float height = b.height;
            //        float pos_x = (float)BitConverter.Int64BitsToDouble(b.px);
            //        float pos_y = (float)BitConverter.Int64BitsToDouble(b.py);
            //        float pos_z = (float)BitConverter.Int64BitsToDouble(b.pz);
            //        Vector3 pos = new Vector3(pos_x, pos_y, pos_z);
            //        float dir_x = (float)BitConverter.Int64BitsToDouble(b.dx);
            //        float dir_y = (float)BitConverter.Int64BitsToDouble(b.dy);
            //        float dir_z = (float)BitConverter.Int64BitsToDouble(b.dz);
            //        Vector3 dir = new Vector3(dir_x, dir_y, dir_z);
            //        float vel = (float)BitConverter.Int64BitsToDouble(b.vel);
            //        var ball = SetupBall(ballid, session, radis, length, width, height, pos, dir, vel);
            //        var player = _playes[session];
            //        player.Add(ball);
            //    }

            //    S2cSprotoType.born.response responseObj = new S2cSprotoType.born.response();
            //    responseObj.errorcode = Errorcode.SUCCESS;
            //    return responseObj;
            //} else {
            //    throw new System.Exception("request obj is null");
            //}
            return(null);
        }
Example #4
0
        // 进入房间这个协议, authudp
        public void join(uint session, SprotoTypeBase responseObj)
        {
            C2sSprotoType.join.response o = responseObj as C2sSprotoType.join.response;
            GameService service           = (GameService)_ctx.QueryService(GameService.Name);

            service.Join(responseObj);
        }
Example #5
0
        public void SendMessage <T>(SprotoTypeBase rpcReq, RpcRspHandler rpcRspHandler = null)
        {
            session += 1;
            if (session >= maxSession)
            {
                session = 0;
            }
            if (rpcRspHandler != null)
            {
                AddHandler(session, rpcRspHandler);
            }
            byte[]       message = rpcReq.encode();
            MemoryStream ms      = null;

            using (ms = new MemoryStream())
            {
                ms.Position = 0;
                BinaryWriter writer = new BinaryWriter(ms);
                UInt16       msglen = Util.SwapUInt16((UInt16)(message.Length + 8));
                writer.Write(msglen);
                int tag = protocol[typeof(T)];
                sessionDict.Add((long)session, protocol[tag].Response.Value);
                tag = Util.SwapInt32(tag);
                writer.Write(tag);
                writer.Write(message);
                int swap_session = Util.SwapInt32(session);
                writer.Write(swap_session);
                writer.Flush();
                byte[] payload = ms.ToArray();
                NetworkManager.GetInstance().SendBytesWithoutSize(payload);
            }
        }
Example #6
0
 public void Born(SprotoTypeBase responseObj)
 {
     //C2sSprotoType.born.response obj = responseObj as C2sSprotoType.born.response;
     //if (obj != null && obj.errorcode == Errorcode.SUCCESS) {
     //    var item = obj.b;
     //    uint session = (uint)item.session;
     //    long ballid = item.ballid;
     //    float radis = item.radis;
     //    float length = item.length;
     //    float width = item.width;
     //    float height = item.height;
     //    float pos_x = (float)BitConverter.Int64BitsToDouble(item.px);
     //    float pos_y = (float)BitConverter.Int64BitsToDouble(item.py);
     //    float pos_z = (float)BitConverter.Int64BitsToDouble(item.pz);
     //    Vector3 pos = new Vector3(pos_x, pos_y, pos_z);
     //    float dir_x = (float)BitConverter.Int64BitsToDouble(item.dx);
     //    float dir_y = (float)BitConverter.Int64BitsToDouble(item.dy);
     //    float dir_z = (float)BitConverter.Int64BitsToDouble(item.dz);
     //    Vector3 dir = new Vector3(dir_x, dir_y, dir_z);
     //    float vel = (float)BitConverter.Int64BitsToDouble(item.vel);
     //    var ball = SetupBall(ballid, session, radis, length, width, height, pos, dir, vel);
     //    var player = _playes[session];
     //    player.Add(ball);
     //    if (session == _mysession) {
     //        _view.MoveTo(new Vector2(pos_x, pos_z));
     //    }
     //}
 }
Example #7
0
        public SprotoTypeBase OnTakeTurn(SprotoTypeBase requestObj)
        {
            S2cSprotoType.take_turn.request obj = requestObj as S2cSprotoType.take_turn.request;
            try {
                _service.Foreach((Player player) => {
                    player.ClearCall();
                });

                _curidx = obj.your_turn;
                _ctx.Countdown(Timer.CLOCK, (int)obj.countdown, OnUpdateClock, null);
                _service.GetPlayer(obj.your_turn).TakeTurn(obj.type, obj.card, obj.countdown);

                // flame
                _service.Foreach((Player player) => {
                    if (player.Idx == obj.your_turn)
                    {
                        player.PlayFlameCountdown();
                    }
                    else
                    {
                        player.StopFlame();
                    }
                });

                S2cSprotoType.take_turn.response responseObj = new S2cSprotoType.take_turn.response();
                responseObj.errorcode = Errorcode.SUCCESS;
                return(responseObj);
            } catch (KeyNotFoundException ex) {
                UnityEngine.Debug.LogException(ex);
                S2cSprotoType.take_turn.response responseObj = new S2cSprotoType.take_turn.response();
                responseObj.errorcode = Errorcode.FAIL;
                return(responseObj);
            }
        }
Example #8
0
        public void SendReq <T>(int tag, SprotoTypeBase obj, long session, object ud)
        {
            //UnityEngine.Debug.Assert(_tcpflag == true);
            if (_tcpflag)
            {
                if (session == 0)
                {
                    byte[] d = _sendRequest.Invoke <T>(obj, null);
                    UnityEngine.Debug.Assert(d != null);
                    _tcp.Send(d, 0, d.Length);
                }
                else
                {
                    byte[] d = _sendRequest.Invoke <T>(obj, session);
                    UnityEngine.Debug.Assert(d != null);

                    RspPg pg = new RspPg();
                    pg.Tag     = tag;
                    pg.Session = session;
                    pg.Index   = _index;
                    pg.Version = _version;
                    pg.Ud      = ud;

                    string key = idToHex(session);
                    _rspPg[key] = pg;
                    _tcp.Send(d, 0, d.Length);
                }
            }
        }
Example #9
0
        public void create(uint session, SprotoTypeBase responseObj, object ud)
        {
            GameService service = _ctx.QueryService <GameService>(GameService.Name);

            UnityEngine.Debug.Assert(service != null);
            service.OnRspCreate(responseObj);
        }
Example #10
0
        public SprotoTypeBase OnDeal(SprotoTypeBase requestObj)
        {
            S2cSprotoType.deal.request obj = requestObj as S2cSprotoType.deal.request;
            try {
                _oknum     = 0;
                _fistidx   = obj.firstidx;
                _fisttake  = obj.firsttake;
                _curidx    = _fistidx;
                _curtake   = _fisttake;
                _takeround = 1;
                _take1time = 1;

                _service.GetPlayer(1).CS = obj.p1;
                _service.GetPlayer(2).CS = obj.p2;
                _service.GetPlayer(3).CS = obj.p3;
                _service.GetPlayer(4).CS = obj.p4;

                _service.GetPlayer(_curidx).Deal();

                S2cSprotoType.deal.response responseObj = new S2cSprotoType.deal.response();
                responseObj.errorcode = Errorcode.SUCCESS;
                return(responseObj);
            } catch (Exception ex) {
                UnityEngine.Debug.LogException(ex);
                S2cSprotoType.deal.response responseObj = new S2cSprotoType.deal.response();
                responseObj.errorcode = Errorcode.SUCCESS;
                return(responseObj);
            }
        }
Example #11
0
        public void OnReceiveMsgFromNet(byte[] bytes)
        {
            // Debug.Log("NetMsgHandler:OnReceiveMsgFromNet : "+bytes.Length.ToString());
            int content_size = bytes.Length - 5;

            if (content_size <= 0)
            {
                return;
            }
            char flag        = BitConverter.ToChar(bytes, content_size);
            int  cur_session = BitConverter.ToInt32(bytes, content_size + 1);

            cur_session = Util.SwapInt32(cur_session);
            // Debug.Log("NetMsgHandler:OnReceiveMsgFromNet flag:"+flag.ToString()+" session:"+cur_session.ToString());

            RpcRspHandler rpcRspHandler = NetMsgDispatcher.GetHandler(cur_session);

            if (rpcRspHandler != null)
            {
                SprotoTypeBase receive_info = null;
                ProtocolFunctionDictionary.typeFunc GenResponse;
                sessionDict.TryGetValue(cur_session, out GenResponse);
                // if (flag == 1)
                // {
                receive_info = GenResponse(bytes, 0, content_size);
                // }
                // else
                // {
                //     receive_info = GenResponse(null, 0, 0);
                // }
                rpcRspHandler(receive_info);
            }
        }
Example #12
0
        public SprotoTypeBase leave(uint session, SprotoTypeBase requestObj)
        {
            GameService service = _ctx.QueryService <GameService>(GameService.Name);

            UnityEngine.Debug.Assert(service != null);
            return(service.OnReqLeave(requestObj));
        }
Example #13
0
 public void OnRspRecord(SprotoTypeBase responseObj)
 {
     C2sSprotoType.record.response obj = responseObj as C2sSprotoType.record.response;
     _r               = obj.r;
     _controller      = (GameController)_ctx.Push(typeof(GameController));
     _controller.Type = GameType.PLAY;
 }
Example #14
0
    private void OnChatEvent(SprotoTypeBase evt)
    {
        SprotoType.chat_msg.request res = evt as SprotoType.chat_msg.request;
        Text item = GameObject.Instantiate(Item, Item.transform.parent, false);

        item.text = res.msg;
        item.gameObject.SetActive(true);
    }
Example #15
0
        public void OnRspHandshake(SprotoTypeBase responseObj)
        {
            C2sSprotoType.handshake.response o = responseObj as C2sSprotoType.handshake.response;

            long lag = _ts.GetTimeMs() - _last; // ms

            UnityEngine.Debug.LogFormat("handshake code {0}, tts: {1} ms", o.errorcode, lag);
        }
Example #16
0
 public void OnRspLeave(SprotoTypeBase responseObj)
 {
     C2sSprotoType.leave.response obj = responseObj as C2sSprotoType.leave.response;
     if (obj.errorcode == Errorcode.SUCCESS)
     {
         _ctx.Pop();
     }
 }
Example #17
0
        public void FetchRecords(SprotoTypeBase responseObj)
        {
            AppContext ctx    = _ctx as AppContext;
            EntityMgr  mgr    = ctx.GetEntityMgr();
            Entity     entity = mgr.MyEntity;

            entity.GetComponent <UComRecordMgr>().FetchRecords(responseObj);
        }
Example #18
0
        public SprotoTypeBase OnReqRadio(SprotoTypeBase requestObj)
        {
            S2cSprotoType.radio.request obj = requestObj as S2cSprotoType.radio.request;


            S2cSprotoType.radio.response responseObj = new S2cSprotoType.radio.response();
            responseObj.errorcode = Errorcode.SUCCESS;
            return(responseObj);
        }
Example #19
0
        public void match(uint session, SprotoTypeBase responseObj, object ud)
        {
            MainController controller = _ctx.Peek <MainController>();

            if (controller != null)
            {
                controller.OnRspMatch(responseObj);
            }
        }
Example #20
0
        public void leave(uint session, SprotoTypeBase responseObj, object ud)
        {
            GameService service = _ctx.QueryService <GameService>(GameService.Name);

            if (service != null)
            {
                service.OnRspLeave(responseObj);
            }
        }
Example #21
0
    public void Send(int msgno, SprotoTypeBase obj, eMessageRequestType messageType)
    {
        MemoryStream stream   = new MemoryStream(ConnectionManager.Instance.serialize(obj, messageType));
        Protocol     protocol = new Protocol();

        protocol.msgno  = msgno;
        protocol.stream = stream;
        mSendBuffer.PushBack(protocol);
    }
Example #22
0
        public void handshake(uint session, SprotoTypeBase responseObj, object ud)
        {
            InitService service = _ctx.QueryService <InitService>(InitService.Name);

            if (service != null)
            {
                service.OnRspHandshake(responseObj);
            }
        }
Example #23
0
        public void handshake(uint session, SprotoTypeBase responseObj)
        {
            InitService service = (InitService)_ctx.QueryService("init");

            if (service != null)
            {
                service.Handshake(responseObj);
            }
        }
Example #24
0
 public void OnAckFightEvents(SprotoTypeBase result)
 {
     SprotoType.scene_listen_fight_event.request req = new SprotoType.scene_listen_fight_event.request();
     NetMsgDispatcher.GetInstance().SendMessage <Protocol.scene_listen_fight_event>(req, OnAckSceneObjInfoChange);
     SprotoType.scene_listen_fight_event.response ack = result as SprotoType.scene_listen_fight_event.response;
     if (ack == null)
     {
         return;
     }
 }
Example #25
0
        public SprotoTypeBase OnReqLeave(SprotoTypeBase requestObj)
        {
            //S2cSprotoType.leave.request obj = requestObj as S2cSprotoType.leave.request;
            _joined--;
            _online--;

            S2cSprotoType.leave.response responseObj = new S2cSprotoType.leave.response();
            responseObj.errorcode = Errorcode.SUCCESS;
            return(responseObj);
        }
Example #26
0
 private void OnPushChat(SprotoTypeBase evt)
 {
     SprotoType.chat_msgs.request res = evt as SprotoType.chat_msgs.request;
     foreach (string each in res.msgs)
     {
         Text item = GameObject.Instantiate(Item, Item.transform.parent, false);
         item.text = each;
         item.gameObject.SetActive(true);
     }
 }
Example #27
0
        public SprotoTypeBase OnReqAuthed(SprotoTypeBase requestObj)
        {
            S2cSprotoType.authed.request obj = requestObj as S2cSprotoType.authed.request;

            _online++;

            S2cSprotoType.authed.response responseObj = new S2cSprotoType.authed.response();
            responseObj.errorcode = Errorcode.SUCCESS;
            return(responseObj);
        }
Example #28
0
    private void Update()
    {
        Protocol protocol = NetworkManager.Instance.GetRecvMessage();

        if (protocol != null)
        {
            SprotoTypeBase sproto = ConnectionManager.Instance.deserialize(protocol.stream.ToArray(), Convert.ToInt32(protocol.stream.Length));
            Debug.Log("Receievd: " + sproto.GetType());
        }
    }
Example #29
0
        public void ListenMessage <T>(SprotoTypeBase rpcReq, RpcRspHandler rpcRspHandler = null)
        {
            RpcRspHandler on_ack = null;

            on_ack = (SprotoTypeBase result) => {
                rpcRspHandler(result);
                this.SendMessage <T>(rpcReq, on_ack);
            };
            this.SendMessage <T>(rpcReq, on_ack);
        }
Example #30
0
        public void FetchSysmail(SprotoTypeBase responseObj)
        {
            EntityMgr mgr = ((AppContext)_ctx).GetEntityMgr();

            mgr.MyEntity.GetComponent <UComSysInbox>().FetchSysmail(responseObj);
            C2sSprotoType.fetchsysmail.response obj = responseObj as C2sSprotoType.fetchsysmail.response;
            if (_service == null)
            {
                _service = _ctx.QueryService <InitService>(InitService.Name);
            }
        }