1. Are you planning to upload your awesome spell or system to Hive? Please review the rules here.
    Dismiss Notice
  2. Updated Resource Submission Rules: All model & skin resource submissions must now include an in-game screenshot. This is to help speed up the moderation process and to show how the model and/or texture looks like from the in-game camera.
    Dismiss Notice
  3. DID YOU KNOW - That you can unlock new rank icons by posting on the forums or winning contests? Click here to customize your rank or read our User Rank Policy to see a list of ranks that you can unlock. Have you won a contest and still havn't received your rank award? Then please contact the administration.
    Dismiss Notice
  4. We have recently started the 16th edition of the Mini Mapping Contest. The theme is mini RPG. Do check it out and have fun.
    Dismiss Notice
  5. Choose your ride to damnation in the 5th Special Effect Contest Poll.
    Dismiss Notice
  6. The winners of the 13th Techtree Contest have been announced!
    Dismiss Notice
  7. The 13th Music Contest Poll is up! Vote for the best tracks in this symphony of frost and flame.
    Dismiss Notice
  8. Race against the odds and Reforge, Don't Refund. The 14th Techtree Contest has begun!
    Dismiss Notice
  9. Check out the Staff job openings thread.
    Dismiss Notice
Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

Trigger Viewer

Anti-cheat_system1.05c.w3x
Variables
Anti-Cheat
F9
Disable Anticheat unit selection
Overview
INSTRUCTIONS
Initialization settings
^--- Fix the above trigger
Settings
Building set
Anticheat Loop
---------------------------
Gold Lumber cheat
Food cheat
Invulnerability cheat
Mana cheat
Fastbuild cheat
Visibility cheat
NoDefeat cheat
---------------------------
Troubleshooting
Additional Troubleshooting
Contact info
Examples
cinematest
Enter map-specific custom script code below. This text will be included in the map script after variables are declared and before any trigger code.

		
Name Type Is Array Initial Value
Anticheat_building unit Yes
Anticheat_unit unit Yes
Anticheat_Unit_Type unitcode Yes
Cinematic_Mode boolean No
Point location No
|cffc0c0c0This system prevents cheating in single player.
Cheats disabled:
|c00B7B700Keysersoze|cffc0c0c0 <== Disabled from use
|c00B7B700Leafittome|cffc0c0c0 <== Disabled from use
|c00B7B700Greedisgood|cffc0c0c0 <== Disabled from use
|c00B7B700Pointbreak|cffc0c0c0 <== Benefits removed
|c00B7B700Warpten|cffc0c0c0 <== Punished with Defeat
|c00B7B700Whosyourdaddy|cffc0c0c0 <== Punished with Defeat
|c00B7B700Thereisnospoon|cffc0c0c0 <== Punished with Defeat
|c00B7B700Strengthandhonor|cffc0c0c0 <== Punished with Kick out of game
|c00B7B700Itvexesme|cffc0c0c0 <== Punished with Fatal Error
F9
  Events
    Map initialization
  Conditions
  Actions
    Quest - Create a Optional quest titled Anti-Cheat System with the description |cffc0c0c0This system prevents cheating in single player.Cheats disabled:|c00B7B700Keysersoze|cffc0c0c0 <== Disabled from use|c00B7B700Leafittome|cffc0c0c0 <== Disabled from use|c00B7B700Greedisgood|cffc0c0c0 <== Disabled from use|c00B7B700Pointbreak|cffc0c0c0 <== Benefits removed|c00B7B700Warpten|cffc0c0c0 <== Punished with Defeat|c00B7B700Whosyourdaddy|cffc0c0c0 <== Punished with Defeat|c00B7B700Thereisnospoon|cffc0c0c0 <== Punished with Defeat, using icon path UI\Widgets\BattleNet\bnet-mainmenu-options-up.blp
    Quest - Create a quest requirement for (Last created quest) with the description |cffc0c0c0Created by |cff80ff80Kitabatake|r
    Quest - Create a quest requirement for (Last created quest) with the description |cffc0c0c0Get it from |cff80ff80www.clanx2o.org|r
    Quest - Create a quest requirement for (Last created quest) with the description |cffc0c0c0Or from |cff80ff80www.hiveworkshop.com|r
