0

在 Jassecar 的 SteamBot 中,有没有办法计算不同定义索引的项目并将它们相加?我试过这个:

switch(message.ToLower())
{
    case "ticket":
        foreach (ulong id in Trade.OtherOfferedItems)
        {
            int totalScrap = 0;
            Trade.SendMessage("Please pay 3.44 ref");

            var items = Trade.OtherOfferedItems;
            var itemType = Trade.OtherInventory.GetItem(id);

            if (itemType.Defindex == 5002)
            {
                totalScrap = items.Count * 9;
            }
            else if (itemType.Defindex == 5001)
            {
                totalScrap = items.Count * 3;
            }
            else if (itemType.Defindex == 5000)
            {
                totalScrap = items.Count;
            }


            Trade.RemoveAllItems();
            if (totalScrap > 31)
            {
                Trade.AddItemByDefindex(725);
                int Change = 31 - totalScrap;
                while(Change > 0)
                {
                    Trade.AddItemByDefindex(5000);
                    Change - 1;
                }
            }
            else
            {
                Trade.SendMessage("You have only added a total of " + totalScrap + " Scrap, please put up the correct amount and type ticket again");
            }
        }

        break;

但它会将 1 个废料(项目 Defindex 为 5000)和 1 个精炼金属(项目 Defindex 为 5002)计为 9,并告诉用户他总共添加了 18 个废料,而他只添加了 10 个。(1 个精炼 = 9废料)

4

1 回答 1

2

您正在迭代id's in Trade.OtherOfferedItems

错误#1 在您清除的循环的每次迭代中totalScrap,将其设置为0.

错误#2 在这里:

`totalScrap = items.Count * 9`

你说“废料的总量是我的物品的数量乘以 9”这是错误的,因为如果你有 2 个可能不同Defindexes 的物品(在你的情况下是 5002 和 5000),它会给你 18。

错误#3 然后你得到:

Trade.RemoveAllItems();

我想这会从你实际迭代的集合中删除所有项目 - 我真的很惊讶你的循环不会崩溃。放在totalScrap外面。遍历每个项目,然后执行所有清除、删除和检查总和是否>31。

于 2014-05-06T10:56:06.087 回答