Jump to content
McKay Development

Recommended Posts

Posted
So, i would like to search for specific items (keys).
 
Code:
 
community.getUserInventoryContents(steamid, 730, 2, true, (err, inventory) => {
if (err) {
throw err;
}else{
for(var i = 0, len = inventory.length; i < len; i++){
var itemnames = inventory.market_hash_name;
}
var found = itemnames.search("R8 Revolver | Bone Mask (Well-Worn)");
if(found != -1) {
console.log();
}
console.log(itemnames);
console.log (found);
 
}
 
I would like to write a code which is search for a specific item, then check this item's amount and then do something, but i'm new at nodeJS so i don't know so many things.
Please Help, or give me some docs. Tnanks

 

Posted (edited)

You're very close, here's how I would do it.

//Load the inventory
manager.getUserInventoryContents(steamID, 730, 2, true, function(err, inventory) {
  if(err) {
    console.log('Error getting their inventory: ' + err);
  } else {
    console.log('Checking if user: ' + steamID + ' has any CS:GO keys we accept.');
    for(var n = 0; n < inventory.length; n++) {
      if(config.csgo.acceptedKeys.indexOf(inventory[n].market_hash_name) >= 0) {
        console.log(inventory[n].market_hash_name);
      }
    }
  }
});

acceptedKeys is an array containing all the current CS:GO keys, you can always remove or add keys to meet your needs.

"acceptedKeys": [
  "Glove Case Key",
  "Spectrum Case Key",
  "Gamma 2 Case Key",
  "Clutch Case Key",
  "Huntsman Case Key",
  "Gamma Case Key",
  "Spectrum 2 Case Key",
  "Operation Breakout Case Key",
  "Shadow Case Key",
  "Chroma 3 Case Key",
  "Falchion Case Key",
  "Winter Offensive Case Key",
  "Revolver Case Key",
  "Chroma 2 Case Key"
] 

To store the keys for a possible trade offer, you would have to add them in a new array. Like so: 

(This should be done within the for-loop)

//New empty array
var theirKeys = [];
//Add the keys to our array 
theirKeys.push(inventory[n]);	

After that, you can see how many keys the array contains.

console.log('User has ' + theirKeys.length + ' key(s).');

I would suggest a custom function for easier use.

function checkKeys(steamID) {
  //Their keys in a new array
  var theirKeys = [];
  //Load the inventory
  manager.getUserInventoryContents(steamID, 730, 2, true, function(err, inventory) {
    if(err) {
      console.log('Error getting their inventory: ' + err);
    } else {
      console.log('Checking if user: ' + steamID + ' has CS:GO keys.');
      for(var n = 0; n < inventory.length; n++) {
        if(config.csgo.acceptedKeys.indexOf(inventory[n].market_hash_name) >= 0) {
          theirKeys.push(inventory[n]); 
          console.log(inventory[n].market_hash_name);
        }
      }
      console.log('User has ' + theirKeys.length + ' key(s).');
    }
  });
}

Chat command example:

client.on('friendMessage', function(steamID, message) {
  if(message.match('!check')) {
    client.chatMessage(steamID, 'Handling your request...');
    checkKeys(steamID);
  } else {
  	client.chatMessage(steamID, 'I don\'t know that command.');
  }
});
Edited by SnaBe
Posted

To add an 'x' amount of keys to the array, just add an extra check in the if statement. (The one inside the for-loop)

//Loop
for(var n = 0; n < inventory.length; n++) {
  if(theirKeys.length < amountOfKeysToAddVariable && config.csgo.acceptedKeys.indexOf(inventory[n].market_hash_name) >= 0) {
    theirKeys.push(inventory[n]); 
    console.log(inventory[n].market_hash_name);
  }
}

The item ids are stored inside the theirKeys array, adding them to a trade offer is very simple.

offer.addTheirItems(theirKeys);

I hope this helps!

Posted

Here's how you can check if an offer you sent has been accepted or declined.

//When one of our trade offers changes states.
manager.on('sentOfferChanged', function(offer, oldState) {
  //Alert us when an outgoing offer is accepted.
  if(offer.state == TradeOfferManager.ETradeOfferState.Accepted) {
    console.log('Our offer #' + offer.id + ' has been accepted.');
    client.chatMessage(offer.partner.getSteamID64(), 'Thanks for the trade!');
  } else if(offer.state == TradeOfferManager.ETradeOfferState.Declined) {
    console.log('Our offer #' + offer.id + ' has been declined.');
    client.chatMessage(offer.partner.getSteamID64(), 'If you believe there\'s an error with your trade offer, please contact a staff member.');
  }
});

Posted

Thanks Man. Meanwhile, I realized a few things.

Check if the offer is accepted

And if he/she is accept the offer -> bot receive of course items ->

 

for(var i = 0, len = items.length; i < len; i++){
var itemnames = items.market_hash_name;
}
 
console.log("Received items: " + itemnames);
 
Big Thanks to you man. You helped me so much and i learned so much thing about javascript.
I know it's late, but Happy Christmas & New Year.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...