Disable Anticheat unit selection
  Events
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Unit-type of (Triggering unit)) Equal to Anticheat_Unit_Type[1]
        (Unit-type of (Triggering unit)) Equal to Anticheat_Unit_Type[2]
        (Unit-type of (Triggering unit)) Equal to Anticheat_Unit_Type[3]
  Actions
    Selection - Clear selection for (Triggering player).

This Anti-Cheat system prevents the use of:

Keysersoze = Gold cheat <== Disabled from use
Leafittome = Lumber cheat <== Disabled from use
Greedisgood = Gold&Lumber cheat <== Disabled from use
Pointbreak = Food cheat <== Benefits removed
Warpten = Fast build cheat <== Punished with Defeat
Whosyourdaddy = Invulnerability cheat <== Punished with Defeat
Thereisnospoon = Mana cheat <== Punished with Defeat
StrengthAndHonor = No defeat cheat <== Punished with Fatal Error

How to put in your map:

1) Copy both Anti-cheat regions to your map
2) Copy the Anti-cheat_1, Anti-cheat_2 and Anti-cheat_3 units from the object editor to your own map's object editor
3) Copy this Anti-Cheat trigger folder to your map
4) Make sure the Settings and initialization trigger has it's settings correctly in your map (look at the trigger you copypasted, see the trigger comments)
5) Do not mess with the other triggers

Make sure that the Anti-cheat regions are somewhere hidden. For example in the corner of the map with some doodads around them to keep them hidden.
But remember that there must be space for the anti-cheat units. The system might not work if you set the region in deep water or too thick forest.
You could use some bushes and canopy trees to hide the region while still having enough space there.

Oh and the two AntiCheat Regions must be in SEPARATE places. I recommend placing one in another corner of the map and the other in another corner.
Remember that the player must not be able to see AntiCheat Region 2!

Also make sure that the Variables are like as follows in the Initialization settings trigger:

Set Anticheat_Unit_Type[1] = Anti-cheat_1 (Unit)
Set Anticheat_Unit_Type[2] = Anti-cheat_2 (Builder)
Set Anticheat_Unit_Type[3] = Anti-cheat_3 (Building)

If you have no custom units in your map, the variables should be like that.
But if you do have custom units, the variables might be set wrong and you must correct them.


Oh and DON'T modify any of the units or triggers unless you know what you're doing.

And I would appreciate if you gave credits when using this system.


Thank you.


- Kitabatake

This is an important setting trigger. Make sure the variables are set as following:

Set Anticheat_Unit_Type[1] = Anti-cheat_1 (Unit)
Set Anticheat_Unit_Type[2] = Anti-cheat_2 (Builder)
Set Anticheat_Unit_Type[3] = Anti-cheat_3 (Building)
Initialization settings
  Events
    Map initialization
  Conditions
  Actions
    -------- Settings --------
    Set VariableSet Anticheat_Unit_Type[1] = Anti-cheat_1 (Unit)
    Set VariableSet Anticheat_Unit_Type[2] = Anti-cheat_2 (Builder)
    Set VariableSet Anticheat_Unit_Type[3] = Anti-cheat_3 (Building)


