-
Notifications
You must be signed in to change notification settings - Fork 191
Lobby id and its application #9
Comments
Take a look at To laucnh practice lobby you must have at least 1 player on a team, then use the function that you already have |
The problem I have is, when I launch the practice lobby with the bot as spectator, the game fails to load because of course the bot is not actually in the game so can't load. Launching the practice lobby via the bot is useless because of this. |
Even after I send the bot to a broadcast channel I still get "INVALID_LOBBY" response when I try to launch it. |
With regards to launching lobbies, you are both correct in that the library currently does not support this - refer to issue #10 for discussion on that With regards to joining a lobby's chat, you will need to specify that you're joining a lobby via the second argument - |
I didn't even realize nethook existed, I will try to play around with it, thanks! |
OK, I have a new question. |
No, the bot cannot connect to servers, see issue #10. As for getting lobby details, just feed it some lobby match ids and see what happens. I don't think you can view info on other peoples lobby games, but I'm not sure. |
There is an option in the lobby settings to enable or disable spectators. So private lobbies are spectatable (that is how tournaments work) |
I mean send a |
I'm not sure what you mean with regards to the hexadecimal and decimal comments, 0x653829 is 6633513, not the long number in the channel_name. The response object is giving you the channel_name property because there is likely no correlation between lobby id and lobby chat id, so you just want to use that property - no need to do anything complicated. You're also not telling the GC servers that you're trying to join a lobby chat, not a regular chat, which is why it was creating a new room. Try
|
The ID I read from the ingame console using Now I tried your code and couldn't make it work. Fiddling around I found that must be because of the "DOTA_JOIN_RESULT_ALREADY_IN_GAME" message, which is a bad practiceLobbyJoinResponce and wasn't emitting anything. Inside lobbies.js handlers I added |
Well, creating the launch method is not actually a big deal. |
I would say this is all fixed now with my latest patch. I've brought up some other questions in other issues. |
Considering the last update from kidovate we now have the lobby id and the game server the bot has to connect to. In order to make it work and not fail to load all the time we need to create a new udp connection to that ip:port and send a message. This message is probably a "keep alive" type message and we have to send it until the game says connected. I'm not sure this is what has to be done but maybe some1 can help and dissect the packages from/to the game server itself. |
@AncientiCe i'm also looking into that kind of feature, i'm new in that field but i'm happy to help, lemme know if i can help you work that out |
@AncientiCe @bontscho It's a regular Source engine multiplayer server. Just look at the Source SDK (source code of the Source engine) https://github.com/ValveSoftware/source-sdk-2013 and write a super lightweight client. Name it something like node-source. |
Will see what i can do with it. For the moment I've started to dissect the packages. |
Failed to load the SDK @kidovate mentioned. Anyone did this? Not a VS fan. |
Update:
connect 146.66.152.163:28024 Dota 2 |
Hi all! I'm new in this stuff and have one question: how you dump queries? |
Why would you not make a new issue... or even google it? http://bit.ly/1l2kB2h |
I've been busy past days. Me and a friend have been working to dissect the game server messages. |
I asked how you dump net packets from dota2 client to gc for use in protobuf... |
You use nethook and nethook analyser for that. https://github.com/SteamRE/SteamKit/tree/master/Resources/NetHook2 There may be a guide somewhere, but you essentially need winject to inject the nethook and look at the queries the dota client makes, |
Anyone got anywhere with this issue? |
Yes, my patch gave the ability to read the lobby ID on the OnCreated event |
This issue can be closed |
This still doesn't allow the game to run when launched. It fails because the bot as spectator doesn't connect to the game server. It was mentioned in the previous comments. |
i think we should wrap this up and spawn separate issues instead of mixing a lot of topics into one big issue @AncientiCe in terms of connecting to the game it's safe to say that node-dota2 won't be able to realize that in the near future (if at all), it's source multiplayer. if you wish to discuss this further, please do so in its own issue. as of for the original issue, this has been resolved thanks to @kidovate |
I am testing bots capabilities in regards of lobbies.
First thing I noticed is that when I bot creates a lobby the bot is present in "unassigned players", but he is not inside the lobby chat channel.
Code such as
Dota2.joinChat("Lobby");
doesn't work.Using the ingame console command
dota_lobby_debug
I can find the lobby id.I added some functions to steam messaging the bot using
bot.on('message')
event listener. preciselyWorks on existing chat channels. This way I tried using the lobby ID as a chat channel name to join, but without success.
In addition I tried to make my own function to start lobbies (without success so far)
Consulting dota_gcmesages.desc and gcsdk_gcmessages.desc, and copying some functions from lobbies.js I wrote this:
I enter the bot-created-lobby with my real account, join a side and add a pasive bot to the other side. When the function fires I get this in the console
My thought - I need to add some lobby details to the payload that is being sent. Not sure if that has to be the lobby id, or not or how to present the data to be serialized.
My questions right now:
Does GC provide the lobby id somewhere so I don't have to find it manually?
How do I make the PracticeLobbyLaunch message valid?
I will search for a dota 2 ingame console command for a list of joined channels. That should reveal the lobby chat channel name, I bet it is something like 0052534e8e679ff8_lobby or something.
The text was updated successfully, but these errors were encountered: