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 void WantBuyObject(World.Network.WorldClient client, int id) { if (client.Character != null) { Database.Records.ShopItemRecord item = Helper.ShopHelper.FindShopItem(id); if (Communication.Realm.Communicator.Server.MainRealm != null) { if (item != null) { int price = item.NormalPrice; if (item.Vip == 1) { if (client.Account.Vip != 1) { client.Action.SystemMessage("Vous devez etre VIP vous acheter cette objet"); return; } } if (client.Account.Points >= price) { Database.Records.ItemRecord template = Database.Cache.ItemCache.Cache.FirstOrDefault(x => x.ID == item.TemplateID); if (template != null) { client.Account.Points -= price; Communication.Realm.Communicator.Server.MainRealm.SendMessage(new Communication.Realm.Packet.ClientShopPointUpdateMessage(client.Account.Username, client.Account.Points)); Database.Records.WorldItemRecord gItem = Helper.ItemHelper.GenerateItem(client, template.ID); if (Helper.ItemHelper.CanCreateStack(gItem.Template)) { client.Character.Items.AddItem(gItem, false, 1); } else { client.Character.Items.AddItem(gItem, true, 1); } Logger.WriteLine("Le compte '" + client.Account.Username + "' a acheter un objet a " + price + " points (" + template.Name + ") a " + DateTime.Now.ToString()); client.Action.SystemMessage("<b>Felicitations !</b> L'objet <i>" + template.Name + "</i> est desormais dans votre inventaire ! Il vous reste <b>" + client.Account.Points + "</b> " + Utilities.ConfigurationManager.GetStringValue("ShopPointName")); } } else { client.Action.SystemMessage("Il vous manque <b>" + (price - client.Account.Points) + "</b> " + Utilities.ConfigurationManager.GetStringValue("ShopPointName") + " pour acheter ceci !"); } } else { client.Action.SystemMessage("L'achat <b>n" + id + "</b> n'existe pas !"); } } else { client.Action.SystemMessage("Le serveur de connexion n'est pas disponible pour enregistrer votre achat, veuilliez essayer ulterieurement !"); } } }
public static Database.Records.WorldItemRecord GenerateItem(int templateID) { 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 = -1; item.Effects = item.Engine.StringEffect(); item.Position = -1; item.Quantity = 1; return(item); } catch (Exception e) { Utilities.ConsoleStyle.Error("Cant generate items : " + e.ToString()); return(null); } }