Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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();
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        public override void WriteConnectRequest(BitStream stream)
        {
            base.WriteConnectRequest(stream);

            stream.Write(NetClassRep.GetNetClassCount((uint)GetNetClassGroup(), (uint)NetClassType.NetClassTypeEvent));
        }
Beispiel #6
0
        public uint ReadClassId(uint classType, uint classGroup)
        {
            var ret = ReadInt((byte)NetClassRep.GetNetClassBitSize(classGroup, classType));

            return(ret >= NetClassRep.GetNetClassCount(classGroup, classType) ? 0xFFFFFFFFU : ret);
        }
Beispiel #7
0
 public void WriteClassId(uint classId, uint classType, uint classGroup)
 {
     WriteInt(classId, (byte)NetClassRep.GetNetClassBitSize(classGroup, classType));
 }
Beispiel #8
0
 public static void Declare <T>(out NetClassRep rep) where T : BaseObject, new()
 {
     rep = new NetClassRepInstance <T>(typeof(T).Name, 0, NetClassType.NetClassTypeNone, 0);
 }
Beispiel #9
0
 public static BaseObject Create(uint groupId, uint typeId, int classId)
 {
     return(NetClassRep.Create(groupId, typeId, classId));
 }
Beispiel #10
0
 public static BaseObject Create(string className)
 {
     return(NetClassRep.Create(className));
 }
Beispiel #11
0
 public virtual void WriteConnectRequest(BitStream stream)
 {
     stream.Write((uint)GetNetClassGroup());
     stream.Write(NetClassRep.GetClassGroupCRC(GetNetClassGroup()));
 }