-2

わかりましたので、オファーの状態が正しい場合に取引を受け入れて拒否するスチームボットからのコードがあります。しかし、私に物をくれる取引の申し出は受け入れるが、他の誰かが物を求めて行う取引の申し出は拒否するようにしたい.

      if(body.response.trade_offers_received){
    body.response.trade_offers_received.forEach(function(offer) {

      if (offer.trade_offer_state == 2){
          offers.acceptOffer({tradeOfferId: offer.tradeofferid});
          }
        else {
          offers.declineOffer({tradeOfferId: offer.tradeofferid});
        }
      }
    );
  }
4

1 に答える 1

2

コードの基になっているボットは正確にはわかりませんが、取引オファーのSteam APIを調べた後、「 items_to_give 」という配列が存在するはずです。これは、受け入れる前に空かどうかを確認できます。

if (offer.trade_offer_state === 2 && (!offer.hasOwnProperty("items_to_give") || offer.items_to_give.length === 0)){

したがって、上記では、「items_to_give」キーがないかどうかを確認します。これは、何も与えていない場合には存在しません。次に、後で Steam が API に空のキーを含めることを決定した場合に備えて、アイテムが含まれていないことを 100% 確認します。

Steam API をもう一度見てみると、TradeOfferStateCountered(4) もチェックしておけば、カウンター オファーも受け入れることができるので、コードを改善できると思います。これがそのコードです

if ((offer.trade_offer_state === 2 || offer.trade_offer_state === 4) && (!offer.hasOwnProperty("items_to_give") || offer.items_to_give.length === 0)){
于 2015-03-20T00:23:06.043 に答える