Пример #1
0
 public static void HandleExchangeObjectMoveMessage(WorldClient client, ExchangeObjectMoveMessage message)
 {
     if (client.Character.IsInExchange())
     {
         client.Character.Exchanger.MoveItem(message.objectUID, message.quantity);
     }
 }
        public static void HandleExchangeObjectMove(ExchangeObjectMoveMessage message, WorldClient client)
        {
            switch (client.Character.ExchangeType)
            {
            case ExchangeTypeEnum.PLAYER_TRADE:
                client.Character.PlayerTradeInstance.MoveItem(message.objectUID, message.quantity);
                break;

            case ExchangeTypeEnum.CRAFT:
                client.Character.CraftInstance.MoveItem(message.objectUID, message.quantity);
                break;

            case ExchangeTypeEnum.BIDHOUSE_SELL:
                client.Character.BidShopInstance.MoveItem(message.objectUID, message.quantity);
                break;

            case ExchangeTypeEnum.STORAGE:
                client.Character.BankInstance.MoveItem(message.objectUID, message.quantity);
                break;

            case ExchangeTypeEnum.RUNES_TRADE:
                client.Character.SmithMagicInstance.MoveItem(message.objectUID, message.quantity);
                break;
            }
        }
Пример #3
0
        public void Init()
        {
            int quantity  = 0;
            int objectUID = 0;

            foreach (BlueSheep.Core.Inventory.Item item in account.Inventory.Items)
            {
                bool isFood = false;

                foreach (Pet pet in account.petsList)
                {
                    foreach (Food food in pet.FoodList)
                    {
                        if (item.UID == food.Informations.UID)
                        {
                            isFood = true;
                            break;
                        }
                    }
                }

                if (isFood)
                {
                    quantity  = item.Quantity;
                    objectUID = item.UID;
                    break;
                }
            }

            if (objectUID == 0)
            {
                account.Running.GettingFoodFromSafe();
                return;
            }

            account.Running.OnLeaving = true;

            ExchangeObjectMoveMessage exchangeObjectMoveMessage =
                new ExchangeObjectMoveMessage(objectUID, quantity);

            using (BigEndianWriter writer = new BigEndianWriter())
            {
                exchangeObjectMoveMessage.Serialize(writer);

                MessagePackaging messagePackaging = new MessagePackaging(writer);

                messagePackaging.Pack((int)exchangeObjectMoveMessage.ProtocolID);

                account.SocketManager.Send(messagePackaging.Writer.Content);
                account.LastPacketID.Clear();
            }
        }
Пример #4
0
        public void Init()
        {
            account.Running.OnGetting = true;

            List <int> foodIndex = Foods.GetFoods(account.petsList[account.Running.CurrentPetIndex].Informations.GID);

            ObjectItem objectItem = null;

            foreach (ObjectItem item1 in account.SafeItems)
            {
                if (foodIndex.Contains(item1.ObjectGID))
                {
                    objectItem = item1;
                }
            }

            if (objectItem == null)
            {
                account.Running.NoFood();
                return;
            }

            int abbleWeight = account.Pods.WeightMax -
                              account.Pods.Weight - 1;
            //return;
            DataClass item         = GameData.GetDataObject(D2oFileEnum.Items, objectItem.ObjectGID);
            int       objectWeight = (int)item.Fields["realWeight"];
            int       quantity     = abbleWeight / objectWeight;

            if (objectItem.Quantity < quantity)
            {
                quantity = objectItem.Quantity;
            }

            ExchangeObjectMoveMessage exchangeObjectMoveMessage =
                new ExchangeObjectMoveMessage(objectItem.ObjectUID, -quantity);

            using (BigEndianWriter writer = new BigEndianWriter())
            {
                exchangeObjectMoveMessage.Serialize(writer);

                MessagePackaging messagePackaging = new MessagePackaging(writer);

                messagePackaging.Pack((int)exchangeObjectMoveMessage.ProtocolID);

                account.SocketManager.Send(messagePackaging.Writer.Content);
                account.LastPacketID.Clear();
            }
        }
 public static void HandleExchangeObjectMoveMessage(WorldClient client, ExchangeObjectMoveMessage message)
 {
     if (client.Character.IsTrading())
     {
         client.Character.Trader.MoveItem((int)message.objectUID, message.quantity);
     }
     else
     {
         if (client.Character.IsInMerchantDialog() && message.quantity <= 0)
         {
             MerchantItem merchantItem = client.Character.MerchantBag.TryGetItem((int)message.objectUID);
             if (merchantItem != null && client.Character.MerchantBag.MoveToInventory(merchantItem))
             {
                 client.Send(new ExchangeShopStockMovementRemovedMessage(message.objectUID));
             }
         }
     }
 }
Пример #6
0
        public void Init()
        {
            int quantity  = 0;
            int objectUID = 0;

            foreach (BlueSheep.Core.Inventory.Item item in account.Inventory.Items)
            {
                bool isFood = false;

                foreach (Pet pet in account.petsList)
                {
                    foreach (Food food in pet.FoodList)
                    {
                        if (item.UID == food.Informations.UID)
                        {
                            isFood = true;
                            break;
                        }
                    }
                }

                if (isFood)
                {
                    quantity  = item.Quantity;
                    objectUID = item.UID;
                    break;
                }
            }

            if (objectUID == 0)
            {
                account.Running.GettingFoodFromSafe();
                return;
            }

            account.Running.OnLeaving = true;

            ExchangeObjectMoveMessage exchangeObjectMoveMessage =
                new ExchangeObjectMoveMessage((uint)objectUID, quantity);

            account.SocketManager.Send(exchangeObjectMoveMessage);
            account.LastPacketID.Clear();
        }
Пример #7
0
 public static void HandleExchangeObjectMove(ExchangeObjectMoveMessage message, WorldClient client)
 {
     client.Character.GetDialog <Exchange>().MoveItem(message.objectUID, message.quantity);
 }