Well create the packet structure using this
[Only registered and activated users can see links. Click Here To Register...].
When you receive the new connection you'll wanna check if the account exist and if it doesn't you send the NEW_ROLE sorta like this:
Code:
if (!getChar.Exists)
{
Client.Transmit(Packets.Chat.Packet(
Enums.ChatType.LoginInformation,
"SYSTEM", "ALLUSERS", "NEW_ROLE"),
SendType.Game);
Xio.PrintInfo("[Xio] New Character from " + Client.Account);
return;
}
Code:
public GetCharacter(ClientEntity _Client)
{
Client = _Client;
MysqlCommand cmd = new MysqlCommand(CommandType.SELECT);
cmd.Select("*", "Characters").Where("UID", Client.Identifier);
cmd.Done();
bool _exists = false;
while (cmd.DataReader.Read())
{
_exists = true;
Client.Character.Name = Convert.ToString(cmd.Read("Name"));
Client.Character.SpouseName = Convert.ToString(cmd.Read("Spouse"));
Client.Character.Model = (Enums.ModelId)Convert.ToUInt32(cmd.Read("Model"));
Client.Character.Hair = Convert.ToUInt16(cmd.Read("Hair"));
Client.Character.Gold = Convert.ToUInt32(cmd.Read("Gold"));
Client.Character.CP = Convert.ToUInt32(cmd.Read("CP"));
Client.Character.WarehouseGold = Convert.ToUInt32(cmd.Read("WarehouseGold"));
Client.Character.Experience = Convert.ToUInt32(cmd.Read("Experience"));
Client.Character.Strength = Convert.ToUInt16(cmd.Read("Strength"));
Client.Character.Dexterity = Convert.ToUInt16(cmd.Read("Dexterity"));
Client.Character.Vitality = Convert.ToUInt16(cmd.Read("Vitality"));
Client.Character.Spirit = Convert.ToUInt16(cmd.Read("Spirit"));
Client.Character.StatPoints = Convert.ToUInt16(cmd.Read("StatPoints"));
Client.Character.HP = Convert.ToUInt16(cmd.Read("HP"));
Client.Character.MP = Convert.ToUInt16(cmd.Read("MP"));
Client.Character.PKPoints = Convert.ToUInt16(cmd.Read("PKPoints"));
Client.Character.Level = Convert.ToByte(cmd.Read("Level"));
Client.Character.Class = Convert.ToByte(cmd.Read("Class"));
Client.Character.Reborn = Convert.ToByte(cmd.Read("Reborn"));
Client.Character.QuizPoints = Convert.ToUInt32(cmd.Read("QuizPoints"));
Client.Character.Virtue = Convert.ToUInt32(cmd.Read("Virtue"));
Client.Character.Map = Convert.ToUInt16(cmd.Read("Map"));
Client.Character.X = Convert.ToUInt16(cmd.Read("X"));
Client.Character.Y = Convert.ToUInt16(cmd.Read("Y"));
}
Exists = _exists;
cmd.End();
}
P.S - Here are the chat types:
Code:
public enum ChatType : uint
{
Talk = 0x7d0,
Whisper = 0x7d1,
Action = 0x7d2,
Team = 0x7d3,
Guild = 0x7d4,
Top = 0x7d5,
Spouse = 0x7d6,
Yell = 0x7d8,
Friend = 0x7d9,
Broadcast = 0x7da,
Center = 0x7db,
Ghost = 0x7dd,
Service = 0x7de,
Dialog = 0x834,
LoginInformation = 0x835,
VendorHawk = 0x838,
Website = 0x839,
MiniMap = 0x83c,
MiniMap2 = 0x83d,
FriendsOfflineMessage = 0x83e,
GuildBulletin = 0x83f,
TradeBoard = 0x899,
FriendBoard = 0x89a,
TeamBoard = 0x89b,
GuildBoard = 0x89c,
OthersBoard = 0x89d
}