Esempio n. 1
0
        public bool GetCommand(GenMessage msg)
        {
            int i = 0;

            for (i = commands.Count - 1; i >= 0; i--)
            {
                var item = commands[i];
                int diff = item.Frame - msg.Frame;
                if (diff < 0)
                {
                    commands.Insert(i + 1, msg);
                    return(true);
                }
                else if (diff == 0)
                {
                    Console.Write("StoredFrames: ");
                    foreach (var m in commands)
                    {
                        Console.Write(m.Frame + " ");
                    }
                    Console.WriteLine("SameFrame: " + msg.Frame + " MsgId: " + item.MsgId + " " + msg.MsgId);
                    return(item.MsgId != msg.MsgId);
                }
            }
            if (i == -1)
            {
                commands.Insert(0, msg);
                return(true);
            }
            return(false);
        }
Esempio n. 2
0
 public bool GetCommand(GenMessage msg)
 {
     int i = 0;
     for (i = commands.Count - 1; i >= 0; i--) {
         var item = commands[i];
         int diff = item.Frame - msg.Frame;
         if (diff < 0) {
             commands.Insert(i + 1, msg);
             return true;
         }
         else if (diff == 0) {
             Console.Write("StoredFrames: ");
             foreach (var m in commands) {
                 Console.Write(m.Frame + " ");
             }
             Console.WriteLine("SameFrame: " + msg.Frame + " MsgId: " + item.MsgId + " " + msg.MsgId);
             return item.MsgId != msg.MsgId;
         }
     }
     if (i == -1) {
         commands.Insert(0, msg);
         return true;
     }
     return false;
 }
Esempio n. 3
0
        public static UserUdpRequest Decode(byte[] src, int offset, int length)
        {
            var msg = GenMessage.ParseFrom(ByteString.CopyFrom(src, offset, length));

            return(new UserUdpRequest(msg.MsgType, msg.PId)
            {
                msg = msg
            });
        }
    void OnMessageReceived(byte[] bytes)
    {
#if TEST
        if (!GameStarted)
        {
            GameStarted = true;
            startTime   = Time.realtimeSinceStartup;
        }
        if (packSize < bytes.Length)
        {
            packSize = bytes.Length;
        }
        bytesReceived += bytes.Length;
#endif
        GenMessage msg = GenMessage.ParseFrom(bytes);
        actionDict[msg.MsgType](msg.Frame, msg.PIdx, msg.Buf);
    }
Esempio n. 5
0
    void Request(MessageType type, int frame, ByteString buf)
    {
        var genMessage = GenMessage.CreateBuilder()
                         .SetMsgType(type)
                         .SetFrame(frame)
                         .SetPIdx(UserInfo.Instance.Index)
                         .SetMsgId(NextMsgId)
                         .SetBuf(buf).Build();

        /*
         * var vec = GenMessage.CreateGenMessage(builder, type, builder.CreateString(UserInfo.Instance.Id), NextMsgId, builder.CreateBuffVector(GenMessage.StartBufVector, buffSeg), frame);
         * builder.Finish(vec.Value);
         *      //Debug.Log (string.Format("{0}: Send Frame {1} To {2}", UserInfo.Instance.Id, frame, "All"));
         * var seg = GenMessage.GetRootAsGenMessage(builder.DataBuffer);
         * */
        MessageDispatcher.Instance.Send(genMessage.ToByteArray());
        if (type != MessageType.GetMissingCmd)
        {
            latestCommands.Enqueue(genMessage);
            FutureFrame = frame;
        }
    }