static public Send ( |
||
client | ||
Результат | void |
static public void Send(LobbyClient client)
{
client.Characters = Databases.CharacterTable.Select(c => c.AccountIndex == client.Account.Index);
PacketOut Out = new PacketOut((UInt32)Opcodes.CHARACTER_LIST);
Out.WriteByte((Byte)client.Characters.Count);
lock (Program.worldListener.Worlds)
{
foreach (CharacterEntry chr in client.Characters)
{
Out.WriteByte(chr.Slot);
Out.WriteByte(chr.Faction);
Out.WriteByte(1);
Out.WriteUInt32Reverse((uint)chr.World);
World.World info = null;
Program.worldListener.Worlds.TryGetValue((uint)chr.World, out info);
if (info != null) Out.WriteParsedString(info.Name, 32);
else Out.WriteParsedString("(undefined)", 32);
Out.WriteParsedString(chr.Name, 32);
}
}
client.Send(Out);
if (client.Characters.Count <= 0) WORLD_LIST.Send(client);
}
}
static public void Send(LobbyClient client) { PacketOut Out = new PacketOut((UInt32)Opcodes.ANS_LOGIN_SUCCESS); Out.WriteUnicodeString(client.Account.RealTag, 48); Out.WriteUInt32R(21); // Account Type Out.WriteInt64R(TCPManager.GetTimeStamp()); // Temps avant expiration du compte Out.WriteByte(0x13); // ms Out.WriteByte(0x29); // sec Out.WriteUInt16R(0x12); // Hour // Date de création Out.WriteByte(0x0E); // day Out.WriteByte(0x07); // month Out.WriteUInt16R(2010); // Year Out.WriteInt32R(1450); // Temps de jeu (secondes) Out.WriteInt32R(client.Account.Points); // Points APB for (int i = 1; i < 6; ++i) { Out.WriteInt32R( Program.FileMgr.GetFileVersion(client.Account.Id, i, true, "", "")); // Config file, Server Version } Out.WriteInt32R(0); Out.WriteUInt16(0x957D); Out.WriteUInt16(0x0400); Out.WriteUInt16(0x5052); Out.WriteUInt16(0x4F45); Out.WriteUInt16(0x552E); Out.WriteUInt16(0x3232); Out.WriteUInt16(0x3738); Out.WriteUInt16(0x3031); Out.WriteUInt16(0); Out.WriteUInt16(0x0067); Out.WriteUInt64(0x526C624331313256); Out.WriteUInt64(0x486E314100000000); Out.WriteUInt16(0); Out.WriteStringBytes(""); Out.WriteByte(0); client.SendTCP(Out); ANS_CHARACTER_INFO.Send(client); }