public static InventoryItemModel TryCreateItem(int templateId, TaxCollector TCollector, int quantity = 1, short position = -1, string Stats = null, Boolean useMax = false) { if (!ItemTemplateTable.Cache.ContainsKey(templateId)) // Template inexistant { return(null); } // Recup template var Template = ItemTemplateTable.GetTemplate(templateId); // Creation var Item = new InventoryItemModel() { ID = DatabaseCache.nextItemGuid++, TemplateID = templateId, Position = position, Quantity = quantity, Effects = (Stats == null ? Template.GenerateStats().ToItemStats() : Stats) }; Item.GetStats(); // Ajout de l'item dans l'inventaire TCollector.Items.Add(Item.ID, Item); addItem(Item, true); return(Item); }
public static void Load() { ObjTemplateByMount.Clear(); StatsByMount.Clear(); var reader = DatabaseManager.Provider.ExecuteReader("SELECT * FROM static_mounts"); while (reader.Read()) { ObjTemplateByMount.Add(reader.GetInt32("id"), ItemTemplateTable.GetTemplate(reader.GetInt32("scrollID"))); try { List <Couple <int, Double> > _stats = new List <Couple <int, Double> >(); foreach (String stat in Regex.Split(reader.GetString("stats"), "\\|")) { String[] infos = stat.Split('='); Couple <int, Double> c = new Couple <int, Double>(int.Parse(infos[0]), (infos.Length > 1 ? double.Parse(infos[1], CultureInfo.InvariantCulture) : 0)); _stats.Add(c); } StatsByMount.Add(reader.GetInt32("id"), _stats); } catch (Exception e) { Logger.Error(e); } } reader.Close(); Logger.Info("Loaded @'" + ObjTemplateByMount.Count + "'@ Mount"); }
public static InventoryItemModel TryCreateItem(int templateId, Player Character, int quantity = 1, short position = -1, string Stats = null, Boolean useMax = false) { if (!ItemTemplateTable.Cache.ContainsKey(templateId)) // Template inexistant { return(null); } // Recup template var Template = ItemTemplateTable.GetTemplate(templateId); // Creation var Item = new InventoryItemModel() { ID = DatabaseCache.nextItemGuid++, TemplateID = templateId, Position = position, Quantity = quantity, Effects = (Stats == null ? (Template.Type == 113 ? Template.StatsTemplate : Template.GenerateStats(useMax).ToItemStats()) : Stats) }; Item.GetStats(); // Ajout de l'item dans l'inventaire if (Character.InventoryCache.Add(Item)) { addItem(Item, true); } return(Item); }