Вот как сервер RunUO передает сообщения в клиенту
Как читает их инжа не понял…
Толи в открытых исходниках ни как или туплю?
Описания пакета 0хС1 тоже не нашел
Code:
public sealed class MessageLocalized : Packet
{
private static MessageLocalized[] m_Cache_IntLoc = new MessageLocalized[15000];
private static MessageLocalized[] m_Cache_CliLoc = new MessageLocalized[100000];
private static MessageLocalized[] m_Cache_CliLocCmp = new MessageLocalized[5000];
public static MessageLocalized InstantiateGeneric( int number )
{
MessageLocalized[] cache = null;
int index = 0;
if ( number >= 3000000 )
{
cache = m_Cache_IntLoc;
index = number - 3000000;
}
else if ( number >= 1000000 )
{
cache = m_Cache_CliLoc;
index = number - 1000000;
}
else if ( number >= 500000 )
{
cache = m_Cache_CliLocCmp;
index = number - 500000;
}
MessageLocalized p;
if ( cache != null && index >= 0 && index < cache.Length )
{
p = cache[index];
if ( p == null )
cache[index] = p = new MessageLocalized( Serial.MinusOne, -1, MessageType.Regular, 0x3B2, 3, number, "System", "" );
}
else
{
p = new MessageLocalized( Serial.MinusOne, -1, MessageType.Regular, 0x3B2, 3, number, "System", "" );
}
return p;
}
public MessageLocalized( Serial serial, int graphic, MessageType type, int hue, int font, int number, string name, string args ) : base( 0xC1 )
{
if ( name == null ) name = "";
if ( args == null ) args = "";
if ( hue == 0 )
hue = 0x3B2;
this.EnsureCapacity( 50 + (args.Length * 2) );
m_Stream.Write( (int) serial );
m_Stream.Write( (short) graphic );
m_Stream.Write( (byte) type );
m_Stream.Write( (short) hue );
m_Stream.Write( (short) font );
m_Stream.Write( (int) number );
m_Stream.WriteAsciiFixed( name, 30 );
m_Stream.WriteLittleUniNull( args );
}
}