I tried several times to recreate some skills that are in DotA, some of them uses the event: A unit is attacked. But you can spam the Stop button or the Hold Position to cancel the animation of the attacking unit and the trigger will fire on the beginning of the animation. So all you had to do is to spam the button to get stackable abilities etc.
UNTIL NOW!
I made a template map that uses the method to block spam. It uses timers to check time between attacks.
-It's only MPI (Multi Player Instable)
-Made in GUI.
Usage: Simple, You need a real variable which sets the period between 2 attacks ( in the map it's 0.65 ).
You also need a playergroup in which you add or remove the players.
The triggers:
Usage of the system:
There are also some hero selecting, hero refreshing, gold adding, creep reviving trigger in the map. You can use them if you want, I don't want credits for them, but credit me if you are using my anti-spammer system.
Nexor
View attachment Spell Template.w3x
UNTIL NOW!
I made a template map that uses the method to block spam. It uses timers to check time between attacks.
-It's only MPI (Multi Player Instable)
-Made in GUI.
Usage: Simple, You need a real variable which sets the period between 2 attacks ( in the map it's 0.65 ).
You also need a playergroup in which you add or remove the players.
The triggers:
Trigger:
- Melee Initialization
- Events
- Map initialization
- Conditions
- Actions
- Set Spam_CoolDown = 0.65
- For each (Integer A) from 1 to 12, do (Actions)
- Loop - Actions
- Trigger - Add to Spam Stopper <gen> the event (Time - Spammer_Timer[(Integer A)] expires)
- Loop - Actions
- Events
Trigger:
- Spam Stopper
- Events
- Conditions
- Actions
- For each (Integer A) from 1 to 12, do (Actions)
- Loop - Actions
- Set TempReal = (Remaining time for Spammer_Timer[(Integer A)])
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- TempReal Less than or equal to 0.00
- Then - Actions
- Player Group - Remove (Player((Integer A))) from Spammer_Group
- Else - Actions
- If - Conditions
- Loop - Actions
- For each (Integer A) from 1 to 12, do (Actions)
Usage of the system:
Trigger:
- Bash modified
- Events
- Unit - A unit Is attacked
- Conditions
- (Level of Bash for (Attacking unit)) Not equal to 0
- ((Owner of (Attacking unit)) is in Spammer_Group) Equal to False
- Actions
- Custom script: local unit u = GetAttacker()
- Custom script: local real r = I2R(GetAbilityLevel( u, 'AHbh'))*6
- Player Group - Add (Owner of (Attacking unit)) to Spammer_Group
- Countdown Timer - Start Spammer_Timer[(Player number of (Owner of (Attacking unit)))] as a One-shot timer that will expire in Spam_CoolDown seconds
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- (Level of Bash Damage Bonus for (Attacking unit)) Not equal to 0
- Then - Actions
- Unit - Increase level of Bash Damage Bonus for (Attacking unit)
- Else - Actions
- Custom script: call UnitAddAbility( u, 'A000' )
- If - Conditions
- Custom script: call TriggerSleepAction(r)
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- (Level of Bash Damage Bonus for (Attacking unit)) Equal to 1
- Then - Actions
- Custom script: call UnitRemoveAbility( u, 'A000' )
- Else - Actions
- Unit - Decrease level of Bash Damage Bonus for (Attacking unit)
- If - Conditions
- Custom script: set u = null
- Events
There are also some hero selecting, hero refreshing, gold adding, creep reviving trigger in the map. You can use them if you want, I don't want credits for them, but credit me if you are using my anti-spammer system.
Nexor
View attachment Spell Template.w3x