Jump to content
McKay Development

Dr. McKay

Administrator
  • Posts

    3651
  • Joined

  • Last visited

Everything posted by Dr. McKay

  1. Firstly, you need to understand that Steam is completely awful, horrible, and unreliable. It depends on how quickly you need to process offers. If you're going to be acting on offers that users send to you or on offers that you send where you receive items, then a higher interval is fine if you provide a node-steam-user object, which provides notifications. Generally, 30 seconds is enough but you can go down to 5 or 10. How frequently are you getting errors, and what do they say? If they're extremely frequent, then there's probably something wrong on your end. More inventory capacity is the primary benefit of getting more bots, but you also need to keep in mind that you can only have 30 outgoing active offers at a time. If you need to have more active trade offers, then you need more bots. Performance-wise, there isn't really a difference. It's mostly just because cases are plentiful and mostly worthless. Banning them keeps inventory space available for items that are worth more. It comes down to preference and user experience. Personally, I think that having the user pick their items on your site and then having your bot send them an offer is the best way. This ensures that you have the user's valid trade URL. It also ensures that the user can only create an offer using items that you allow. If you have the user send you the offer, they can put anything into it and you'll just have to decline/counter invalid trades. As far as downsides, doing it this way means that you need to load users' inventories on your end. Loading inventories is pretty heavily rate-limited by Steam by IP.
  2. When an offer is countered, the original goes into state 4, and a new, unlinked offer is created and sent to you. It shows up in the newOffer event. There isn't any way to link a specific offer to its counter.
  3. Your accountid is a string and not a number. While that should probably be allowed, that's currently not supported. I've made a note of this.
  4. Or to have one server with several IPs and change the localAddress.
  5. https://github.com/DoctorMcKay/node-steam-tradeoffer-manager/wiki/TradeOfferManager#getescrowdurationsteamid-token-callback
  6. Yes. It has the IP rate-limit I mentioned above.
  7. Yes. Offer data is stored in poll data, so as long as you're saving and restoring poll data, then the offer's data should be available forever.
  8. I've never experienced a persona data being unavailable. Is there any specific condition which makes it unavailable, or are you talking about just regular Steam failures?
  9. If you're sending like 20 offers per second then there might be an issue, but I highly doubt you have that kind of volume. It's not difficult to just manually download https://steamcommunity.com/profiles/[steamid]/inventory/json/[appid]/[contextid]in whatever language and parse it.
  10. Two things: Sometimes confirmations just don't show up at all. That's just Steam being Steam. See #27. 2000ms is really low for polling. The recommended minimum is 10,000ms for a reason.
  11. You'd need probably 5 IPs. Not necessarily 5 bots, but 5 IPs. You also don't really need a bot to get an inventory.
  12. You need to confirm them. You can use node-steamcommunity's confirmation stuff for this.
  13. It depends on how frequently you'll need to load inventories. If you need to load more than say 2 inventories per minute, you'll get rate-limited pretty hard if you try to do that from one IP.
  14. No, there's a device ID parameter in the URL for all confirmation HTTP requests. As I said, if you're using my libraries then they transparently take care of it for you.
  15. I don't imagine there's a massive difference unless you're doing heavy overhead tasks.
  16. That error means that your account is limited. Steam was incredibly, incredibly broken yesterday and the night before and was limiting people it shouldn't have been. If your account shouldn't be limited, then try logging into it from a real Steam client, then restart your bot.
  17. To be more specific (and I should really make some kind of wiki with this information), classid and instanceid are used to identify a description, not an item. A description is the item's display information. Two identical items will most likely have identical classid/instanceid; this means that using classid and instanceid to track a specific unique item really won't work. It would be like trying to use a car's make, model, and color to track that unique car. Sure you'll get close, but you won't always find that exact car. You want its license plate or VIN for that (assetid).
  18. I haven't seen any issues like this. What's your polling interval set to? Can you attach a listener to the "debug" event and print that to the console? manager.on('debug', console.log);
×
×
  • Create New...