L-Leite / cso2-launcher

A custom launcher for CSO2
MIT License
111 stars 54 forks source link

Anyway to use the hidden game mode and map without CheatEngine #33

Open GEEKiDoS opened 5 years ago

GEEKiDoS commented 5 years ago

I just tried g_pCSO2GameManager->GetCurrentRoom() but it not returning ICSO2GameRoom, It just returns the id of current room.

dounai2333 commented 5 years ago

game may need to send packet data directly to the server, just like the packets you send when you click on a mode currently, the gamemode has two static base addresses (found through CE), but both are used to verify the data sent back by the server, that means that if the data is not equal, the game will keep trying to get new data from the server, and then lose connection after about 5 seconds because of trying to get too many packets (or because of too many unequal errors)

this means that the all in client modification is impossibility, and I have tried it many times, so it may be necessary to intercept the packet and modify and resend, or send the new packet directly

dounai2333 commented 5 years ago

Do you want to play HNS mode with different maps? To do that, create a HNS lobby then open host console and write "map de_dust2". It will create a game with current lobby settings but on de_dust2

we're talking about "hidden modes", instead of a different map for example, all the modes you can't see when creating a room are "hidden modes", they can't be play in the usual way, check this

GEEKiDoS commented 5 years ago

@Ochii The GetCurrentRoom() in ICSO2GameManager is GetCurrentRoomID, it returns the ID of current room instead of ICSO2GameRoom * And the sub_102950E0() is the GetCurrentRoom(), returns ICSO2GameRoom *

And set something like m_iGameModeId in a ICSO2GameRoom * directly didn't send update packet to the master server. Did you found the function to update the room info to master server and update the ui?

L-Leite commented 5 years ago

@Ochii The GetCurrentRoom() in ICSO2GameManager is GetCurrentRoomID, it returns the ID of current room instead of ICSO2GameRoom * And the sub_102950E0() is the GetCurrentRoom(), returns ICSO2GameRoom *

And set something like m_iGameModeId in a ICSO2GameRoom * directly didn't send update packet to the master server. Did you found the function to update the room info to master server and update the ui?

The ICSO2GameRoom (and other interfaces) definitions are based of the Chinese client.

I haven't looked into sending the room info to master server