After you have installed this system on your map, make sure the above trigger "Initialization settings" refers to correct unit types.
Settings
  Events
    Time - Elapsed game time is 1.00 seconds
  Conditions
  Actions
    Player Group - Pick every player in (All players controlled by a User player) and do (Actions)
      Loop - Actions
        Set VariableSet Point = (Center of AntiCheat_Region_1 <gen>)
        Unit - Create 1.Anticheat_Unit_Type[1] for (Picked player) at Point facing Default building facing degrees
        Set VariableSet Anticheat_unit[(Player number of (Picked player))] = (Last created unit)
        Unit - Create 1.Anticheat_Unit_Type[3] for Neutral Hostile at Point facing Default building facing degrees
        Unit - Order Anticheat_unit[(Player number of (Picked player))] to Attack.(Last created unit)
        Custom script: call RemoveLocation(udg_Point)
        Set VariableSet Point = (Random point in AntiCheat_Region_1 <gen>)
        Unit - Create 1.Anticheat_Unit_Type[2] for (Picked player) at Point facing Default building facing degrees
        Set VariableSet Anticheat_building[(Player number of (Picked player))] = (Last created unit)
        Unit - Order (Last created unit) to build a Anti-cheat_3 (Building) at Point
        Custom script: call RemoveLocation(udg_Point)
        Trigger - Add to Disable_Anticheat_unit_selection <gen> the event ((Picked player) Selects a unit)

This is an important trigger. Don't touch!
Building set
  Events
    Unit - A unit Begins construction
  Conditions
    (Unit-type of (Constructing structure)) Equal to Anti-cheat_3 (Building)
  Actions
    Set VariableSet Anticheat_building[(Player number of (Owner of (Constructing structure)))] = (Constructing structure)

This is an important trigger. Don't touch!
Anticheat Loop
  Events
    Time - Every 0.30 seconds of game time
  Conditions
  Actions
    For each (Integer A) from 1 to 12, do (Actions)
      Loop - Actions
        Unit - Order Anticheat_unit[(Integer A)] to Night Elf Druid Of The Claw - Roar.
        Unit - Set Anticheat_building[(Integer A)] construction progress to 5%
|cffc0c0c0This system prevents cheating in single player.
Cheats disabled:
|c00B7B700Keysersoze|cffc0c0c0 <== Disabled from use
|c00B7B700Leafittome|cffc0c0c0 <== Disabled from use
|c00B7B700Greedisgood|cffc0c0c0 <== Disabled from use
|c00B7B700Pointbreak|cffc0c0c0 <== Benefits removed
|c00B7B700Warpten|cffc0c0c0 <== Punished with Fatal Error
|c00B7B700Whosyourdaddy|cffc0c0c0 <== Punished with Fatal Error
|c00B7B700Thereisnospoon|cffc0c0c0 <== Punished with Fatal Error
|c00B7B700Iseedeadpeople|cffc0c0c0 <== Punished with Fatal Error|r

Prevents gold, lumber, food, fast build, visibility, invulnerability and mana cheats
This trigger prevents the use of Gold cheat and Lumber cheats

Keysersoze
Leafittome
Greedisgood

All above cheats are disabled and of no use to the player
Gold Lumber cheat
  Events
    Player - Player 12 (Brown)'s Current gold becomes Greater than 1.00
    Player - Player 12 (Brown)'s Current lumber becomes Greater than 1.00
  Conditions
  Actions
    Player Group - Pick every player in (All players) and do (Actions)
      Loop - Actions
        Player - Add ((Player 12 (Brown) Current gold) x -1) to (Picked player).Current gold
        Player - Add ((Player 12 (Brown) Current lumber) x -1) to (Picked player).Current lumber
    Player - Set Player 12 (Brown).Current gold to 0
    Player - Set Player 12 (Brown).Current lumber to 0
    -------- Player 12 must not receive any income during game --------
This trigger prevents the use of Food cheat.

Pointbreak

All units that are created above the players food limits are removed.
No refund.
Food cheat
  Events
    Unit - A unit Finishes training a unit
  Conditions
    ((Trained unit) is A structure) Equal to False
    ((Owner of (Trained unit)) Food used) Greater than ((Owner of (Trained unit)) Food cap)
    ((Owner of (Trained unit)) controller) Equal to User
    (Supply used by (Trained unit)) Greater than 0
  Actions
    Unit - Remove (Trained unit) from the game
This trigger prevents the use of invulnerablity cheat

Whosyourdaddy

