コード例 #1
0
        private void ParseCommandItem(string[] datas)
        {
            try
            {
                var item = Entities.Requests.ItemsRequests.ItemsList.First(x => x.ID == int.Parse(datas[1]));

                if (datas.Length == 2)
                {
                    var newItem = new SunDofus.World.Characters.Items.CharacterItem(item);
                    newItem.GeneratItem();

                    Client.Player.ItemsInventary.AddItem(newItem, false);
                    Client.SendConsoleMessage("Item Added !", 0);
                }

                else if (datas.Length == 3)
                {
                    var newItem = new SunDofus.World.Characters.Items.CharacterItem(item);
                    newItem.GeneratItem(int.Parse(datas[2]));

                    Client.Player.ItemsInventary.AddItem(newItem, false);
                    Client.SendConsoleMessage("Item Added !", 0);
                }

                else
                {
                    Client.SendConsoleMessage("Invalid Syntax !");
                }
            }
            catch
            {
                Client.SendConsoleMessage("Cannot parse your AdminCommand !");
                Client.SendConsoleMessage("Use the command 'Help' for more informations !");
            }
        }
コード例 #2
0
        public void MoveItem(SunDofus.World.Characters.Items.CharacterItem item, int quantity, bool add = true)
        {
            if (add)
            {
                Character.ItemsInventary.DeleteItem(item.ID, quantity);

                if (Bank.Items.Any(x => x.EffectsInfos() == item.EffectsInfos() && x.Model.ID == item.Model.ID && x.Position == item.Position))
                {
                    var sameitem = Bank.Items.First(x => x.EffectsInfos() == item.EffectsInfos() && x.Model.ID == item.Model.ID && x.Position == item.Position);
                    sameitem.Quantity += quantity;

                    Character.NClient.Send(string.Concat("EsKO+", sameitem.StorageString()));
                    return;
                }

                var newitem = item.Copy();
                newitem.Quantity = quantity;

                Bank.Items.Add(newitem);
                Character.NClient.Send(string.Concat("EsKO+", newitem.StorageString()));
            }
            else
            {
                var pods = item.Model.Pods * quantity;

                if (pods + Character.Pods > Character.Stats.GetStat(Characters.Stats.StatEnum.MaxPods).Total)
                {
                    Character.NClient.SendMessage("Vous êtes trop lourd pour éxecuter cette action !");
                    return;
                }

                if (quantity == item.Quantity)
                {
                    Bank.Items.Remove(item);
                    Character.NClient.Send(string.Concat("EsKO-", item.StorageString()));
                    Character.ItemsInventary.AddItem(item, false);
                }
                else
                {
                    item.Quantity -= quantity;
                    Character.NClient.Send(string.Concat("EsKO+", item.StorageString()));

                    var newitem = item.Copy();
                    newitem.Quantity = quantity;
                    Character.ItemsInventary.AddItem(newitem, false);
                }
            }
        }