Anti-Cheat functionality
Yes! The idea with a screen that says standy .... is cool[8D]Originally posted by Roi Danton
One ship to load doesn't take so long. Before loading and testing you could focus a screen with the lines "Standby ... perusing the ships check list" or smthg like that.
One ship is enough for the client application, thats right.
But for the Server we'll have to check every ship, so we can be sure a server host doesn't disadvantage others or create an advantage for his team.
You should have the pog by now, so you can see what I meant with the 470 lines of code. It was very cumbersome but, it was a good insurance, that a Server host couldn't change anything either. Still, I think we can do it even better this time@Old Version: Maybe for checking the sim.ini it could be helpful? But I wouldn't copy whole passages if they doesn't fit exactly with that what you want to realize here.
Iwar2 Multiplayer Fan Site
Please Log in or Create an account to join the conversation.
- Roi Danton
- Offline
- Regular
Yeah, I got it! Really much work you've done!Originally posted by MajorTom
You should have the pog by now, so you can see what I meant with the 470 lines of code. It was very cumbersome but, it was a good insurance, that a Server host couldn't change anything either. Still, I think we can do it even better this time
The problem this time is the amount of ships and - what IMHO is more important - if any settings in the subsims are made the whole calculation has to be redone b/c you haven't checked every single subsim property (also this would be more intensive for the cpu it would be easier if any changes in the sims and subsims are made).
~Buda5 Designer & Scripter
buda5.firstones.com
~Buda5 Designer & Scripter
buda5.firstones.com
Please Log in or Create an account to join the conversation.
- Second Chance
- Offline
- King of Space
mailto:second_chance@cox.net
The Ultimate Guide To Modding: I-War 2 - Edge Of Chaos (on hold during SW MP mod)
cartoons.sev.com.au/index.php?catid=4
.
Please Log in or Create an account to join the conversation.
Roi, Do you have time within the next week (or so) to look at the iNetworkGUI (Or iMultiplayGui) script and look for a good place to plug in the function call to the anti-cheat test?
Do you think the "RejectionScreen" function would be useable for the "Standby..." message followed by a "All Clear" or an actual "rejection" message that would follow just before the player joins a game?
Iwar2 Multiplayer Fan Site
Please Log in or Create an account to join the conversation.
- Roi Danton
- Offline
- Regular
Logically it should be in the iMulitplayGUI, but after a fast look at your code and the two GUI pogs I couldn't find all interactions between yours and the I-War 2 default code. So I'll say "or resp function in your code" and can't make sure if there aren't better places to plug in the function call.
* * = depending on your Anti Cheat function
If we use defined settings *so the users can't update the ship.ini's: "modificated-SWMP-game"* I would make the link in the "iNetworkGUI.OnShipSelection" function or the resp function in your code.
*If there should be a "modified-SWMP-game" possible: Server and all clients have same ini files = could be updated from our original settings* the function call could be located in the szenario-pog.ClientMain.
The RejectionScreen should be useable for all three texts string reason == Standyby... || All Clear || Cheater!.Originally posted by MajorTom
Do you think the "RejectionScreen" function would be useable for the "Standby..." message followed by a "All Clear" or an actual "rejection" message that would follow just before the player joins a game?
Maybe you have to fit the Title (define another text field) and the scrollbar in the "Frame Window" couldn't be the best design - but all in all this function seems to call a blank screen (blank Shady Bar), the title, your message and two back buttons ... ideal for such message.
~Buda5 Designer & Scripter
buda5.firstones.com
~Buda5 Designer & Scripter
buda5.firstones.com
Please Log in or Create an account to join the conversation.
The function call was originally made as the player joined the server by sending an event to the client where the check was run.
(At the time we didn't have the iNetworkGUI code and once the player has joined a game, only the server can reject the player effectivly.
At the moment, at least for the beta, I favor the hardcoded version: meaning no changes allowed on either the server or the client. That will reduce connection times and also prevent some possibly 'inexplicable' rejections.
If there is enough interest in modding after the game has been established, we can at a later date make a "patch" that would allow server/client communication of a checksum value.
For the original question:
Having the function call in the ship selection function would be ok for clients but what about the server? (the host could theoretically change all ships and make them weaker except his own). At the time of ship selection, you can't tell if the player will host or just join as a client. Where would you put the call to check all ships/ini files, before the server is actually started? I also meant the exact location (between which lines) to put the call. (because I still have trouble reading/visualizing GUI stuff)
I think we should do a combination of both:
a) On ship selection check the selected ship and the players flux.ini values.
b) When a server app is started check all the other ships except the one the host has previously selected.
Iwar2 Multiplayer Fan Site
Please Log in or Create an account to join the conversation.