public bool Add(Interfaces.IConquerItem item) { try { if (item.Position > 19) return false; if (objects[item.Position - 1] == null) { UpdateItemview(item); objects[item.Position - 1] = item; item.Position = item.Position; item.Send(Owner); EntityEquipment equips = new EntityEquipment(true); equips.ParseHero(Owner); Owner.Send(equips); Owner.LoadItemStats(item); Owner.SendScreenSpawn(Owner.Entity, false); return true; } else return false; } catch (Exception e) { Program.SaveException(e); Console.WriteLine(e.ToString()); return false; } }
public bool Add(Interfaces.IConquerItem item) { if (objects[item.Position - 1] == null) { UpdateItemview(item); objects[item.Position - 1] = item; item.Position = item.Position; item.Send(Owner); Owner.SendScreenSpawn(Owner.Entity, false); return true; } else return false; }
public bool Add(Interfaces.IConquerItem item, Enums.ItemUse use) { if (objects[item.Position - 1] == null) { objects[item.Position - 1] = item; item.Mode = Enums.ItemMode.Default; if (use != Enums.ItemUse.None) { UpdateItemview(item); item.Send(Owner); Owner.LoadItemStats(Owner.Entity); } return true; } else return false; }
public bool AddSpell(Interfaces.ISkill spell) { if (Spells.ContainsKey(spell.ID)) { if (Spells[spell.ID].Level < spell.Level) { Spells[spell.ID].Level = spell.Level; Spells[spell.ID].Experience = spell.Experience; if (spell.ID != 3060) spell.Send(this); } return false; } else { if (spell.ID == 1045 || spell.ID == 1046) { if (Proficiencies.ContainsKey(Database.SpellTable.SpellInformations[spell.ID][spell.Level].WeaponSubtype)) { if (Proficiencies[Database.SpellTable.SpellInformations[spell.ID][spell.Level].WeaponSubtype].Level < 5) return false; } else return false; } Spells.Add(spell.ID, spell); if (spell.ID != 3060) spell.Send(this); return true; } }
public bool AddProficiency(Interfaces.ISkill proficiency) { if (Proficiencies.ContainsKey(proficiency.ID)) { Proficiencies[proficiency.ID].Level = proficiency.Level; Proficiencies[proficiency.ID].Experience = proficiency.Experience; proficiency.Send(this); return false; } else { Proficiencies.Add(proficiency.ID, proficiency); proficiency.Send(this); return true; } }
public void ReviewItem(Interfaces.IConquerItem item) { Database.ConquerItemTable.DeleteItem(item.UID); if (item.Position != 0) { Network.GamePackets.ItemUsage iu = new Network.GamePackets.ItemUsage(true); iu.UID = item.UID; iu.dwParam = item.Position; iu.ID = Network.GamePackets.ItemUsage.UnequipItem; Owner.Send(iu); } Network.GamePackets.ItemUsage iud = new Network.GamePackets.ItemUsage(true); iud.UID = item.UID; iud.ID = Network.GamePackets.ItemUsage.RemoveInventory; Owner.Send(iud); Database.ConquerItemTable.AddItem(ref item, Owner); item.Send(Owner); }
public bool Remove(Interfaces.IConquerItem item, Enums.ItemUse use) { if (inventory.ContainsKey(item.UID)) { if (!Network.PacketHandler.IsEquipment(item.ID)) { if (item.StackSize != 0) { item.StackSize--; if (item.StackSize != 0) { Database.ConquerItemTable.UpdateStackItem(item, Owner); item.Mode = Enums.ItemMode.Update; item.Send(Owner); item.Mode = Enums.ItemMode.Default; return true; } } } switch (use) { case Enums.ItemUse.Remove: Database.ConquerItemTable.RemoveItem(item.UID); break; case Enums.ItemUse.Delete: Database.ConquerItemTable.DeleteItem(item.UID); break; case Enums.ItemUse.Move: Database.ConquerItemTable.UpdateLocation(item, Owner); break; } inventory.Remove(item.UID); objects = inventory.Values.ToArray(); Network.GamePackets.ItemUsage iu = new Network.GamePackets.ItemUsage(true); iu.UID = item.UID; iu.ID = Network.GamePackets.ItemUsage.RemoveInventory; Owner.Send(iu); return true; } return false; }
public bool Add(Interfaces.IConquerItem item, Enums.ItemUse use) { if (!Database.ConquerItemInformation.BaseInformations.ContainsKey(item.ID)) return true; if (Count == 40 && CanStack(item.ID) == null) { Owner.Send(ServerBase.Constants.FullInventory); return false; } if (!inventory.ContainsKey(item.UID)) { item.Position = 0; if (!Network.PacketHandler.IsEquipment(item.ID)) { if (item.StackSize != item.MaxStackSize) { Interfaces.IConquerItem stacker = null; if ((stacker = CanStack(item.ID)) != null) { bool Continue = false; if (stacker.StackSize + item.StackSize > stacker.MaxStackSize) { Continue = true; item.StackSize = (ushort)(stacker.StackSize + item.StackSize - stacker.MaxStackSize); stacker.StackSize = stacker.MaxStackSize; } else stacker.StackSize++; Database.ConquerItemTable.UpdateStackItem(stacker, Owner); stacker.Mode = Enums.ItemMode.Update; stacker.Send(Owner); stacker.Mode = Enums.ItemMode.Default; if (!Continue) return true; } } } switch (use) { case Enums.ItemUse.CreateAndAdd: item.UID = Conquer_Online_Server.Network.GamePackets.ConquerItem.ItemUID.Next; Database.ConquerItemTable.AddItem(ref item, Owner); item.MobDropped = false; break; case Enums.ItemUse.Add: Database.ConquerItemTable.UpdateLocation(item, Owner); break; case Enums.ItemUse.Move: item.Position = 0; item.StatsLoaded = false; Database.ConquerItemTable.UpdateLocation(item, Owner); break; } inventory.Add(item.UID, item); objects = inventory.Values.ToArray(); item.Mode = Enums.ItemMode.Default; if (use != Enums.ItemUse.None) item.Send(Owner); return true; } return false; }
public bool Add(Interfaces.IConquerItem item, Enums.ItemUse use) { try { if (item.Position < 20) { if (objects[item.Position - 1] == null) { objects[item.Position - 1] = item; item.Mode = Enums.ItemMode.Default; if (use != Enums.ItemUse.None) { UpdateItemview(item); EntityEquipment equips = new EntityEquipment(true); equips.ParseHero(Owner); Owner.Send(equips); item.Send(Owner); Owner.LoadItemStats(item); } return true; } else return false; } else return false; } catch { return false; } }
public static void CheckItemExtra(Interfaces.IConquerItem i, Client.GameState c) { if (i.RefineryTime.Ticks != 0) { if (DateTime.Now > i.RefineryTime) { i.RefineItem = 0; i.RefineryTime = new DateTime(0); Game_ItemSoul expire = new Game_ItemSoul() { Identifier = i.UID }; expire.Expired(c); i.Send(c); c.Send(PacketHandler.WindowStats(c)); Database.ConquerItemTable.UpdateRefineryItem(i); Database.ConquerItemTable.UpdateRefineryTime(i); if (!c.Equipment.Free(i.Position)) { //c.UnloadItemStats(i, true); c.LoadItemStats(c.Entity); } } } }
public bool Add(Interfaces.IConquerItem item, Enums.ItemUse use) { try { if (!Database.ConquerItemInformation.BaseInformations.ContainsKey(item.ID)) return true; if (Count == 40) { Owner.Send(ServerBase.Constants.FullInventory); return false; } if (!inventory.ContainsKey(item.UID)) { item.Position = 0; Interfaces.IConquerItem _ExistingItem; Database.ConquerItemInformation iteminfo = new PhoenixProject.Database.ConquerItemInformation(item.ID, 0); if (Owner.Inventory.Contains(iteminfo.BaseInformation.ID, iteminfo.BaseInformation.StackSize, out _ExistingItem) && Owner.SpiltStack && use !=Enums.ItemUse.None) { if (_ExistingItem.StackSize == 0) _ExistingItem.StackSize = 1; ushort _StackCount = iteminfo.BaseInformation.StackSize; _StackCount -= (ushort)_ExistingItem.StackSize; if (_StackCount >= 1) _StackCount += 1; _ExistingItem.StackSize += 1; Database.ConquerItemTable.UpdateStack(_ExistingItem); _ExistingItem.Mode = Game.Enums.ItemMode.Update; _ExistingItem.Send(Owner); _ExistingItem.Mode = Game.Enums.ItemMode.Default; switch (use) { case Enums.ItemUse.Add: Database.ConquerItemTable.DeleteItem(item.UID); break; case Enums.ItemUse.Move: Database.ConquerItemTable.DeleteItem(item.UID); break; } // Owner.SpiltStack = false; return true; } else { switch (use) { case Enums.ItemUse.CreateAndAdd: item.UID = PhoenixProject.Client.AuthState.nextID; PhoenixProject.Client.AuthState.nextID++; Database.ConquerItemTable.AddItem(ref item, Owner); item.MobDropped = false; break; case Enums.ItemUse.Add: Database.ConquerItemTable.UpdateLocation(item, Owner); break; case Enums.ItemUse.Move: item.Position = 0; item.StatsLoaded = false; Database.ConquerItemTable.UpdateLocation(item, Owner); break; } inventory.Add(item.UID, item); objects = inventory.Values.ToArray(); item.Mode = Enums.ItemMode.Default; if (use != Enums.ItemUse.None) item.Send(Owner); return true; } } } catch (Exception e) { Program.SaveException(e); } return false; }
public void Inscribe(ArsenalType Type, Interfaces.IConquerItem Item, Client.GameState client) { if (!Inscribed[Type].ContainsKey(Item.UID)) { Item.Mode = Enums.ItemMode.Update; Item.Inscribed = true; Item.Send(client); Item.Mode = Enums.ItemMode.Default; ArsenalSingle Inscriber = new ArsenalSingle(); Inscriber.D_UID = client.Entity.UID; Inscriber.Item = Item; Inscriber.Name = client.Entity.Name; Inscriber.UID = Item.UID; Inscriber.Type = Type; Inscriber.Donation = GetDonation(Item); Inscribed[Type].Add(Inscriber.UID, Inscriber); Database.ArsenalsTable.Inscribe(Type, Inscriber.Donation, Item, client.Entity); Donation[Type] += Inscriber.Donation; } else { client.Send(new Network.GamePackets.Message("This item is already inscribed!", System.Drawing.Color.Red, 2005)); return; } }