haxorico wrote:anti cheats can even be stuff that are NOT commands. but corrupting the MPQ Archive... a map with alot of files (like dota and foc) that has to get the MPQ Rebuilt and it wont be openable at x-dep / rmpqex would make it rly hard for ppl to hack it.
tho i believe every protection can be bypassed...
Unless, If the map cannot be played then it can't be bypassed. If I am not mistaking.
qweasd011 wrote:Unless, If the map cannot be played then it can't be bypassed. If I am not mistaking.
Generally speaking, if WC3 can open up the map (doesn't matter what version), then there is a way to bypass the protection. Storm does a good job at it, too.
(20:53:52) Bartimaeus: Thank you, Jen. (20:53:56) Bartimaeus: Truly, you are wise.
(23:44:12) Bartimaeus: I was in pubic school until middle school...
scope AntiCP initializer Init //**************************************************************************************** // // | Anti-CheatPack System v1.00 by Coleen | // // Using this system will report any modification to the map script. Combined with map // optimisation it will effectively stop people from using a modified version of your // map, as it disables all GUI trigger functionality and all JASS triggers (with the // exception of libraries, for technical reasons) on detection of modification. // // It is recommended that all functioning vJASS code is writeen within scopes (with the // exception of systems) in order for them to be disabled on modification detection. // // // Implementation Instructions: // // 1. Create a blank disabled trigger named AntiCPConfig, convert to custom text // 2. Copy/Paste the AntiCPConfig library into the blank trigger // 3. Click the name of your map in the left-hand panel in the trigger editor // 4. Copy/Paste the AntiCP scope into the Custom Text section // NB: The scope MUST be at the VERY top of the custom text section, and // NOT in a blank trigger // 5. Follow the instructions in the AntiCPConfig library // 6. Set the HANDLE_COUNT variable below to the output of the library // 7. Configure other constants below // 8. Set ENABLED = true // 9. Save your map and enjoy // // NB: Every time you save a final version run the AntiCPConfig library again // as the handle count has probably changed // NB: When modifying your map set ENABLED = false, and set it to true again // when a final version is saved // //**************************************************************************************** globals //Output of AntiCPConfig library private constant integer HANDLE_COUNT = 0 //System enabled or disabled private constant boolean ENABLED = false //Disable triggers initializers on detection? private constant boolean TRIGGER_DISABLE = false //Show a message to players if modification is detected? private constant boolean SHOW_TEXT = true //Text to display when SHOW_TEXT = true //If SHOW_TEXT = false it is recommended that this string be emptied (i.e. = "") private constant string DISP_TEXT = "This map has been modified. Please delete it and redownload from a trusted source." endglobals
private function T2I takes trigger t returns integer return t return 0 endfunction
private function Init takes nothing returns nothing local integer i local trigger t = CreateTrigger() if (T2I(t) - 1048584) != HANDLE_COUNT and ENABLED then if SHOW_TEXT then call DisplayTextToForce(bj_FORCE_ALL_PLAYERS, DISP_TEXT) endif if TRIGGER_DISABLE then set i = i endif endif call DestroyTrigger(t) set t = null endfunction
library AntiCPConfig initializer Init //requires //**************************************************************************** // // | Anti-CheatPack Configuration Functions by Coleen | // // Configuration Instructions: // // 1. Uncomment the 'requires' line above these instructions // 2. Add in the name of every library in your map separated by , // NB: If you have no vJASS libraries in your map ignore these two steps // 3. Enable this trigger // 4. Save your map // 5. Click 'Test Map' and write down the number that is displayed // once the game starts (Handle Count: ...) // 6. Exit the game // 7. Disable this library // 8. Keep this library within your map // 9. Repeat these instruction every time you save a final version // //**************************************************************************** private function T2I takes trigger t returns integer return t return 0 endfunction
private function Init takes nothing returns nothing local trigger t = CreateTrigger() call BJDebugMsg("Handle Count: " + I2S(T2I(t) - 1048584)) call DestroyTrigger(t) endfunction