public override bool ReadConnectRequest(BitStream stream, ref string errorString) { if (!base.ReadConnectRequest(stream, ref errorString)) { return(false); } stream.Read(out uint classCount); var myCount = NetClassRep.GetNetClassCount((uint)GetNetClassGroup(), (uint)NetClassType.NetClassTypeEvent); if (myCount <= classCount) { EventClassCount = myCount; } else { EventClassCount = classCount; if (!NetClassRep.IsVersionBorderCount((uint)GetNetClassGroup(), (uint)NetClassType.NetClassTypeEvent, EventClassVersion)) { return(false); } } EventClassVersion = (uint)NetClassRep.GetClass((uint)GetNetClassGroup(), (uint)NetClassType.NetClassTypeEvent, EventClassCount - 1).ClassVersion; EventClassBitSize = Utils.GetNextBinLog2(EventClassCount); return(true); }
public virtual bool ReadConnectRequest(BitStream reader, ref string errorString) { reader.Read(out uint classGroup); reader.Read(out uint classCRC); if ((NetClassGroup)classGroup == GetNetClassGroup() && classCRC == NetClassRep.GetClassGroupCRC(GetNetClassGroup())) { return(true); } errorString = "CHR_INVALID"; return(false); }
public NetInterface(int port) { Socket = new TNLSocket(port); NetClassRep.Initialize(); LastTimeoutCheckTime = 0; AllowConnections = true; RequiresKeyExchange = false; RandomHashData = new byte[12]; RandomUtil.Read(RandomHashData, 12); CurrentTime = Environment.TickCount; PuzzleManager = new ClientPuzzleManager(); }
public override bool ReadConnectAccept(BitStream stream, ref string errorString) { if (!base.ReadConnectAccept(stream, ref errorString)) { return(false); } stream.Read(out EventClassCount); var myCount = NetClassRep.GetNetClassCount((uint)GetNetClassGroup(), (uint)NetClassType.NetClassTypeEvent); if (EventClassCount > myCount) { return(false); } if (!NetClassRep.IsVersionBorderCount((uint)GetNetClassGroup(), (uint)NetClassType.NetClassTypeEvent, EventClassCount)) { return(false); } EventClassBitSize = Utils.GetNextBinLog2(EventClassCount); return(true); }
public override void WriteConnectRequest(BitStream stream) { base.WriteConnectRequest(stream); stream.Write(NetClassRep.GetNetClassCount((uint)GetNetClassGroup(), (uint)NetClassType.NetClassTypeEvent)); }
public uint ReadClassId(uint classType, uint classGroup) { var ret = ReadInt((byte)NetClassRep.GetNetClassBitSize(classGroup, classType)); return(ret >= NetClassRep.GetNetClassCount(classGroup, classType) ? 0xFFFFFFFFU : ret); }
public void WriteClassId(uint classId, uint classType, uint classGroup) { WriteInt(classId, (byte)NetClassRep.GetNetClassBitSize(classGroup, classType)); }
public static void Declare <T>(out NetClassRep rep) where T : BaseObject, new() { rep = new NetClassRepInstance <T>(typeof(T).Name, 0, NetClassType.NetClassTypeNone, 0); }
public static BaseObject Create(uint groupId, uint typeId, int classId) { return(NetClassRep.Create(groupId, typeId, classId)); }
public static BaseObject Create(string className) { return(NetClassRep.Create(className)); }
public virtual void WriteConnectRequest(BitStream stream) { stream.Write((uint)GetNetClassGroup()); stream.Write(NetClassRep.GetClassGroupCRC(GetNetClassGroup())); }