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); }
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; }
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); }
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; } }