protection method? :(

General talk about editing, cheating, and deprotecting maps.

Moderator: Cheaters

User avatar
Risen
Forum Staff
Posts: 811
Joined: January 1st, 2008, 12:58 am

Re: protection method? :(

Post by Risen »

I updated for 1.24b, should work.

Spoiler:

Code: Select all

scope AntiCP initializer Init
//****************************************************************************************
//
//    | Anti-CheatPack System v1.00                                       by Saw792 |
//
//    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 GetHandleId(t)
  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
 
endscope

library AntiCPConfig initializer Init //requires
//****************************************************************************
//
//    | Anti-CheatPack Configuration Functions                    by Saw792 |
//
//    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 GetHandleId(t)
  endfunction
 
  private function Init takes nothing returns nothing
    local trigger t = CreateTrigger()
    call BJDebugMsg("Handle Count: " + I2S(T2I(t) - 1048584))
    call DestroyTrigger(t)
  endfunction
 
endlibrary
Image
Wanna learn to hack maps? --> Guide