public int HandlePacket(BaseClient client, PacketIn packet) { WorldClient cclient = (WorldClient)client; UInt32 whisperuid = packet.GetUint32Reversed(); String charname = packet.GetParsedString(); String message = packet.GetParsedString(); (client as WorldClient).Send(new ANS_CHAT_WHISPER(cclient, whisperuid, charname, message)); //cclient.Send(new CHAT_WHISPER(cclient.CharacterId, 1, message)); return 0; }
public int HandlePacket(BaseClient client, PacketIn packet) { LobbyClient cclient = client as LobbyClient; UInt32 WorldUid = packet.GetUint32Reversed(); string Name = packet.GetParsedString(); PacketOut Out = new PacketOut((UInt32)Opcodes.ANS_CHARACTER_NAME_CHECK); if (Databases.CharacterTable.Count(c => c.Name == Name) == 0) { cclient.Pending = new CharacterEntry(); cclient.Pending.Index = Databases.CharacterTable.GenerateIndex(); cclient.Pending.AccountIndex = cclient.Account.Index; cclient.Pending.Name = Name; cclient.Pending.World = (int)WorldUid; cclient.Pending.Rank = 1; cclient.Pending.Money = 0; cclient.Pending.Threat = 1; cclient.Pending.Playtime = 0; cclient.Pending.Clan = "APB-EMU"; cclient.Pending.IsOnline = 0; cclient.Pending.DistrictID = 0; cclient.Pending.DistrictType = 0; cclient.Pending.LFG = 0; cclient.Pending.IsGroupPublic = 0; cclient.Pending.GroupInvite = 0; cclient.Pending.GroupStatus = 0; Out.WriteUInt32Reverse((uint)ResponseCodes.RC_SUCCESS); } else { cclient.Pending = default(CharacterEntry); Out.WriteUInt32Reverse((uint)ResponseCodes.RC_CHARACTER_NAME_CHECK_IN_USE); } cclient.Send(Out); return 0; }
public int HandlePacket(BaseClient bcclient, PacketIn packet) { LobbyClient client = bcclient as LobbyClient; packet.Skip(25); string Username = packet.GetParsedString(); Log.Notice("ASK_LOGIN", "Account: " + Username); try { client.Account = Databases.AccountTable.SingleOrDefault(a => a.Username == Username); if (client.Account.Verifier.Length <= 2 || client.Account.Salt.Length <= 2) { Register(client); } client.Salt = new FrameWork.NetWork.Crypto.BigInteger(client.Account.Salt, 16).ToByteArrayUnsigned(); client.Verifier = new FrameWork.NetWork.Crypto.BigInteger(client.Account.Verifier, 16); Log.Succes("ASK_LOGIN", "Account exists: " + client.Account.Username); LOGIN_SALT.Send(client); } catch (ArgumentNullException) { Log.Error("ASK_LOGIN", "Database is busy"); LOGIN_FAILED.Send(client, (int)ResponseCodes.RC_DATABASE_BUSY); client.Disconnect(); } catch (Exception e) { Log.Error("ASK_LOGIN", "Account is not found"); Log.Debug("ASK_LOGIN", e.ToString()); LOGIN_FAILED.Send(client, (int)ResponseCodes.RC_LOGIN_INVALID_ACCOUNT); client.Disconnect(); } return(0); }
public int HandlePacket(BaseClient client, PacketIn packet) { WorldClient cclient = (WorldClient)client; string charName = packet.GetParsedString(); PacketOut Out = new PacketOut((uint)Opcodes.ANS_CHARACTERFINDER_INFO); int count = Databases.CharacterTable.Count(c => c.Name == charName); CharacterEntry chr = Databases.CharacterTable.SingleOrDefault(c => c.Name == charName); if (cclient.Character.Name == charName) { Out.WriteUInt32Reverse(0x01); } else { if (cclient.Account.Index == chr.AccountIndex) { Out.WriteUInt32Reverse((uint)ResponseCodes.RC_FAILED); } else { if (count < 1) { Out.WriteUInt32Reverse((uint)ResponseCodes.RC_CHARACTERFINDER_INFO_NO_CHARACTER); } else { if (chr.IsOnline == 1) { Out.WriteUInt32((uint)ResponseCodes.RC_SUCCESS); Out.WriteUInt32Reverse((uint)chr.Index); Out.WriteParsedString(charName); Out.WriteByte(chr.Faction); Out.WriteByte(chr.LFG); Out.WriteByte(chr.GroupStatus); Out.WriteByte(chr.IsGroupPublic); Out.WriteByte(chr.GroupInvite); uint code = (uint)(chr.DistrictType << 24); code += chr.DistrictID; Districts.District d; Program.districtsListener.Districts.TryGetValue(code, out d); Out.WriteUInt32(code); Out.WriteByte(d.isFull()); Out.WriteFloat(1.00f); } else { Out.WriteUInt32Reverse((uint)ResponseCodes.RC_CHARACTERFINDER_INFO_NO_CHARACTER); } } } } cclient.Send(Out); return(0); }
public int HandlePacket(BaseClient client, PacketIn packet) { WorldClient cclient = (WorldClient)client; string charName = packet.GetParsedString(); PacketOut Out = new PacketOut((uint)Opcodes.ANS_FRIENDLIST_ADD); int count = Databases.CharacterTable.Count(c => c.Name == charName); CharacterEntry chr = Databases.CharacterTable.SingleOrDefault(c => c.Name == charName); if (cclient.Character.Name == charName) { Out.WriteUInt32Reverse((uint)ResponseCodes.RC_FRIENDLIST_ADD_SELF); } else { if (cclient.Character.AccountIndex == chr.AccountIndex) { Out.WriteUInt32Reverse((uint)ResponseCodes.RC_FRIENDLIST_ADD_SAME_ACCOUNT); } else { if (count < 1) { Out.WriteUInt32Reverse((uint)ResponseCodes.RC_FRIENDLIST_ADD_INVALID_NAME); } else if (count >= 1) { Out.WriteUInt32((uint)ResponseCodes.RC_SUCCESS); Out.WriteParsedString(charName); Out.WriteByte(chr.Faction); Out.WriteByte(chr.IsOnline); Out.WriteUInt32Reverse((uint)chr.Index); Out.WriteByte(chr.LFG); Out.WriteByte(chr.GroupStatus); Out.WriteByte(chr.IsGroupPublic); Out.WriteByte(chr.GroupInvite); uint code = (uint)(chr.DistrictType << 24); code += chr.DistrictID; Districts.District d; Program.districtsListener.Districts.TryGetValue(code, out d); Out.WriteUInt32(code); Out.WriteByte(d.isFull()); FriendEntry frnd = new FriendEntry(); frnd.Index = Databases.FriendTable.GenerateIndex(); frnd.CharacterOwnerIndex = cclient.Character.Index; frnd.CharacterFriendIndex = chr.Index; Databases.FriendTable.Add(frnd); } } } cclient.Send(Out); return(0); }
public int HandlePacket(BaseClient client, PacketIn packet) { WorldClient cclient = (WorldClient)client; uint whisperuid = packet.GetUint32Reversed(); string charname = packet.GetParsedString(); string message = packet.GetParsedString(); PacketOut Out = new PacketOut((uint)Opcodes.ANS_CHAT_WHISPER); Out.WriteUInt32((uint)ResponseCodes.RC_SUCCESS); Out.WriteUInt32Reverse(whisperuid); uint charUID = 0x00; //GetCharUid(String charname) TODO Out.WriteUInt32Reverse(charUID); cclient.Send(Out); /*PacketOut Out2 = new PacketOut((uint)Opcodes.CHAT_WHISPER); * Out2.WriteUInt32Reverse(charUID); * Out2.WriteByte(1); * Out2.WriteParsedString(message); * cclient.Send(Out2);*/ return(0); }
public int HandlePacket(BaseClient bcclient, PacketIn packet) { LobbyClient client = bcclient as LobbyClient; packet.Skip(24); String Email = packet.GetParsedString(); Log.Notice("ASK_LOGIN", "Account: " + Email); Account account; try { account = new Account(Email); } catch (ArgumentNullException) { Log.Error("ASK_LOGIN", "Database is busy"); ANS_LOGIN_FAILED.Send(client, (int)ResponseCodes.RC_DATABASE_BUSY); client.Disconnect(); return 0; } catch (Exception e) { Log.Error("ASK_LOGIN", "Account's not found"); Log.Debug("ASK_LOGIN", e.ToString()); ANS_LOGIN_FAILED.Send(client, (int)ResponseCodes.RC_LOGIN_INVALID_ACCOUNT); client.Disconnect(); return 0; } Log.Succes("ASK_LOGIN", "Account exists"); client.Account = account; if (client.Account.extrn_login == 1) { if (client.Account.Verifier.Length <= 2 || client.Account.Salt.Length <= 2) Register(client); client.Salt = new FrameWork.NetWork.Crypto.BigInteger(client.Account.Salt, 16).ToByteArrayUnsigned(); client.Verifier = new FrameWork.NetWork.Crypto.BigInteger(client.Account.Verifier, 16); LOGIN_SALT.Send(client); return 0; } else { ANS_LOGIN_FAILED.Send(client, (int)ResponseCodes.RC_LOGIN_APB_INACTIVATED); client.Disconnect(); return 0; } }
public int HandlePacket(BaseClient client, PacketIn packet) { WorldClient cclient = (WorldClient)client; string charName = packet.GetParsedString(); PacketOut Out = new PacketOut((uint)Opcodes.ANS_IGNORELIST_ADD); int count = Databases.CharacterTable.Count(c => c.Name == charName); CharacterEntry chr = Databases.CharacterTable.SingleOrDefault(c => c.Name == charName); if (cclient.Character.Name == charName) { Out.WriteUInt32Reverse((uint)ResponseCodes.RC_IGNORELIST_ADD_SELF); } else { if (cclient.Character.AccountIndex == chr.AccountIndex) { Out.WriteUInt32Reverse((uint)ResponseCodes.RC_IGNORELIST_ADD_SAME_ACCOUNT); } else { if (count < 1) { Out.WriteUInt32Reverse((uint)ResponseCodes.RC_IGNORELIST_ADD_NOT_FOUND); } else if (count >= 1) { Out.WriteUInt32((uint)ResponseCodes.RC_SUCCESS); Out.WriteUInt32Reverse((uint)chr.Index); Out.WriteParsedString(charName); IgnoreEntry ign = new IgnoreEntry(); ign.Index = Databases.FriendTable.GenerateIndex(); ign.CharacterOwnerIndex = cclient.Character.Index; ign.CharacterIgnoreIndex = chr.Index; Databases.IgnoreTable.Add(ign); } } } cclient.Send(Out); return(0); }
public int HandlePacket(BaseClient client, PacketIn packet) { LobbyClient cclient = client as LobbyClient; UInt32 WorldUid = packet.GetUint32Reversed(); string Name = packet.GetParsedString(); PacketOut Out = new PacketOut((UInt32)Opcodes.ANS_CHARACTER_NAME_CHECK); if (isValid(Name) && !cclient.Characters.Exists(Name)) { cclient.Pending = new Character(); cclient.Pending.Name = Name; cclient.Pending.WorldId = WorldUid; Out.WriteUInt32Reverse((uint)ResponseCodes.RC_SUCCESS); } else { cclient.Pending = null; Out.WriteUInt32Reverse((uint)ResponseCodes.RC_CHARACTER_NAME_CHECK_IN_USE); } cclient.Send(Out); return 0; }
public int HandlePacket(BaseClient client, PacketIn packet) { LobbyClient cclient = client as LobbyClient; uint WorldUid = packet.GetUint32Reversed(); string Name = packet.GetParsedString(); PacketOut Out = new PacketOut((uint)Opcodes.ANS_CHARACTER_NAME_CHECK); if (Databases.CharacterTable.Count(c => c.Name == Name) == 0) { cclient.Pending = new CharacterEntry(); cclient.Pending.Index = Databases.CharacterTable.GenerateIndex(); cclient.Pending.AccountIndex = cclient.Account.Index; cclient.Pending.Name = Name; cclient.Pending.World = (int)WorldUid; cclient.Pending.Rank = 1; cclient.Pending.Money = 0; cclient.Pending.Threat = 1; cclient.Pending.Playtime = 0; cclient.Pending.Clan = "APB-EMU"; cclient.Pending.IsOnline = 0; cclient.Pending.DistrictID = 0; cclient.Pending.DistrictType = 0; cclient.Pending.LFG = 0; cclient.Pending.IsGroupPublic = 0; cclient.Pending.GroupInvite = 0; cclient.Pending.GroupStatus = 0; Out.WriteUInt32Reverse((uint)ResponseCodes.RC_SUCCESS); } else { cclient.Pending = default(CharacterEntry); Out.WriteUInt32Reverse((uint)ResponseCodes.RC_CHARACTER_NAME_CHECK_IN_USE); } cclient.Send(Out); return(0); }
public int HandlePacket(BaseClient client, PacketIn packet) { WorldClient cclient = (WorldClient)client; (client as WorldClient).Send(new ANS_IGNORELIST_ADD(packet.GetParsedString(), cclient)); return 0; }
public int HandlePacket(BaseClient client, PacketIn packet) { WorldClient cclient = (WorldClient)client; (client as WorldClient).Send(new ANS_CHARACTERFINDER_INFO(packet.GetParsedString(), cclient)); return 0; }
public int HandlePacket(BaseClient client, PacketIn packet) { WorldClient cclient = (WorldClient)client; cclient.Send(new ANS_GROUP_JOIN(packet.GetParsedString())); return 0; }
public int HandlePacket(BaseClient client, PacketIn packet) { WorldClient cclient = (WorldClient)client; (client as WorldClient).Send(new ANS_GROUP_INVITE(packet.GetParsedString(), cclient)); return 0; }