Guida $Buy System

Stato
Discussione chiusa ad ulteriori risposte.

Exco

Utente Gold
8 Agosto 2013
461
53
74
218
System $Buy ITEM Quantità

Installazione:
Aprire CommandPacketHandler.cs
Inserire all'interno la sorgente del codice fornito qui sotto
Salvare il progetto
Prendere il BuyPacket.cs da qui;
C#:
[/CENTER]
////<auto-generated <- Codemaid exclusion for now (PacketIndex Order is important for maintenance)using OpenNos.Core;using OpenNos.Domain;namespace OpenNos.GameObject.CommandPackets{    [PacketHeader("$Buy", PassNonParseablePacket = true, Authority = AuthorityType.User)]    public class BuyPacket : PacketDefinition    {        #region Properties        [PacketIndex(0)]        public string Item { get; set; }        [PacketIndex(1)]        public int Amount { get; set; }        public static string ReturnHelp()        {            return "$Buy <Item> <Amount>";        }        #endregion    }}
 
[CENTER]
Creare un file di nome BuyPacket.cs e inserisci dentro la sorgente
Inserire il BuyPacket.cs dentro la cartella packet del source

Buildare il progetto ed il gioco è fatto!
C#:
[/CENTER]
/// <summary>/// $Buy Packet/// </summary>/// <param name="BuyPacket"></param>public void Buy(OpenNos.GameObject.CommandPackets.BuyPacket buypacket){    try //Not needed but safe is safe    {        if (buypacket != null)        {            if (buypacket.Amount <= 1020)            {                if (buypacket.Item != null && buypacket.Amount != 0)                {                    int Leftover = buypacket.Amount % 255;                    int FulLStacks = buypacket.Amount / 255;                    short BuyVNum = 0;                    switch (buypacket.Item.ToUpper())                    {                        case "CELLA":                            BuyVNum = 1014;                            break;                        case "FULLI":                            BuyVNum = 1244;                            break;                        default:                            return;                    }                    Item iteminfo = ServerManager.Instance.GetItem(BuyVNum);                    if (Session.Character.Gold >= buypacket.Amount * iteminfo.Price)                    {                        for (int i = 1; i <= FulLStacks; i++)                        {                            ItemInstance inv = Session.Character.Inventory.AddNewToInventory(BuyVNum, 255).FirstOrDefault();                            if (inv == null)                            {                                Session.SendPacket(UserInterfaceHelper.Instance.GenerateMsg(Language.Instance.GetMessageFromKey("NOT_ENOUGH_PLACE"), 0));                            }                            else                            {                                Session.SendPacket(Session.Character.GenerateSay($"{Language.Instance.GetMessageFromKey("ITEM_ACQUIRED")}: {iteminfo.Name} x {255}", 12));                                Session.Character.Gold -= 255 * inv.Item.Price;                            }                        }                        if (Leftover > 0)                        {                            ItemInstance inv = Session.Character.Inventory.AddNewToInventory(BuyVNum, (byte)Leftover).FirstOrDefault();                            if (inv == null)                            {                                Session.SendPacket(UserInterfaceHelper.Instance.GenerateMsg(Language.Instance.GetMessageFromKey("NOT_ENOUGH_PLACE"), 0));                            }                            else                            {                                Session.SendPacket(Session.Character.GenerateSay($"{Language.Instance.GetMessageFromKey("ITEM_ACQUIRED")}: {iteminfo.Name} x {Leftover}", 12));                                Session.Character.Gold -= Leftover * inv.Item.Price;                            }                        }                    }                    else                    {                        Session.SendPacket(UserInterfaceHelper.Instance.GenerateMsg(Language.Instance.GetMessageFromKey("NOT_ENOUGH_MONEY"), 0));                    }                    Session.SendPacket(Session.Character.GenerateGold());                }            }        }    }    catch    {        //Put Errorlog here        return;    }}
 
[CENTER]
 
E' una cosa assurdamente facile da creare... lui ti fornisce il codice gratuitamente, cerca di sforzarti per capirlo almeno
 
Stato
Discussione chiusa ad ulteriori risposte.