2017-01-19 9 views
1

저는 CS : GO 도박 사이트에 NodeJS Steam 봇을 개발하여 문제가 있습니다. 봇이 CS : GO 항목/스킨 (CS : GO appID는) 만 허용하기를 원합니다. 나는 그것이 appID와 관련이 있다는 것을 알고있다.Steam NodeJS는 X appID 항목이있는 거래 만 허용합니다.

나는 무역 제안으로 node-steam-tradeoffer-manager을 사용하고 있습니다. 거래 받아

내 현재 코드 :

manager.on('newOffer', (offer) => { 
var userID = offer.partner.getSteamID64(); 
var offerID = offer.id; 

var prefix = time + " || " + 'Trade: #' + offerID + ' || '; 

console.log(prefix + "from " + userID); 

offer.getUserDetails((err, me, them) => { 
    if (err) { 
    console.log(err); 
    return; 
    } 

    if (them.escrowDays > 0) { 
    console.log(prefix + 'User has escrow! Declining!'); 

    offer.decline((err) => { 
    if (err) { 
    console.log(prefix + 'Error declining offer!'); 
    return; 
    } 
    }); 
    } else { 
    if (offer.itemsToGive.length == 0) { 
    var userAmount = priceItemsInOffer(offer.itemsToReceive) * 1000; 

     if(userAmount < config['minDeposit']){ 
      console.log(prefix + "User deposit skin that costs less than 100 Credits!"); 

     offer.decline((err) => { 
     if (err) { 
     console.log(prefix + 'Error declining offer!'); 
     return; 
     } 
     }); 

     } 
     else{ 
    console.log(prefix + 'User deposited ' + userAmount); 

    var insertDeposit0 = { 
        user: userID, 
        amount: userAmount, 
        offerID: offerID, 
        status: 0, 
        time: time 
       }; 
    var query = connection.query('INSERT INTO deposits SET ?', insertDeposit0, function(err, result) { 
     // Neat! 
    }); 

    offer.accept((err, status) => { 
    if (err) { 
     console.log(prefix + 'Error accepting offer!' + err.message); 

     connection.query('UPDATE deposits SET ? WHERE ?', [{ status: 1 }, { offerID: offerID }]) // 1 ERROR ACCEPTING 

     return; 
    } else { 
     community.checkConfirmations(); 

     console.log(prefix + "Accepted!"); 

      connection.query('UPDATE deposits SET ? WHERE ?', [{ status: 2 }, { offerID: offerID }]) // 2 ACCEPTED 
    } 
    }); 
    } 
    } else if (offer.itemsToGive.length > 0) { 
    console.log(prefix + "User asked skins from us! Declining offer."); 

    offer.decline((err) => { 
    if (err) { 
     log(prefix + 'Error declining offer!'); 
     return; 
    } 
    }); 
    } 
    } 
}); 
}); 

답변

0

것은 당신이 노드 증기 tradeoffer 매니저를 사용하고 있기 때문에, 당신은 CEconItem와 상호 작용 일반적으로 다음과 같습니다

https://github.com/DoctorMcKay/node-steam-tradeoffer-manager/wiki/EconItem https://github.com/DoctorMcKay/node-steamcommunity/wiki/CEconItem

CEconItemappid 속성을 포함합니다.

DoctorMcKay/노드 steamcommunity/위키/CEconItem 번호가 그래서 함께이를 만들어 보자

(나는 2 개 이상의 링크를 게시 할 수있는 충분한 담당자가없는) 을 APPID :

  • offer.itemsToGive를 - 배열입니다 CEconItem의 (당신)
  • offer.itemsToReceive - 같은 (그러나 그들의) 모든 항목이 CS에서 경우

확인하려면 : GO, 당신은 간단하게 할 수있는 :

const allItemsAreFromCSGO = offer.itemsToReceive.every(item => item.appid === 570);