The cheater is punished with a Defeat
Invulnerability cheat
  Events
    Unit - A unit Dies
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Unit-type of (Dying unit)) Equal to Anti-cheat_1 (Unit)
        (Unit-type of (Dying unit)) Equal to Anti-cheat_2 (Builder)
        (Unit-type of (Dying unit)) Equal to Anti-cheat_3 (Building)
  Actions
    Trigger - Turn off (This trigger)
    Player Group - Pick every player in (All players) and do (Actions)
      Loop - Actions
        Game - Defeat (Picked player) with the message: |cffff0000== Cheat Detected ==|r
    Trigger - Run NoDefeat_cheat <gen> (checking conditions)
This trigger prevents the use of mana cheat

Thereisnospoon

The cheater is punished with a Defeat
Mana cheat
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Unit-type of (Casting unit)) Equal to Anticheat_Unit_Type[1]
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Turn off Anticheat_Loop <gen>
    Player Group - Pick every player in (All players) and do (Actions)
      Loop - Actions
        Game - Defeat (Picked player) with the message: |cffff0000== Cheat Detected ==|r
    Trigger - Run NoDefeat_cheat <gen> (checking conditions)
This trigger prevents the use of fast building cheat

Warpten

The cheater is punished with a Defeat


Note: For some reason this trigger can occasionally cause a fatal error instead of defeat
Well, it get's the job done as well...

If you know how to fix the fatal error from this trigger, let me know!
1) Private message Kitabatake @ www.hiveworkshop.com
2) Private message Kitabatake @ www.clanx2o.org
3) Send email to kitabatake@live.com
Fastbuild cheat
  Events
    Unit - A unit Finishes construction
  Conditions
    (Unit-type of (Constructed structure)) Equal to Anti-cheat_3 (Building)
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Turn off Anticheat_Loop <gen>
    Player Group - Pick every player in (All players) and do (Actions)
      Loop - Actions
        Game - Defeat (Picked player) with the message: |cffff0000== Cheat Detected ==|r
    Trigger - Run NoDefeat_cheat <gen> (checking conditions)
This trigger prevents the use of visibility cheat

Warpten

The cheater is punished with a Defeat
Visibility cheat
  Events
    Time - Every 2 seconds of game time
  Conditions
  Actions
    Set VariableSet Point = (Center of AntiCheat_Region_2 <gen>)
    For each (Integer A) from 1 to 12, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Point is visible to (Player((Integer A))).) Equal to True
            Cinematic_Mode Equal to False
          Then - Actions
            Trigger - Turn off (This trigger)
            Player Group - Pick every player in (All players) and do (Actions)
              Loop - Actions
                Game - Defeat (Picked player) with the message: |cffff0000== Cheat Detected ==|r
            Trigger - Run NoDefeat_cheat <gen> (checking conditions)
          Else - Actions
    Custom script: call RemoveLocation(udg_Point)
    Custom script: set udg_Point = null
This trigger prevents the use of No Defeat and No Win cheats that would disable other anti-cheat triggers

StrengthAndHonor - The cheater is kicked out of the game
Itvexesme - The cheater is punished with a Fatal Error


Note: Strengthandhonor cheat makes it impossible to "Defeat" a player.
That is why the player is simply given victory without dialogs and scores

Itvexesme cheat makes it impossible to give victory to the player.
That leaves Fatal Error as the only way to make the player leave the game.


Also: These cheats are NOT punished as soon as you type them in game because there is no way to detect them right away.

