void Handle(Client client, CreateGuildPacket packet) { try { client.Manager.Database.DoActionAsync(db => { Player player = client.Player; var name = packet.Name.ToString(); if (player.Client.Account.Stats.Fame >= 1000) { if (name != "") { if (db.GetGuild(name) != null) { client.Player.SendInfo("Server Error #37 - CreateGuildHandler.cs. Contact LoE Team."); //player.Client.SendPacket(new CreateGuildResultPacket() //{ // Success = false, // ErrorText = "{\"key\":\"server.create_guild_error\",\"tokens\":{\"error\":\"Guild already exists.\"}}" //}); return; } try { if (player.Client.Account.Guild.Name == "") { if (packet.Name != "") { var g = db.CreateGuild(player.Client.Account, packet.Name); player.Client.Account.Guild.Name = g.Name; player.Client.Account.Guild.Rank = g.Rank; player.Guild = GuildManager.Add(player, g); client.Player.SendInfo("Purchase successful!"); //player.Client.SendPacket(new CreateGuildResultPacket() //{ // Success = true, // ErrorText = "{\"key\":\"server.buy_success\"}" //}); player.CurrentFame = player.Client.Account.Stats.Fame = db.UpdateFame(player.Client.Account, -1000); player.UpdateCount++; return; } else { client.Player.SendInfo("Server Error #99 - ChooseNameHandler.cs. Contact LoE Team."); //player.Client.SendPacket(new CreateGuildResultPacket() //{ // Success = false, // ErrorText = "{\"key\":\"server.create_guild_error\",\"tokens\":{\"error\":\"Guild name cannot be blank.\"}}" //}); return; } } else { player.Client.SendPacket(new CreateGuildResultPacket() { Success = false, ErrorText = "{\"key\":\"server.create_guild_error\",\"tokens\":{\"error\":\"You cannot create a guild as a guild member.\"}}" }); return; } } catch (Exception e) { player.Client.SendPacket(new CreateGuildResultPacket() { Success = false, ErrorText = "{\"key\":\"server.create_guild_error\",\"tokens\":{\"error\":\"" + e.Message + "\"}}" }); return; } } else { player.Client.SendPacket(new CreateGuildResultPacket() { Success = false, ErrorText = "{\"key\":\"server.create_guild_error\",\"tokens\":{\"error\":\"Guild name cannot be blank.\"}}" }); } } else { player.Client.SendPacket(new CreateGuildResultPacket() { Success = false, ErrorText = "{\"key\":\"server.not_enough_fame\"}" }); } }); } catch (Exception e) { client.SendPacket(new CreateGuildResultPacket() { Success = false, ErrorText = "{\"key\":\"server.create_guild_error\",\"tokens\":{\"error\":\"" + e.Message + "\"}}" }); } }
public Player(RealmManager manager, Client psr) : base(manager, (ushort)psr.Character.ObjectType, psr.Random) { try { Client = psr; Manager = psr.Manager; StatsManager = new StatsManager(this, psr.Random.CurrentSeed); Name = psr.Account.Name; AccountId = psr.Account.AccountId; FameCounter = new FameCounter(this); Tokens = psr.Account.FortuneTokens; HpPotionPrice = 5; MpPotionPrice = 5; Level = psr.Character.Level == 0 ? 1 : psr.Character.Level; Experience = psr.Character.Exp; ExperienceGoal = GetExpGoal(Level); Stars = GetStars(); Texture1 = psr.Character.Tex1; Texture2 = psr.Character.Tex2; Credits = psr.Account.Credits; NameChosen = psr.Account.NameChosen; CurrentFame = psr.Account.Stats.Fame; Fame = psr.Character.CurrentFame; XpBoosted = psr.Character.XpBoosted; XpBoostTimeLeft = psr.Character.XpTimer; _xpFreeTimer = XpBoostTimeLeft != -1.0; LootDropBoostTimeLeft = psr.Character.LDTimer; _lootDropBoostFreeTimer = LootDropBoost; LootTierBoostTimeLeft = psr.Character.LTTimer; _lootTierBoostFreeTimer = LootTierBoost; var state = psr.Account.Stats.ClassStates.SingleOrDefault(_ => Utils.FromString(_.ObjectType) == ObjectType); FameGoal = GetFameGoal(state?.BestFame ?? 0); Glowing = IsUserInLegends(); Guild = GuildManager.Add(this, psr.Account.Guild); HP = psr.Character.HitPoints <= 0 ? psr.Character.MaxHitPoints : psr.Character.HitPoints; Mp = psr.Character.MagicPoints; ConditionEffects = 0; OxygenBar = 100; HasBackpack = psr.Character.HasBackpack == 1; PlayerSkin = Client.Account.OwnedSkins.Contains(Client.Character.Skin) ? Client.Character.Skin : 0; HealthPotions = psr.Character.HealthStackCount < 0 ? 0 : psr.Character.HealthStackCount; MagicPotions = psr.Character.MagicStackCount < 0 ? 0 : psr.Character.MagicStackCount; Locked = psr.Account.Locked ?? new List <string>(); Ignored = psr.Account.Ignored ?? new List <string>(); try { Manager.Database.DoActionAsync(db => { Locked = db.GetLockeds(AccountId); Ignored = db.GetIgnoreds(AccountId); Muted = db.IsMuted(AccountId); DailyQuest = psr.Account.DailyQuest; }); } catch (Exception ex) { Console.WriteLine(ex); } if (HasBackpack) { using (Database db = new Database()) { var inv = db.getSerialInfo(psr.Character.Equipment, Manager.GameData); var backpack = db.getSerialInfo(psr.Character.Backpack, Manager.GameData); Inventory = inv.Concat(backpack).ToArray(); } var xElement = Manager.GameData.ObjectTypeToElement[ObjectType].Element("SlotTypes"); if (xElement != null) { var slotTypes = Utils.FromCommaSepString32( xElement.Value); Array.Resize(ref slotTypes, 20); SlotTypes = slotTypes; } } else { using (Database db = new Database()) { Inventory = db.getSerialInfo(psr.Character.Equipment, Manager.GameData); } var xElement = Manager.GameData.ObjectTypeToElement[ObjectType].Element("SlotTypes"); if (xElement != null) { SlotTypes = Utils.FromCommaSepString32( xElement.Value); } } Stats = new[] { psr.Character.MaxHitPoints, psr.Character.MaxMagicPoints, psr.Character.Attack, psr.Character.Defense, psr.Character.Speed, psr.Character.HpRegen, psr.Character.MpRegen, psr.Character.Dexterity }; Pet = null; for (var i = 0; i < SlotTypes.Length; i++) { if (SlotTypes[i] == 0) { SlotTypes[i] = 10; } } if (Client.Account.Rank >= 3) { return; } for (var i = 0; i < 4; i++) { if (Inventory[i]?.SlotType != SlotTypes[i]) { Inventory[i] = null; } } } catch (Exception e) { Console.WriteLine(e); } }
void Handle(Client client, CreateGuildPacket packet) { try { client.AddDatabaseOpperation(db => { Player player = client.Player; var name = packet.Name.ToString(); if (player.Client.Account.Stats.Fame >= 1000) { if (name != "") { if (db.GetGuild(name) != null) { player.Client.SendPacket(new CreateGuildResultPacket() { Success = false, ResultMessage = "Guild already exists." }); return; } try { if (player.Client.Account.Guild.Name == "") { if (packet.Name != "") { var g = db.CreateGuild(player.Client.Account, packet.Name); player.Client.Account.Guild.Name = g.Name; player.Client.Account.Guild.Rank = g.Rank; player.Guild = GuildManager.Add(player, g); player.Client.SendPacket(new CreateGuildResultPacket() { Success = true, ResultMessage = "Success!" }); player.CurrentFame = player.Client.Account.Stats.Fame = db.UpdateFame(player.Client.Account, -1000); player.UpdateCount++; return; } else { player.Client.SendPacket(new CreateGuildResultPacket() { Success = false, ResultMessage = "Guildname cannot be blank." }); return; } } else { player.Client.SendPacket(new CreateGuildResultPacket() { Success = false, ResultMessage = "You cannot create a guild as a guild member." }); return; } } catch (Exception e) { player.Client.SendPacket(new CreateGuildResultPacket() { Success = false, ResultMessage = "Error " + e }); return; } } else { player.Client.SendPacket(new CreateGuildResultPacket() { Success = false, ResultMessage = "Guild name cannot be blank." }); } } else { player.Client.SendPacket(new CreateGuildResultPacket() { Success = false, ResultMessage = "Not enough Fame." }); } }); } catch (Exception e) { client.SendPacket(new CreateGuildResultPacket() { Success = false, ResultMessage = "Error " + e }); } }
//private int pingSerial; public Player(Client client) : base(client.Manager, (ushort)client.Character.ObjectType, client.Random) { this.client = client; statsMgr = new StatsManager(this, client.Random.CurrentSeed); Name = client.Account.Name; AccountId = client.Account.AccountId; Name = client.Account.Name; Level = client.Character.Level; Experience = client.Character.Exp; ExperienceGoal = GetExpGoal(client.Character.Level); Stars = GetStars(); switch (client.Account.Rank) { case 1: Stars = 200; break; case 2: Stars = 210; break; case 3: Stars = 220; break; case 4: Stars = 230; break; case 5: Stars = 240; break; case 6: Stars = 500; break; case 7: Stars = 1337; break; } Texture1 = client.Character.Tex1; Texture2 = client.Character.Tex2; Effect = client.Character.Effect; XmlEffect = ""; Skin = client.Character.Skin; PermaSkin = client.Character.PermaSkin != 0; XpBoost = client.Character.XpBoost; Credits = client.Account.Credits; Keys = client.Account.Keys; NameChosen = client.Account.NameChosen; CurrentFame = client.Account.Stats.Fame; Fame = client.Character.CurrentFame; ClassStats state = client.Account.Stats.ClassStates.SingleOrDefault(_ => _.ObjectType == ObjectType); FameGoal = GetFameGoal(state != null ? state.BestFame : 0); Glowing = -1; switch (client.Account.Rank) { /* if (client.Client.ClientDatabase.IsUserInLegends(AccountId)) * Glowing = 0xFF0000; */ case 6: Glowing = 0xFFFFFF; break; case 7: Glowing = 0xFF0080; break; } Guild = GuildManager.Add(this, client.Account.Guild); HP = client.Character.HitPoints; MP = client.Character.MagicPoints; ConditionEffects = 0; OxygenBar = 100; Party = Party.GetParty(this); if (Party != null) { if (Party.Leader.AccountId == AccountId) { Party.Leader = this; } else { Party.Members.Add(this); } } if (HP <= 0) { HP = client.Character.MaxHitPoints; } Locked = client.Account.Locked ?? new List <int>(); Ignored = client.Account.Ignored ?? new List <int>(); try { Locked = Client.ClientDatabase.GetLockeds(AccountId); Ignored = Client.ClientDatabase.GetIgnoreds(AccountId); } catch { } Inventory = new Inventory(this, client.Character.Equipment .Select(_ => _ == 0xffff ? null : client.Manager.GameData.Items[_]) .ToArray(), client.Character.EquipData); Inventory.InventoryChanged += (sender, e) => CalculateBoost(); SlotTypes = Utils.FromCommaSepString32( Manager.GameData.ObjectTypeToElement[ObjectType].Element("SlotTypes").Value); Stats = new[] { client.Character.MaxHitPoints, client.Character.MaxMagicPoints, client.Character.Attack, client.Character.Defense, client.Character.Speed, client.Character.HpRegen, client.Character.MpRegen, client.Character.Dexterity, client.Character.Luck, client.Character.Crit }; /* if (client.Character.Backpacks >= 1) * { * Inventory.SetItems(Inventory.Concat(client.Character.Backpack1.Select(_ => _ == 0xffff ? null : client.Manager.GameData.Items[_])).ToArray()); * SlotTypes = SlotTypes.Concat(new int[8] { 0, 0, 0, 0, 0, 0, 0, 0 }).ToArray(); * } * if (client.Character.Backpacks == 2) * { * Inventory.SetItems(Inventory.Concat(client.Character.Backpack2.Select(_ => _ == 0xffff ? null : client.Manager.GameData.Items[_])).ToArray()); * SlotTypes = SlotTypes.Concat(new int[8] { 0, 0, 0, 0, 0, 0, 0, 0 }).ToArray(); * } */ Pet = null; for (int i = 0; i < SlotTypes.Length; i++) { if (SlotTypes[i] == 0) { SlotTypes[i] = 10; } } AddRecipes(); }
void Handle(Client client, CreateGuildPacket packet) { try { client.Manager.Database.AddDatabaseOperation(db => { Player player = client.Player; var name = packet.Name.ToString(); if (player.Client.Account.Stats.Fame >= 1000) { if (name != "") { if (db.GetGuild(name) != null) { player.Client.SendPacket(new GuildResultPacket() { Success = false, LineBuilderJSON = "{\"key\":\"server.create_guild_error\",\"tokens\":{\"error\":\"Guild already exists.\"}}" }); return; } try { if (player.Client.Account.Guild.Name == "") { if (packet.Name != "") { var g = db.CreateGuild(player.Client.Account, packet.Name); player.Client.Account.Guild.Name = g.Name; player.Client.Account.Guild.Rank = g.Rank; player.Guild = GuildManager.Add(player, g); player.Client.SendPacket(new GuildResultPacket() { Success = true, LineBuilderJSON = "{\"key\":\"server.buy_success\"}" }); player.CurrentFame = player.Client.Account.Stats.Fame = db.UpdateFame(player.Client.Account, -1000); player.UpdateCount++; return; } else { player.Client.SendPacket(new GuildResultPacket() { Success = false, LineBuilderJSON = "{\"key\":\"server.create_guild_error\",\"tokens\":{\"error\":\"Guild name cannot be blank.\"}}" }); return; } } else { player.Client.SendPacket(new GuildResultPacket() { Success = false, LineBuilderJSON = "{\"key\":\"server.create_guild_error\",\"tokens\":{\"error\":\"You cannot create a guild as a guild member.\"}}" }); return; } } catch (Exception e) { player.Client.SendPacket(new GuildResultPacket() { Success = false, LineBuilderJSON = "{\"key\":\"server.create_guild_error\",\"tokens\":{\"error\":\"" + e.Message + "\"}}" }); return; } } else { player.Client.SendPacket(new GuildResultPacket() { Success = false, LineBuilderJSON = "{\"key\":\"server.create_guild_error\",\"tokens\":{\"error\":\"Guild name cannot be blank.\"}}" }); } } else { player.Client.SendPacket(new GuildResultPacket() { Success = false, LineBuilderJSON = "{\"key\":\"server.not_enough_fame\"}" }); } }); } catch (Exception e) { client.SendPacket(new GuildResultPacket() { Success = false, LineBuilderJSON = "{\"key\":\"server.create_guild_error\",\"tokens\":{\"error\":\"" + e.Message + "\"}}" }); } }