public void ParsePacket(IBitStream bitstream) { while (true) { var type = (SVC_Messages)bitstream.ReadProtobufVarInt(); if (type != SVC_Messages.svc_SendTable) { throw new Exception("Expected SendTable, got " + type); } var size = bitstream.ReadProtobufVarInt(); bitstream.BeginChunk(size * 8); var sendTable = new SendTable(bitstream); bitstream.EndChunk(); if (sendTable.IsEnd) { break; } DataTables.Add(sendTable); } int serverClassCount = checked ((int)bitstream.ReadInt(16)); for (int i = 0; i < serverClassCount; i++) { ServerClass entry = new ServerClass(); entry.ClassID = checked ((int)bitstream.ReadInt(16)); if (entry.ClassID > serverClassCount) { throw new Exception("Invalid class index"); } entry.Name = bitstream.ReadDataTableString(); entry.DTName = bitstream.ReadDataTableString(); entry.DataTableID = DataTables.FindIndex(a => a.Name == entry.DTName); if (ServerClasses.FirstOrDefault(sc => sc.Name == entry.Name && sc.DTName == entry.DTName) == null) { ServerClasses.Add(entry); } } for (int i = 0; i < serverClassCount; i++) { FlattenDataTable(i); } }
public void ParsePacket(IBitStream bitstream) { while (true) { var type = (SVC_Messages)bitstream.ReadProtobufVarInt(); if (type != SVC_Messages.svc_SendTable) throw new Exception("Expected SendTable, got " + type); var size = bitstream.ReadProtobufVarInt(); bitstream.BeginChunk(size * 8); var sendTable = new SendTable(bitstream); bitstream.EndChunk(); if (sendTable.IsEnd) break; DataTables.Add(sendTable); } int serverClassCount = checked((int)bitstream.ReadInt(16)); for (int i = 0; i < serverClassCount; i++) { ServerClass entry = new ServerClass(); entry.ClassID = checked((int)bitstream.ReadInt(16)); if (entry.ClassID > serverClassCount) throw new Exception("Invalid class index"); entry.Name = bitstream.ReadDataTableString(); entry.DTName = bitstream.ReadDataTableString(); entry.DataTableID = DataTables.FindIndex(a => a.Name == entry.DTName); ServerClasses.Add(entry); } for (int i = 0; i < serverClassCount; i++) FlattenDataTable(i); }
public EntityDestroyedEventArgs(ServerClass c, EntityInfo e) : base(c, e) { }
public EntityCreatedEventArgs(ServerClass c, EntityInfo e) { this.Class = c; this.Entity = e; }
public EntityCreatedEventArgs(ServerClass c, DemoInfo.DP.Entity e) { this.Class = c; this.Entity = e; }
public EntityCreatedEventArgs(ServerClass c, Entity e) { this.Class = c; this.Entity = e; }