Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature Request] Cross-game compatibility #975

Closed
SmilexGamer opened this issue Jun 29, 2023 · 13 comments
Closed

[Feature Request] Cross-game compatibility #975

SmilexGamer opened this issue Jun 29, 2023 · 13 comments

Comments

@SmilexGamer
Copy link

As you all know, both Counter-Strike and Condition Zero have the same game dlls and little to no difference in terms of network messages.
With that in mind, I come here to ask you if it would be possible to add a feature that allows a server to accept both cstrike and czero at the same time.

@di57inct
Copy link

++ unite the communities

@StevenKal
Copy link
Contributor

Seems like you would like to see CS v1.6 & CZ users able to join "one server" that could handle both games at the same time.

@SmilexGamer
Copy link
Author

Seems like you would like to see CS v1.6 & CZ users able to join "one server" that could handle both games at the same time.

Yes, that's exactly my request - that is, if possible to be achieved.

@s1lentq
Copy link
Collaborator

s1lentq commented Jul 1, 2023

It's nearly impossible to implement this.
The main difficulty lies in the fact that the mod of the game is checked on the client-side.
When trying to connect to a server with a different game, the client disconnects itself.
From the server-side, this can only be implemented by spoofing the game and also if the client tells the server during the connection stage which game it is running on (e.g., through setinfo), but this does not happen.
Thus, it's impossible.

p.s note that cross-game compatibility can cause issues with mp_consistency 1 due to the different content of the game

@SmilexGamer
Copy link
Author

It's nearly impossible to implement this. The main difficulty lies in the fact that the mod of the game is checked on the client-side. When trying to connect to a server with a different game, the client disconnects itself. From the server-side, this can only be implemented by spoofing the game and also if the client tells the server during the connection stage which game it is running on (e.g., through setinfo), but this does not happen. Thus, it's impossible.

p.s note that cross-game compatibility can cause issues with mp_consistency 1 due to the different content of the game

I see, just a last question - could the server read the client's gamedir cvar and spoof its own game before the client drops the connection?

p.s yes, this feature would only properly work in a server with mp_consistency 0

@s1lentq
Copy link
Collaborator

s1lentq commented Jul 1, 2023

It's nearly impossible to implement this. The main difficulty lies in the fact that the mod of the game is checked on the client-side. When trying to connect to a server with a different game, the client disconnects itself. From the server-side, this can only be implemented by spoofing the game and also if the client tells the server during the connection stage which game it is running on (e.g., through setinfo), but this does not happen. Thus, it's impossible.
p.s note that cross-game compatibility can cause issues with mp_consistency 1 due to the different content of the game

I see, just a last question - could the server read the client's gamedir cvar and spoof its own game before the client drops the connection?

p.s yes, this feature would only properly work in a server with mp_consistency 0

As I said, this can be done only through userinfo, i.e. through setinfo. Based on this, the server can understand who to spoofing the game with cstrike, and who with czero.

@SmilexGamer
Copy link
Author

So why not create a mod for the client as well and those who prefer to play from cszero can install it?

As I said, this can be done only through userinfo, i.e. through setinfo. Based on this, the server can understand who to spoofing the game with cstrike, and who with czero.

So, in a way, it's possible but would require the client to manually set a key on the setinfo to identify which game it's playing - cstrike or czero

@s1lentq
Copy link
Collaborator

s1lentq commented Jul 1, 2023

So why not create a mod for the client as well and those who prefer to play from cszero can install it?

As I said, this can be done only through userinfo, i.e. through setinfo. Based on this, the server can understand who to spoofing the game with cstrike, and who with czero.

So, in a way, it's possible but would require the client to manually set a key on the setinfo to identify which game it's playing - cstrike or czero

Yes it's the only way
It is absolutely impossible without the involving of the client himself in this process

@SmilexGamer
Copy link
Author

So why not create a mod for the client as well and those who prefer to play from cszero can install it?

As I said, this can be done only through userinfo, i.e. through setinfo. Based on this, the server can understand who to spoofing the game with cstrike, and who with czero.

So, in a way, it's possible but would require the client to manually set a key on the setinfo to identify which game it's playing - cstrike or czero

Yes it's the only way It is absolutely impossible without the involving of the client himself in this process

So, if in the best interest for everyone, we can make a pull request for such feature.

@cris840
Copy link

cris840 commented Jul 1, 2023

So why not create a mod for the client as well and those who prefer to play from cszero can install it?

As I said, this can be done only through userinfo, i.e. through setinfo. Based on this, the server can understand who to spoofing the game with cstrike, and who with czero.

So, in a way, it's possible but would require the client to manually set a key on the setinfo to identify which game it's playing - cstrike or czero

Yes it's the only way It is absolutely impossible without the involving of the client himself in this process

So, if in the best interest for everyone, we can make a pull request for such feature.

It would be pretty amazing if they make it possible.

@s1lentq s1lentq closed this as completed in 62263b7 Jul 1, 2023
s1lentq added a commit that referenced this issue Jul 1, 2023
@di57inct
Copy link

di57inct commented Jul 1, 2023

well that was easy

@cris840
Copy link

cris840 commented Jul 1, 2023

well that was easy

Maybe in the future reunion will be updated so that the server queries are compatible with cszero, steam auth should also be fixed

@SmilexGamer
Copy link
Author

well that was easy

Maybe in the future reunion will be updated so that the server queries are compatible with cszero, steam auth should also be fixed

yes, the steam auth isn't working. tested with a czero client connecting to a cstrike server.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants