0

Jassecar の SteamBot で、defindex が異なるアイテムをカウントして合計する方法はありますか? 私はこれを試しました:

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 スクラップ (5000 のアイテム Defindex) と 1 つの精錬された金属 (5002 のアイテム Defindex) を両方とも 9 としてカウントし、10 しか追加しなかったところに合計 18 のスクラップを追加したことをユーザーに伝えます (1 精錬 = 9スクラップ)

4

1 に答える 1

2

idのを反復処理していますTrade.OtherOfferedItems

エラー #1totalScrapに設定することにより、 クリアしているループのすべての繰り返しで0

エラー#2 ここに:

`totalScrap = items.Count * 9`

「スクラップの総量は私のアイテムの量に 9 を掛けたものです」と言っていますが、これは間違っています。なぜなら、Defindexes が異なる可能性のある 2 つのアイテム (あなたの場合は 5002 と 5000) がある場合、18 になるからです。

エラー#3 次に、次のようになります。

Trade.RemoveAllItems();

これにより、実際に反復しているコレクションからすべてのアイテムが削除されると思います-ループがクラッシュしないことに本当に驚いています。totalScrap外側を入れます。すべてのアイテムを繰り返し処理し、すべてのクリア、削除、および合計が 31 を超えるかどうかのチェックを行います。

于 2014-05-06T10:56:06.087 に答える