This trigger is here only to prevent those two cheats from disabling the other anti-cheat triggers...
NoDefeat cheat
  Events
  Conditions
  Actions
    Wait 2.00 seconds
    Game - Display to (All players) the text: |cffff0000Cheater!|r
    Player Group - Pick every player in (All players) and do (Actions)
      Loop - Actions
        Game - Victory (Picked player) (Skip dialogs, Skip scores)
    Wait 1.00 seconds
    Game - Display to (All players) the text: |cffff0000Punishment: Fatal Error! [3]
    Wait 1.00 seconds
    Game - Display to (All players) the text: |cffff0000Punishment: Fatal Error! [2]
    Wait 1.00 seconds
    Game - Display to (All players) the text: |cffff0000Punishment: Fatal Error! [1]
    Wait 1.00 seconds
    Game - Display to (All players) the text: |cffff0000Punishment: Fatal Error! [0]
    Wait 1.00 seconds
    Player - Make (Player((Integer(Kitabatake)))) treat (Player((Integer(Cheater)))) as an Enemy


TROUBLESHOOTING
The Anti-Cheat System by Kitabatake


1) Does the system work?
Yes -> go to [15] No -> go to [2]

2) Did you mess with the system?
Yes -> go to [12] No -> go to [3]

3) Did you follow the Instructions?
Yes -> go to [4] No -> go to [12]

4) Do you have "Automatically create unknown variables while pasting trigger data" option on?
Yes -> go to [5] No -> go to [13] What? -> go to [13]

5) Did you copy ALL 3 units from the object editor to your map?
Yes -> go to [6] No -> go to [12]

6) Did you copy both red AntiCheat regions to your map?
Yes -> go to [7] No -> go to [12

7) Do you use Player 12 in your map?
Yes -> go to [8] No -> go to [12]

8) Did you fix the variables in the Initialization settings trigger?
Yes -> go to [9] No -> go to [12]

9) Are you having problems during cinematics?
Yes -> go to [10] No -> go to [11]

10) Make sure you set the boolean "Cinematic_Mode" to TRUE before a cinematic and FALSE after a cinematic
Then test the map and go to [1]

11) Is this the first time you got this far troubleshooting this system?
Yes -> go to [12] No -> go to [14]

12) Start over and follow the INSTRUCTIONS

13) Go to File -> Preferences and turn on "Automatically create unknown variables while pasting trigger data"
Then go to [12]

14) Contact me and explain the situation. OR go to [12].

15) No Problem!

Remember that you must copy the 3 units from object editor to your map

Also remember that you must copy the red regions from the lower right and lower left corner of the map to your map
If you can't see the regions, delete the trees above them.

THEN you can copy this trigger folder to your map


Don't forget to check the Initialization settings. The variables must refer to correct units
Also remember that the variables themselves must be pasted to the map. They will be copied automatically with the triggers if you have
"Automatically create unknown variables while pasting trigger data" option turned on. If not, turn the option on or copy the variables manually.

And don't forget that Player 12 must not receive income. I recommend not using Player 12 in your game at all.


Also don't forget to set Cinematic_Mode = True before a cinematic
Also don't forget to set Cinematic_Mode = False after a cinematic

In case you encounter problems...

1) Private message Kitabatake @ www.hiveworkshop.com
2) Private message Kitabatake @ www.clanx2o.org
3) Send email to kitabatake@live.com

However, you should first see the Troubleshooting and Additional Troubleshooting.

!REMEMBER!

Always set Cinematic_Mod = True before you turn cinematic mode ON
Otherwise the player will be kicked out of the game!

Always set Cinematic_Mod = False after you turn cinematic mode OFF
Otherwise the player will be able to exploit the iseedeadpeople cheat!
cinematest
  Events
    Player - Player 1 (Red) types a chat message containing c (stringnoformat) as An exact match
  Conditions
  Actions
    -------- Cinematic_Mode must be set to TRUE before a cinematic --------
    -------- Otherwise the iseedeadpeople anti-cheat trigger will defeat the player --------
    Set VariableSet Cinematic_Mode = True
    Cinematic - Turn cinematic mode On for (All players)
    Wait 2 seconds
    Cinematic - Turn cinematic mode Off for (All players)
    Set VariableSet Cinematic_Mode = False
    -------- Cinematic_Mode must be set to FALSE after a cinematic --------
    -------- Otherwise the player can exploit the iseedeadpeople cheat --------