-
Posts
3591 -
Joined
-
Last visited
Everything posted by Dr. McKay
-
Question about offer.getExchangeDetails
Dr. McKay replied to manic's topic in node-steam-tradeoffer-manager
Steam should not allow a trade offer to be canceled while it is in the middle of committing. Those cases are most likely because Steam ran into an error while committing the trade and rolled back the items it had already transferred. -
Question about offer.getExchangeDetails
Dr. McKay replied to manic's topic in node-steam-tradeoffer-manager
You're correct, there will only be a tradeID if the recipient attempted to accept the offer. A situation where there might be a tradeID but the trade did not happen is an error in Steam when attempting to commit the trade, or an escrow cancellation. I believe that if Steam has an error and rolls back, the trade offer state will go to InvalidItems since the rollback will change the item IDs (for most games). But if it's an escrow cancellation, the trade offer state will be Canceled and escrowEnds will not be null, which allows you to differentiate between cancellations by the sender and escrow cancellations. There's no way to tell which side canceled the trade in escrow though, but you presumably know whether you did it or not. -
Unfortunately not.
-
The GC can get confused if you disconnect. It may work better for you if you quit CS:GO with gamesPlayed([]), wait 5 seconds or so, then log off.
-
Sorry, the docs are unclear on this. You want to do this: csgo.on('accountData', (accountData) => { console.log(accountData); }); The accountData property only gets set after all accountData event listeners have returned.
-
No, it needs to actually connect to the Steam network so it's not going to work with OpenID. You can't, you need to retrieve the image from the community site.
-
https://github.com/DoctorMcKay/node-steam-user#getpersonassteamids-callback
-
Interesting, I wasn't aware of that behavior.
-
Difficulty Sending Trade Offers
Dr. McKay replied to PapaCthulhu's topic in node-steam-tradeoffer-manager
You need parenthesis to actually call the send method, like offer.send() -
Have you tried deleting them one by one?
-
Assuming we're talking about Valve games and games using Steam Inventory Service (which is not all games on Steam), asset IDs change when: The item is traded The item is modified (e.g. painted in TF2, renamed in TF2/CSGO) The item is attempted to be traded but the trade fails and is rolled back There are probably also a few other weird cases where an asset ID changes because this is Valve we're talking about.
-
That's a different issue. You can only have one logon instance playing a game at the same time, but if you get booted off with error LoggedInElsewhere from simply logging in and not launching a game, then modify logonID in the steam-user logOn method, which will update that obfuscated_private_ip field. Steam only allows one logon session from the same public IP with the same private IP, presumably to boot off ghost sessions if the client crashes or something. This has the side-effect of booting any other session off of Steam if you have two computers on the same public IP with network adapters that share the same private IP, even if that's not the adapter Steam uses to actually access the internet. If Steam happens to choose the wrong adapter and that IP is shared between two computers, only one of them will be able to log on at the same time. This can happen if you're running VirtualBox, Hyper-V, or some other hypervisor on both machines and you have a VM-internal network interface on both machines with the same IP.
-
The "a" instead of "U" means you logged on anonymously. Most things, including requesting persona data, don't work when logged on anonymously.
-
There should be no need to send Steam cookies to a non-Steam domain.
-
What's the URL? Cookies are only sent for the appropriate domains.
-
steam-user does not support running in a node-enabled electron renderer. You should run steam-user in the main process and expose a communication channel between the renderer and the backend. I've not done any serious work in electron, so I can't tell you how exactly to achieve this.
-
What exact issues is it showing?
-
Check out the steamGuard event. You will want to listen for this, and if lastCodeWrong is true, then wait 30 seconds before generating a new code (or manually specify an offset of at least 30 seconds, but not so much that the code is too far in the future).
-
I don't really know an awful lot about TypeScript, but my guess would be that something with TS is causing that error. TradeOffer is a function, which should not have any problems being used as a constructor, but maybe TS sees that it's not an ES6 class and decrees that it shouldn't be used as a constructor. What node version are you using?
-
It's all good. I'm on vacation right now which is why I hadn't gotten around to looking at that yet. I'll see about pushing out an update a bit later.
-
My mistake; you pass the request into the SteamCommunity constructor, then pass that SteamCommunity instance to the TradeOfferManager constructor as the community property.
-
Yes, you won't really be able to run more than 10-15 bots on a single IP. You'll need to use proxies or multiple IPs on your machines. You can have steam-tradeoffer-manager use a proxy by setting a request instance with a proxy set using request.defaults to the TradeOfferManager constructor.
-
Yes, an empty string or other falsy value is effectively the same as omitting the property entirely.
-
Yeah, the data is only stored locally by the module. It doesn't go to Steam. If you want to pass data to another account with a trade offer, you're best off putting it in the offer message, although be aware that it's very limited in terms of character capacity.
-
I believe it's only possible for storage units in your own inventory.