Beispiel #1
0
        public async void OnCommand(IAccount account, string[] args)
        {
            try
            {
                if (args.Length < 1)
                {
                    Logger.Default.Log("Vous devez spécifier l'id de l'item à chercher", LogMessageType.Error);
                }
                else
                {
                    var itemid = Convert.ToUInt32(args[0]);

                    var hdv = new BidHouse(account);
                    if (!await hdv.StartBidHouseDialog())
                    {
                        return;
                    }
                    if (!await hdv.LoadItemData(itemid))
                    {
                        return;
                    }

                    var prices = hdv.ItemPricesList.FirstOrDefault();
                    Logger.Default.Log(
                        $" Prix de {D2OParsing.GetItemName(itemid)} => 1:{prices[0]}-  10:{prices[1]} - 100:{prices[2]} - Mean:{hdv.MeanPrice}");

                    hdv.ExitBidHouseDialog();
                }
            }
            catch (Exception ex)
            {
                Logger.Default.Log($"{CommandSufix} Error : {ex.Message}", LogMessageType.Error);
                Logger.Default.Log($"{CommandSufix} StackTrace : {ex.StackTrace}", LogMessageType.Error);
            }
        }
Beispiel #2
0
        private async Task <bool> RequestItemType(uint itemId)
        {
            /* Check if item exists in Bid House */
            var itemType = ObjectDataManager.Instance.Get <Item>(itemId).TypeId;

            if (!_itemTypesInBidHouse.Contains(itemType))
            {
                throw new Exception(
                          $"L'item {D2OParsing.GetItemName(itemId)} ({itemId}) n'existe pas dans cet hôtel de vente.");
            }

            var itemsTypeMessage = new ExchangeBidHouseTypeMessage
            {
                Type = itemType
            };

            Logger.Default.Log(
                $"Sélection de la catégorie {FastD2IReader.Instance.GetText(ObjectDataManager.Instance.Get<ItemType>(itemType).NameId)} ({itemType}).",
                LogMessageType.Info);

            if (!await SendAndWait(itemsTypeMessage, 3000))
            {
                throw new Exception(
                          $"Erreur lors de la sélection de la catégorie {FastD2IReader.Instance.GetText(ObjectDataManager.Instance.Get<ItemType>(itemType).NameId)} ({itemType}).");
            }

            /* Check if item exists in items list */
            if (!_itemListInBidHouse.Contains(itemId))
            {
                throw new Exception(
                          $"L'item {D2OParsing.GetItemName(itemId)} ({itemId}) n'est pas actuellement en vente dans cet HDV.");
            }

            return(true);
        }
Beispiel #3
0
 private void HandleExchangeObjectModifiedMessage(IAccount account, ExchangeObjectModifiedMessage message)
 {
     Logger.Default.Log(
         message.Remote
             ? $"L'échangeur a modifié le nombre de {D2OParsing.GetItemName(message.Object.ObjectGID)} en x{message.Object.Quantity}"
             : $"Vous avez modifié le nombre de {D2OParsing.GetItemName(message.Object.ObjectGID)} en x{message.Object.Quantity}",
         LogMessageType.Info);
 }
Beispiel #4
0
 private void HandleExchangeObjectAddedMessage(IAccount account, ExchangeObjectAddedMessage message)
 {
     Logger.Default.Log(
         message.Remote
             ? $"L'échangeur a ajouté {D2OParsing.GetItemName(message.Object.ObjectGID)} x{message.Object.Quantity} à l'échange"
             : $"Vous avez ajouté {D2OParsing.GetItemName(message.Object.ObjectGID)} x{message.Object.Quantity} à l'échange",
         LogMessageType.Info);
 }
Beispiel #5
0
 private void ExchangeObjectAddedMessageHandler(DofusClient client, ExchangeObjectAddedMessage message)
 {
     client.Logger.Log(
         message.Remote
             ? $"L'échangeur a ajouté {D2OParsing.GetItemName(message.Object.ObjectGID)} x{message.Object.Quantity} à l'échange"
             : $"Vous avez ajouté {D2OParsing.GetItemName(message.Object.ObjectGID)} x{message.Object.Quantity} à l'échange",
         LogMessageType.Info);
 }
Beispiel #6
0
        private void HandleExchangeBidHouseItemAddOkMessage(IAccount account, ExchangeBidHouseItemAddOkMessage message)
        {
            var unsoldDelayHours = message.ItemInfo.UnsoldDelay / 3600;
            var objectGID        = message.ItemInfo.ObjectGID;
            var objectName       = D2OParsing.GetItemName(objectGID);
            var quantity         = message.ItemInfo.Quantity;
            var objectPrice      = message.ItemInfo.ObjectPrice;

            Logger.Default.Log($"{quantity}x{objectName} mis vente en HDV pour {objectPrice} kamas et pour une durée de {unsoldDelayHours}h");

            _bidHouseActionEvent.Set();
        }
Beispiel #7
0
 private void ExchangeObjectModifiedMessageHandler(DofusClient client, ExchangeObjectModifiedMessage message)
 {
     if (message.Remote)
     {
         client.Logger.Log(
             $"L'échangeur a modifié le nombre de {D2OParsing.GetItemName(message.Object.ObjectGID)} en x{message.Object.Quantity}",
             LogMessageType.Info);
     }
     else
     {
         client.Logger.Log(
             $"Vous avez modifié le nombre de {D2OParsing.GetItemName(message.Object.ObjectGID)} en x{message.Object.Quantity}",
             LogMessageType.Info);
     }
 }
Beispiel #8
0
        private bool RequestItemType(uint itemId)
        {
            /* Check if item exists in Bid House */
            var itemType = ObjectDataManager.Instance.Get <Item>(itemId).TypeId;

            if (!_itemTypesInBidHouse.Contains(itemType))
            {
                ExitBidHouseDialog();
                throw new Exception(
                          $"L'item {D2OParsing.GetItemName(itemId)} ({itemId}) n'existe pas dans cet hôtel de vente.");
            }

            var itemsTypeMessage = new ExchangeBidHouseTypeMessage
            {
                Type = itemType
            };

            _account.Network.SendToServer(itemsTypeMessage);
            Logger.Default.Log(
                $"Sélection de la catégorie {FastD2IReader.Instance.GetText(ObjectDataManager.Instance.Get<ItemType>(itemType).NameId)} ({itemType}).",
                LogMessageType.Info);

            return(true);
        }
Beispiel #9
0
        public async void OnCommand(IAccount account, string[] args)
        {
            try
            {
                if (args.Length < 1 || (args[0] == "list" || args[0] == "exit") && args.Length < 2)
                {
                    Logger.Default.Log("Vous devez spécifier l'id de l'item à chercher", LogMessageType.Error);
                }
                else if (args[0] == "list")
                {
                    account.Character.Inventory.Objects.ForEach(item =>
                                                                Logger.Default.Log(
                                                                    $"{item.Quantity}x{D2OParsing.GetItemName(item.ObjectGID)} ({item.ObjectGID}, {item.ObjectUID})"));
                }
                else if (args[0] == "exit")
                {
                    account.Character.BidHouse.ExitBidHouseDialog();
                }
                else if (args[0] == "price")
                {
                    var itemId = Convert.ToUInt32(args[1]);

                    if (!await account.Character.BidHouse.StartBidHouseDialog(NpcActionId.BID_HOUSE_BUY))
                    {
                        return;
                    }
                    if (!await account.Character.BidHouse.LoadItemData(itemId))
                    {
                        return;
                    }

                    var prices = account.Character.BidHouse.ItemPricesList.FirstOrDefault();
                    Logger.Default.Log(
                        $" Prix de {D2OParsing.GetItemName(itemId)} ({itemId}, {prices.Key}) => (1:{prices.Value[0]}k 10:{prices.Value[1]}k 100:{prices.Value[2]}k) - ~{account.Character.BidHouse.MeanPrice}k");
                }
                else if (args[0] == "sell")
                {
                    var itemId   = Convert.ToUInt32(args[1]);
                    var quantity = Convert.ToInt32(args[2]);
                    var price    = Convert.ToUInt32(args[3]);

                    if (!await account.Character.BidHouse.StartBidHouseDialog(NpcActionId.BID_HOUSE_SELL))
                    {
                        return;
                    }

                    if (!await account.Character.BidHouse.SellItem(itemId, quantity, price))
                    {
                        return;
                    }
                }
                else if (args[0] == "buy")
                {
                    var itemUid  = Convert.ToUInt32(args[1]);
                    var quantity = Convert.ToUInt32(args[2]);

                    if (!await account.Character.BidHouse.StartBidHouseDialog(NpcActionId.BID_HOUSE_BUY))
                    {
                        return;
                    }

                    if (!await account.Character.BidHouse.BuyItem(itemUid, quantity))
                    {
                        return;
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Default.Log($"{CommandSufix} Error : {ex.Message}", LogMessageType.Error);
                Logger.Default.Log($"{CommandSufix} StackTrace : {ex.StackTrace}", LogMessageType.Error);
            }
        }