Incorrect Prices for TradesSolved

We are experiencing an issue with the Vending Machine Logs plugin where it does not accurately reflect the price of certain trades. Specifically, this problem arises when the new variable pricing mechanism for NPC vendors adjusts the price from its default value.

The log still displays the original default price, rather than the actual price paid for the trade. 

Thank you for developing such an awesome and useful plugin! 

Fixed by Lorenzo

Fix for plugin VendingMachineLogs
change line 69 to :
var currencyAmount = VendingMachine.GetTotalPriceForOrder(sellOrder) * numberOfTransactions;

 

 



Merged post

Full Fix (includes when the sold item being dynamically priced is scrap). 

 

private void OnVendingTransaction(VendingMachine machine, BasePlayer player, int sellOrderId, int numberOfTransactions) { if (permission.UserHasPermission(player.UserIDString, BypassPerm)) return; if (_config.IgnoreNonPlayer && machine.OwnerID == 0) return; var sellOrder = machine.sellOrders.sellOrders[sellOrderId]; var currency = sellOrder.currencyID; //var currencyAmount = sellOrder.currencyAmountPerItem * numberOfTransactions; var currencyAmount = VendingMachine.GetTotalPriceForOrder(sellOrder) * numberOfTransactions; var currencyName = ItemManager.FindItemDefinition(currency).displayName.english; var item = sellOrder.itemToSellID; var itemAmount = sellOrder.itemToSellAmount * numberOfTransactions; if (ItemManager.FindItemDefinition(sellOrder.itemToSellID) == NPCVendingMachine.ScrapItem && sellOrder.receivedQuantityMultiplier != 1f) { itemAmount = global::VendingMachine.GetTotalPriceForOrder(itemAmount, sellOrder.receivedQuantityMultiplier); } var itemName = ItemManager.FindItemDefinition(item).displayName.english; SendDiscordMessage(player.displayName, player.UserIDString, itemName, item, currencyName, currency, machine.shopName, itemAmount, currencyAmount, machine.OwnerID.ToString()); }

 



Merged post

   private void OnVendingTransaction(VendingMachine machine, BasePlayer player, int sellOrderId, int numberOfTransactions)
        {
            if (permission.UserHasPermission(player.UserIDString, BypassPerm)) return;
            if (_config.IgnoreNonPlayer && machine.OwnerID == 0) return;
           
            var sellOrder = machine.sellOrders.sellOrders[sellOrderId];
           
            var currency = sellOrder.currencyID;
            //var currencyAmount = sellOrder.currencyAmountPerItem * numberOfTransactions;
            var currencyAmount = VendingMachine.GetTotalPriceForOrder(sellOrder) * numberOfTransactions;
            var currencyName = ItemManager.FindItemDefinition(currency).displayName.english;
                       
            var item = sellOrder.itemToSellID;
            var itemAmount = sellOrder.itemToSellAmount * numberOfTransactions;
            if (ItemManager.FindItemDefinition(sellOrder.itemToSellID) == NPCVendingMachine.ScrapItem && 
                sellOrder.receivedQuantityMultiplier != 1f)
            {
                itemAmount = global::VendingMachine.GetTotalPriceForOrder(itemAmount, sellOrder.receivedQuantityMultiplier);
            }
            var itemName = ItemManager.FindItemDefinition(item).displayName.english;
                       
            SendDiscordMessage(player.displayName, player.UserIDString, itemName, item, currencyName, currency, machine.shopName, itemAmount, currencyAmount, machine.OwnerID.ToString());

        }
Locked automatically