コード例 #1
0
ファイル: Program.cs プロジェクト: tuita520/Frame
        private void OnMessage(Session client, MessageBuffer msg)
        {
            MessageID messageId = (MessageID)msg.id();

            switch (messageId)
            {
            case MessageID.GM_ACCEPT_CS:
            {
                GM_Accept recvData = ProtoTransfer.DeserializeProtoBuf <GM_Accept>(msg);
                if (recvData.conv == client.id)
                {
                    OnConnect(client);
                }
            }
            break;

            case MessageID.GM_READY_CS:
            {
                GM_Ready recvData = ProtoTransfer.DeserializeProtoBuf <GM_Ready>(msg);
                OnReceiveReady(client, recvData);
            }
            break;

            case MessageID.GM_FRAME_CS:
            {
                GM_Frame recvData = ProtoTransfer.DeserializeProtoBuf <GM_Frame>(msg);
                if (mMode == Mode.LockStep)
                {
                    OnLockStepFrame(client, recvData);
                }
                else
                {
                    OnOptimisticFrame(client, recvData);
                }
            }
            break;

            case MessageID.GM_PING_CS:
            {
                GM_Request recvData = ProtoTransfer.DeserializeProtoBuf <GM_Request>(msg);
                User       u        = GetUser(recvData.id);
                if (u != null)
                {
                    GM_Return sendData = new GM_Return();
                    sendData.id = recvData.id;
                    u.SendUdp(MessageID.GM_PING_SC, sendData);
                }
            }
            break;
            }
        }
コード例 #2
0
    public static void ProtobufString(SLua.ByteArray data)
    {
        System.IO.MemoryStream ms = new System.IO.MemoryStream(data.GetData(), 0, data.Position);

        PBMessage.Person person = ProtoTransfer.DeserializeProtoBuf <PBMessage.Person>(ms);
        Debug.Log("age=" + person.age);
        Debug.Log("email=" + person.email);
        Debug.Log("name=" + person.name);
        Debug.Log("id=" + person.id);
        var table = SLua.LuaSvr.mainState.getFunction("TestParseProtobuf");

        if (table != null)
        {
            table.call(data);
        }
    }
コード例 #3
0
ファイル: Command.cs プロジェクト: tuita520/Frame
 public object Get(Type type)
 {
     return(ProtoTransfer.DeserializeProtoBuf(mData, type));
 }
コード例 #4
0
ファイル: Command.cs プロジェクト: tuita520/Frame
        public T Get <T>() where T : class, ProtoBuf.IExtensible
        {
            T t = ProtoTransfer.DeserializeProtoBuf <T>(mData);

            return(t);
        }