Support for client 6.0.5.0.
The satisfies my yearly RunUO commit for 2007. :-P
This commit is contained in:
parent
a4c562c06d
commit
0b19ae183e
2 changed files with 29 additions and 2 deletions
|
|
@ -152,7 +152,13 @@ namespace Server.Network
|
|||
|
||||
if ( !ns.Seeded )
|
||||
{
|
||||
if ( buffer.Length >= 4 )
|
||||
if ( buffer.GetPacketID() == 0xEF )
|
||||
{
|
||||
// new packet in client 6.0.5.0 replaces the traditional seed method with a seed packet
|
||||
// 0xEF = 239 = multicast IP, so this should never appear in a normal seed. So this is backwards compatible with older clients.
|
||||
ns.Seeded = true;
|
||||
}
|
||||
else if ( buffer.Length >= 4 )
|
||||
{
|
||||
buffer.Dequeue( m_Peek, 0, 4 );
|
||||
|
||||
|
|
@ -180,7 +186,7 @@ namespace Server.Network
|
|||
{
|
||||
int packetID = buffer.GetPacketID();
|
||||
|
||||
if ( !ns.SentFirstPacket && packetID != 0xF0 && packetID != 0xF1 && packetID != 0xCF && packetID != 0x80 && packetID != 0x91 && packetID != 0xA4 )
|
||||
if ( !ns.SentFirstPacket && packetID != 0xF0 && packetID != 0xF1 && packetID != 0xCF && packetID != 0x80 && packetID != 0x91 && packetID != 0xA4 && packetID != 0xEF )
|
||||
{
|
||||
Console.WriteLine( "Client: {0}: Encrypted client detected, disconnecting", ns );
|
||||
ns.Dispose();
|
||||
|
|
|
|||
|
|
@ -147,6 +147,7 @@ namespace Server.Network
|
|||
Register( 0xD1, 2, true, new OnPacketReceive( LogoutReq ) );
|
||||
Register( 0xD6, 0, true, new OnPacketReceive( BatchQueryProperties ) );
|
||||
Register( 0xD7, 0, true, new OnPacketReceive( EncodedCommand ) );
|
||||
Register( 0xEF, 21, false, new OnPacketReceive( LoginServerSeed ) );
|
||||
|
||||
Register6017( 0x08, 15, true, new OnPacketReceive( DropReq6017 ) );
|
||||
|
||||
|
|
@ -2231,6 +2232,26 @@ namespace Server.Network
|
|||
}
|
||||
}
|
||||
|
||||
public static void LoginServerSeed( NetState state, PacketReader pvSrc )
|
||||
{
|
||||
state.m_Seed = pvSrc.ReadInt32();
|
||||
state.Seeded = true;
|
||||
|
||||
if ( state.m_Seed == 0 )
|
||||
{
|
||||
Console.WriteLine("Login: {0}: Invalid client detected, disconnecting", state);
|
||||
state.Dispose();
|
||||
return;
|
||||
}
|
||||
|
||||
int clientMaj = pvSrc.ReadInt32();
|
||||
int clientMin = pvSrc.ReadInt32();
|
||||
int clientRev = pvSrc.ReadInt32();
|
||||
int clientPat = pvSrc.ReadInt32();
|
||||
|
||||
state.Version = new ClientVersion( clientMaj, clientMin, clientRev, clientPat );
|
||||
}
|
||||
|
||||
public static void AccountLogin( NetState state, PacketReader pvSrc )
|
||||
{
|
||||
if ( state.SentFirstPacket )
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue