View Single Post
Old 03-10-2006, 01:07 AM   #1
SomeGuy333
User
 
Join Date: Jan 2006
Posts: 9

Submissions (1)

SomeGuy333 has little to show at this moment (0)

Default Anti-Cheat Tutorial

Anti-Cheat tutorial
1. - Beating Iseedeadpeople cheat
2. - Beating Whosyourdaddy cheat
3. - Beating Greedisgood cheat



If you know any other ways to anti-cheat in single player maps please share them and they will be added.


1. Beating the Iseedeadpeople cheat
This is the simplest one to get beat.
Simply make a trigger in game that has an event, Periodic timer, somewhere less than 2 seconds. The actions you want are in the visibility category, "Visibility - Enabled black mask" and "Visibility - Enable fog of war".
Trigger:
anti see all
Collapse Events
Time - Every 0.10 seconds of game time
Collapse Conditions
Collapse Or - Any (Conditions) are true
Collapse Conditions
(Fog of war is enabled) Equal to False
(Black mask is enabled) Equal to False
Collapse Actions
Visibility - Enable fog of war
Visibility - Enable black mask

2. Beating Whosyourdaddy
This one will require a few triggers and some unused space on your map. You need to pick a corner of your map that no one will be able to get to and 2 dummy units. The first unit will be, lets say a guard tower, set it's attack to 5 and give it a low cooldown, invulnerability and spell immunity. The second unit will have spell immunity and 100 hp and 100-hp regeneration always. You need to place both units near each other out of reach, the tower will belong to neutral passive and the second unit will belong to neutral hostile. this is where we implement the triggers. first trigger will need to give the tower to a user's slot that isn't being used at the moment. The trigger then will give the tower to the unused user slot. Create a trigger with Specific unit event "Neutral hostile's unit dies" and action "custom script: call EndGame( false )"

This works because units owned by a user player slot are affected by the Whosyourdaddy cheat, once someone enters the cheat their unit will do more damage and the neutral hostile's unit will die.

sample triggers are below.
Trigger:
end game
Collapse Events
Unit - Footman 0007 <gen> Dies
Conditions
Collapse Actions
Custom script: call EndGame( false ) // this ends the game for all players hiding the score screen
Trigger:
give tower to a user slot not filled by a person
Collapse Events
Map initialization
Conditions
Collapse Actions
Collapse For each (Integer A) from 1 to 12, do (Actions)
Collapse Loop - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse If - Conditions
((Player((Integer A))) controller) Equal to User
((Player((Integer A))) slot status) Not equal to Is playing
Collapse Then - Actions
Unit - Change ownership of Guard Tower 0000 <gen> to (Player((Integer A))) and Change color
Skip remaining actions
Else - Actions

why give the tower to a unused player slot? so that they dont see it. that will leave them unknowning as to why they lost.

3. - Beating GreedisGood cheat, by AgentPaper
what this does is it checks every second how much a player's gold has increase, if they increase way to fast then it will change their gold back to what it was before. The value of X should be a number that is unattainable in 1 second of game play.
Trigger:
AntiGreed1
Collapse Events
Time - Every 0.10 seconds of game time
Conditions
Collapse Actions
Collapse Player Group - Pick every player in (All players) and do (Actions)
Collapse Loop - Actions
Set Value2[(Player number of (Picked player))] = ((Player((Player number of (Picked player)))) Current gold)
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse If - Conditions
(Value1[(Player number of (Picked player))] - Value2[(Player number of (Picked player))]) Greater than or equal to (5000 + 0)
Collapse Then - Actions
Player - Set (Player((Player number of (Picked player)))) Current gold to Value1[(Player number of (Picked player))]
Game - Display to (All players) for 30.00 seconds the text: ((Name of (Player((Player number of (Picked player))))) + has tried to cheat!)
Collapse Else - Actions
Set Value2[(Integer A)] = ((Player((Integer A))) Current gold)

3.1 - Second way to beat Greedisgood
Because greedisgood give gold to all players/computer all you need is a empty player slot that has no chance of ever getting gold. have a trigger event from that player/computer having greater then or equal to X amount of gold and have whatever actions you want.
Attached Files
File Type: w3x anti-cheat tutorial.w3x (14.9 KB, 273 views)
SomeGuy333 is offline   Reply With Quote
Sponsored Links - Login to hide this ad!