File : AntiCheat_v52d.rez Create Date : 013-Oct-2002 Version : 5.2d Author : Apocalypse_DFA ************************************************************************ * * Special Thanks to: * Drestin Black for running my anticheat rez. * To the Shogo Community for putting up with my ever changing Anticheats * ************************************************************************ VER 5.2d ******** Replace all strcpy with SAFE_STRCPY and use std::string instead of char[] whenever possible. This is an attempt to fix the crashing problem of DB. VER 5.2c ******** Fixed the CoolDown problem when level ends due to frag count. VER 5.2b ******** Added try-catch around all client messenging. Trying to stop the crashes. Fixed a bug reported by ThePeaceKeeper_TXS about CoolDown By Frag and self frag problem. VER 5.2a ******** Added fire checking back into server code to detect model multi fire cheat VER 5.2 ******* removed excess inline function declarations. removed all deprecated functions like TB and jump meters. VER 5.1d ******** Fixed problem where cooldown period did not occur if level ends by frag limit. Remove all occurance of server-side anticheat. VER 5.1 ******* Revamped everything! Now uses Server.ini and NOT anticheat.ini. Clients with ShogoL.rez ver 2.1 will have cheat detection done on client side. Authentication method changed from simple challenge-response to 576-bit keycode that changes every day. Clients with older rez will still use server-side detection. VER 4.6 Baseline **************** Basically this will be the basline code for 4.6. This version should be the same as 4.4. VER 4.61 ******** Removed respawn frag problem fix. VER 4.6 ******* Attempt to fix the respawn frag problem. Attempt to fix the self frag with shotty or AR problem. Added handles to display custom rez loaded by players. VER 4.4 ******* Added Rapid weapon switch checking. VER 4.3e ******** VER 4.3d + Selective disable of OF/MCA TB. Fixed problem of not clearing Jump/TB meters when fragged. Disabled meters when player joins as a spectator. VER 4.3d ******** VER 4.3c + Tractor Beam tracking. VER 4.3c ******** VER 4.3 Baseline + jump tracking. VER 4.3Baseline *************** Should be same as VER 4.2 without the TB and Jump features. Hopefully this can be our crashless baseline for VER 4.3 VER 4.3b ******** Fixed my fuck up on Warnings per shot. VER 4.3a ******** This is a debug in an attempt to solve the Dr. Watson. I've added three .ini parameters to try to isolate the problem. DISABLE_JUMP_ENERGY_DRAIN,1 DISABLE_TRACTOR_ENERGY_DRAIN,1 DISABLE_WARNING_PER_SHOT,1 These were the feature changes from VER 4.2. My suspicion is that the Warning message per shot is creating a memory stomping problem. I have rewritten this in an attempt to eliminate this. VER 4.3 New Features: ************* Tractor Beam and Jump has their own energy indicators. OF and MCA tractor beam can now be disabled separately. Riot's damage radius has been reduced. Also, rapid fire, rapid weapon switching and rapid reload is now separated. New parameters for .INI file: JUMP_MULTIPLIER - Jump Multiplier for a normal jump (default = 1) JUMP_ENERGY_LOSS_PERCENT - Percent energy used per jump (default = 10, 0 - 100, -1 will disable energy drain) JUMP_ENERGY_REGEN_TIME - Time in Sec to recharge fully (default = 15) JUMP_ENERGY_MIN_PERCENT - Min percent energy to jump after depletion (default = 10) ALLOW_TB_OF - Allow OF levels to use Tractor Beam (default = 1, 1 = yes, 0 = no) ALLOW_TB_MCA - Allow MCA levels to use Tractor Beam (default = 1, 1 = yes, 0 = no) TRACTOR_ENERGY_LOSS_TIME - Time in Sec to deplete full energy (default = 30, -1 will disable energy drain) TRACTOR_ENERGY_REGEN_TIME - Time in Sec to recharge full energy (default = 60) TRACTOR_ENERGY_MIN_PERCENT - Min percent energy to TB after depletion (default = 25) These new energy storage will appear on the client's view if the client is running ShogoL.rez VER 1.3. VER 4.2 Problem: ******** 1) Console cheat WireFrame was still accessible 2) Console cheats are not caught after a level change Solution: ********* 1) Added checking in ShogoL.rez v1.2 2) Player is fragged when player first activates console cheats. New Features: ************* 1) New ini file format with added features NO_REZ_MSG - Message to be displayed to players without ShogoL.rez NEW_REZ_MSG - Message to be displayed to players with old version of ShogoL.rez REZ_URL_MSG - Server message displaying URL to download ShogoL.rez DEF_DAMAGE - Damage players without ShogoL.rez can cause. (0.0 - 1.0) OLD_REZ_DAMAGE - Damage players with old versions of ShogoL.rez can cause (0.0 - 1.0) ALLOW_TB_TO_UNKNOWN - Flag used to allow Tractoring to undefined objects ( 1 = yes, 0 = no) ALLOW_RIOTS - Flag used to allow use of riots ( 1 = yes, 0 = no) ALLOW_TOWS - Flag used to allow use of TOWs ( 1 = yes, 0 = no) ALLOW_ULTRADAM - Flag used to allow use of Ultra Damage ( 1 = yes, 0 = no) ULTRADAM_MULT - Damage multiplier when attacker has UltraDamage relic OF_JUMP_ENERGY - Energy used when jumping, max is 5.0 MCA_JUMP_ENERGY - Energy used when jumping, max is 50.0 MCA_TRACTOR_ENERGY - Energy used by tractor in MCA, max is 50.0 OF_TRACTOR_ENERGY - Energy used by tractor in OF, max is 5.0 TRANSFORM_ENERGY - Energy used when changing from MCA to vehicle, max is 25.0 CLIENT_VERSION - Verison number of the latest Client rez ********************************************************************* VER 4.0 Problem: ******** 1) Usage of ModelBoxing and DrawFlat to cheat. 2) Usage of custom cshell.dll like aim-bots. Solution: ********* 1) Modelboxes, ShowPVS and Drawflat usersa will be fragged and server will annouce to all the other players. 2) Server will listen for client confirmation that the client-side anti-cheat is loaded. Since the client-side rez consist of the cshell.dll, no other custom cshell.dll can be loaded. If the server does not have comfirmation from the client, the server will use the value from the AntiCheat.ini file to set the default damage multiplier (normally set to 1.0). Setting this value to 0.0 will cause the shots from the unauthorized player to not register. Server will also announce to the unauthorized player that the ShogoL.rez needs to be loaded and also where they may download it. Special Note : Unzip AntiCheat.ini into the shogo directory where Shogo.exe is located. ********************************************************************* VER 3.1 Problem: ******** 1) New method of handling cheaters may cause the server to crash. Solution: ********* 1) Re-implemented the previous method if fragging cheaters. However, server will now wait until atleast 100 occurrences before fragging suspected cheaters. Weapons will no longer be locked. ********************************************************************* VER 3.0 Problem: ******** 1) Some maps don't have surface types defined for world objects; therefore, it was still possible to shoot through walls/floors on some maps. 2) Allowed regular fire rate for weapons in zoomed mode. 3) Misfire of anticheat caused by lag spikes. 4) Firing while in vehicle mode. 5) Tractor beam shows up while in spectator mode. 6) There is a major bug in the retail code that will crash the server. If a player has the untra reflect relic accidentally kills themselves, the server will crash due to an endless loop that will occur. (Thanks ARCMASTER for discoverying this!) Solution: ********* 1) Checks for unknown surface type also. 2) Checks for rate of fire in zoomed mode also. 3) Weapons will no longer lockup after detection. Damages will be reflected back if it strikes a non-cheating player. 4) Rez will not allow you to fie while in vehicle mode. 5) Tractor beam is now invisible if join as spectator. 6) Only do a refect damage is shooter does not have the relic. Other Goodys: ************* Reduced software lag by implementing inline functions. ********************************************************************* VER 2.7 Special release to fix the Dr. Watson on Drestin's sever. ********************************************************************* VER 2.4 Patch to VER 2.3 There is virtually no change to the v2.3. The version changed to indicate that this is a new release than the previous which included some debug code that should not have been released. Thank you Anjel for pointing this out! ********************************************************************* VER 2.3 Patch to VER 2.0 This patch affects the skinny cheat detection only. Problem: ******** Some maps uses soft corners where a shot will pass through a corner hitting its intended target. Previous code will detect this and frag the player as a skinny users. Solution: ********* To remove this unwanted behavior, the code was modified to also use the surfaceFlag attribute to detemine if its just a soft corner. Also will allow 16 infractions per respawn before fragging player for each infraction. Once the player has surpassed 16 infractions during respawn, he will always be tagged as a skinny cheater and fragged per infraction. ********************************************************************* VER 2.0 This anti-cheat rez will attempt to neutralize the following cheats. Rapid-Fire/Rapid-Switch (Killer and Killer, Jr.) ************************************************ Instead of locking a players weapons after 100 infractions, the server will only prevent any shots that fire at a rate faster than 10% of the official rate. It will also check if the weapon switching speed is faster than the official speed. If it is, the first shot will be held back. The server will lock up the players weapons if more than 10 infractions happened AND number of infractions is greater than 75% of total shots fired. A high precision timer is also used (QueryPerformanceCounter and QueryPerformanceFrequency). This allows for an accuracy of micro-seconds instead of the normal +/- 18ms when using the function clock(). Pulse Rifle in OF Levels (Switch) ********************************* Server will frag the offender and log the first ocurrence into a log file named SwitchCheaters.txt. Other players will also be notified that a player was caught using that cheat. Message to others: terminated for using Switch Cheat!!! Firing through walls (Skinny) ***************************** Server will frag the offender and log the first ocurrence into a log file named SkinnyCheaters.txt. Other players will also be notified that a player was caught using that cheat. The method use is quite simple, we perform reverse vectoring and see if we hit a wall. Normally we should hit the layer firing the shot, not a wall. Message to others: terminated for firing through walls!!! Special Surprise for RIOT WHORES!!! (NoRBERT) ********************************************* The Red Riot has been turned into a neat laser light show. No damage is done. Also the server will nnounce that the player has fired the Red Riot. I've removed the name calling. This rez was developed in response to those cheaters and Riot Whores that ruins the game for all of us. Hopefully, this will allow for a more enjoyable game for newbies as they are our future. I know there are many other cheats out there, but this is an attempt to neutralize the main ones being used. -Apocalypse of the Clan DFA (disciples of Shogoism) May Shogo Live Forever!!!