public static Database.Records.WorldItemRecord GenerateItem(World.Network.WorldClient client, int templateID, bool canGenerateMount = true) { try { Database.Records.ItemRecord template = Database.Cache.ItemCache.Cache.First(x => x.ID == templateID); Database.Records.WorldItemRecord item = new Database.Records.WorldItemRecord(); item.Template = templateID; item.Engine.Effects = template.Engine.GetRandomEffect(); item.Owner = client.Character.ID; item.Effects = item.Engine.StringEffect(); item.Position = -1; item.Quantity = 1; item.SaveAndFlush(); if (canGenerateMount) { Database.Records.MountTemplateRecord mount = Helper.MountHelper.GetMountTemplateByScrool(item.Template); if (mount != null) { Database.Records.WorldMountRecord newWMount = Game.Mounts.MountFactory.CreateMount(mount, item.ID, client.Character.ID); } } return(item); } catch (Exception e) { Utilities.ConsoleStyle.Error("Cant generate items : " + e.ToString()); return(null); } }
public static Database.Records.WorldMountRecord CreateMount(Database.Records.MountTemplateRecord template, int scroll, int owner) { Database.Records.WorldMountRecord newMount = new Database.Records.WorldMountRecord() { ScrollID = scroll, Owner = owner, Stats = template.Engine.RefreshStatForLevel(1), MountType = template.ID, Level = Utilities.ConfigurationManager.GetIntValue("MountStartLevel"), Exp = 0, Name = Utilities.ConfigurationManager.GetStringValue("MountBaseName"), Ancestors = ",,,,,,,,,,,,,", Energy = 1000, }; newMount.SaveAndFlush(); Database.Cache.WorldMountCache.Cache.Add(newMount); newMount.LoadStats(); return(newMount); }