CompareVersionInSARange() public method

public CompareVersionInSARange ( ) : bool
return bool
Example #1
0
        private static void SendServerList(ref NetworkStream ns, Client client)
        {
            ServerList   sl = Program.server_list;
            MemoryStream ms = new MemoryStream(6 + 40 * sl.ServerCount);

            short server_count = (short)sl.ServerCount;

            ms.WriteByte(0xA8);                            // Game Server List CMD
            WriteBE16(ms, (short)(6 + 40 * server_count)); // MsgLen
            ms.WriteByte(0x00);                            // System Info Flag (0x64: Spy on client, 0xCC: no spy)
            WriteBE16(ms, server_count);                   // # of Servers

            short index = 0;

            foreach (ServerInfo server in sl.Servers)
            {
                if (client.CompareVersionInSARange()) //UO:SA Beta hack
                {
                    WriteBE16(ms, 0x3D);
                }
                else
                {
                    WriteBE16(ms, index);
                }
                index++;
                byte[] name = GetBytes(server.Name, 32);
                ms.Write(name, 0, 32); // 32 bytes
                ms.WriteByte(0);       // percent full
                ms.WriteByte(0);       // timezone
                WriteBE(ms, server.ip);
            }

            byte[] tmp = ms.ToArray();
            ns.Write(tmp, 0, tmp.Length);
        }
Example #2
0
        public static void ServerSelectPacket(ref NetworkStream ns, Client client)
        {
            int index = ReadBE16(ns);

            if (client.CompareVersionInSARange()) //UO:SA Beta hack
            {
                index = 0;
            }
            if (index >= Program.server_list.ServerCount)
            {
                return;
            }
            SendConnectGameServer(ref ns, index, client);
        }
Example #3
0
        public static void SendConnectGameServer(ref NetworkStream ns, int index, Client client)
        {
            MemoryStream ms     = new MemoryStream(11);
            ServerInfo   server = Program.server_list.Servers[index];

            ms.WriteByte(0x8C);
            WriteBEflipped(ms, server.ip);
            WriteBE16(ms, (short)server.port);
            //Pol like seed
            ms.WriteByte(0xFE);
            ms.WriteByte(0xFE);
            if (client.CompareVersion(Client.VER60142))
            {
                ms.WriteByte(0xFD);
            }
            else if (client.CompareVersionInSARange()) //UO:SA Beta hack (for 0xb9 packet)
            {
                ms.WriteByte(0xFD);
            }
            else
            {
                ms.WriteByte(0xFE);
            }
            //if (client.isUOKR)
            //    ms.WriteByte(0xFC);
            //else
            if (client.CompareVersion(Client.VER6017))
            {
                ms.WriteByte(0xFD);
            }
            else
            {
                ms.WriteByte(0xFE);
            }

            byte[] tmp = ms.ToArray();
            ns.Write(tmp, 0, tmp.Length);
        }
Example #4
0
        private static void SendServerList(ref NetworkStream ns, Client client)
        {
            ServerList sl = Program.server_list;
            MemoryStream ms = new MemoryStream(6 + 40 * sl.ServerCount);

            short server_count = (short)sl.ServerCount;
            
            ms.WriteByte(0xA8); // Game Server List CMD
            WriteBE16(ms, (short)(6 + 40*server_count)); // MsgLen
            ms.WriteByte(0x00); // System Info Flag (0x64: Spy on client, 0xCC: no spy)
            WriteBE16(ms, server_count); // # of Servers

            short index = 0;
            foreach (ServerInfo server in sl.Servers)
            {
                if (client.CompareVersionInSARange()) //UO:SA Beta hack
                    WriteBE16(ms, 0x3D);
                else
                    WriteBE16(ms, index);
                index++;
                byte[] name = GetBytes(server.Name, 32);
                ms.Write(name, 0, 32); // 32 bytes
                ms.WriteByte(0); // percent full
                ms.WriteByte(0); // timezone
                WriteBE(ms, server.ip);
            }

            byte[] tmp = ms.ToArray();
            ns.Write(tmp, 0, tmp.Length);
        }
Example #5
0
        public static void SendConnectGameServer(ref NetworkStream ns, int index, Client client)
        {
            MemoryStream ms = new MemoryStream(11);
            ServerInfo server = Program.server_list.Servers[index];

            ms.WriteByte(0x8C);
            WriteBEflipped(ms, server.ip);
            WriteBE16(ms, (short)server.port);
            //Pol like seed
            ms.WriteByte(0xFE);
            ms.WriteByte(0xFE);
            if (client.CompareVersion(Client.VER60142))
                ms.WriteByte(0xFD);
            else if (client.CompareVersionInSARange()) //UO:SA Beta hack (for 0xb9 packet)
                ms.WriteByte(0xFD);
            else
                ms.WriteByte(0xFE);
            //if (client.isUOKR)
            //    ms.WriteByte(0xFC);
            //else
            if (client.CompareVersion(Client.VER6017))
                ms.WriteByte(0xFD);
            else
                ms.WriteByte(0xFE);

            byte[] tmp = ms.ToArray();
            ns.Write(tmp, 0, tmp.Length);
        }
Example #6
0
 public static void ServerSelectPacket(ref NetworkStream ns, Client client)
 {
     int index = ReadBE16(ns);
     if (client.CompareVersionInSARange()) //UO:SA Beta hack
         index = 0;
     if (index >= Program.server_list.ServerCount)
         return;
     SendConnectGameServer(ref ns, index, client); 
 }