Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
AFK Protection
If a player is AFK at the beginning of a game his allies can take control over his units and buildings. When the player returns he can easily disable this in the "Allies" Option Window.
AFK Protection
Events
Map initialization
Conditions
Actions
Player Group - Pick every player in (All players) and do (Actions)
Loop - Actions
Game - Grant shared vision and full shared unit control of (Picked player) units with his/her allies
-Unshare
If you don't want to have control over your allied units you can type
"-unshare" into the chat box and press enter.
All your allies will stop "shared unit control" with you henceforth.
Unshare
Events
Player - Player 1 (Red) types a chat message containing -unshare as A substring
Player - Player 2 (Blue) types a chat message containing -unshare as A substring
Player - Player 3 (Teal) types a chat message containing -unshare as A substring
Player - Player 4 (Purple) types a chat message containing -unshare as A substring
Conditions
Actions
Set tempPlayer = (Triggering player)
Set tempPlayerGroup = (All allies of tempPlayer)
Player Group - Pick every player in tempPlayerGroup and do (Actions)
Loop - Actions
Player - Make (Picked player) treat tempPlayer as an Ally with shared vision
Set Saying_Player = (Player group(tempPlayer))
Game - Display to Saying_Player the text: Disabled Share
Auto Start
Workers immediately start harvesting and the main building starts building an additional worker.
This could be regarded as an additional AFK protection.
Purposefully the rally point isn't set on the Goldmine so that at this point it gets obvious, when the idle worker appears, that the player is indeed AFK, since before that it might not be to clear.
Auto Start
Events
Time - Elapsed game time is 0.00 seconds
Conditions
Actions
Custom script: set bj_wantDestroyGroup = true
Set GroupVar = (Units in (Playable map area))
Unit Group - Pick every unit in GroupVar and do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
((Picked unit) is A peon-type unit) Equal to True
Then - Actions
Unit - Order (Picked unit) to Harvest Nearby Gold
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Unit-type of (Picked unit)) Equal to Ghoul
Then - Actions
Unit - Order (Picked unit) to Harvest Nearby Lumber
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Unit-type of (Picked unit)) Equal to Town Hall
Then - Actions
Unit - Order (Picked unit) to train/upgrade to a Peasant
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Unit-type of (Picked unit)) Equal to Great Hall
Then - Actions
Unit - Order (Picked unit) to train/upgrade to a Peon
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Unit-type of (Picked unit)) Equal to Necropolis
Then - Actions
Unit - Order (Picked unit) to train/upgrade to a Acolyte
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Unit-type of (Picked unit)) Equal to Tree of Life
Then - Actions
Unit - Order (Picked unit) to train/upgrade to a Wisp
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
curGameSpeed Equal to 1.00
Then - Actions
Game - Set game speed to Slowest
Game - Display to (All players) the text: Slowest
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
curGameSpeed Equal to 2.00
Then - Actions
Game - Set game speed to Slow
Game - Display to (All players) the text: Slow
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
curGameSpeed Equal to 3.00
Then - Actions
Game - Set game speed to Normal
Game - Display to (All players) the text: Normal
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
curGameSpeed Equal to 4.00
Then - Actions
Game - Set game speed to Fast
Game - Display to (All players) the text: Fast
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
curGameSpeed Equal to 5.00
Then - Actions
Game - Set game speed to Fastest
Game - Display to (All players) the text: Fastest
Else - Actions
Game - Lock the game speed
Set curGameSpeed = (curGameSpeed + 1.00)
Sound - Play BattleNetTick <gen>
-Fixed the leaks
-Waits improved
-replaced function call (All Players) with tempPlayerGroupAll
-Maker: You don't need a group variable to use All Players. All Players
does not leak
Use
((Picked unit) is A peon-type unit) Equal to True
instead of a list of unit types
Keywords:
AFK Protection, Auto Start, Ease In,
Away from Keyboard, AS, EI
AFK Protection 1.0, Auto Start 1.0, Ease In 1.0 | Reviewed by Maker | 4th Oct 2013
APPROVED
Useful systems
You don't need a group variable to use All Players. All Players
does not leak
Use [TR]((Picked unit) is A...
I can't look at the triggers since they aren't posted but in the picture you have some things wrong. Never use the and condition block unless it is used inside an of condition block. Anything used twice or more should be stored into a variable. Example: picked unit.
If you are talking about how to post triggers right click the name of the trigger in the trigger editing area (where you add the action and other stuff) click copy as text. Then paste it between trigger tags. Triggers should be in the description.
AFK Protection 1.0, Auto Start 1.0, Ease In 1.0 Review by bowser499
This is my first review on a system, this one appeared when I wanted to write a review.
Originality: 3.5/5. It's not quite original but is still useful. I've seen this anti-afk system: http://www.hiveworkshop.com/forums/spells-569/anti-afk-system-v1-8-new-build-196389/. I can say, it's a lot better because it allows more than this one. I've seen some maphack protection systems aswell. So, that's why it lacks originality. It's difficult to create a really creative system.
Execution: 3/5. The whole trigger system can be seriously optimized by using loops in the code. For example, you can do a loop for shared vision and full shared unit control setting for every player. Use For each (Integer A) from 1 to 12, do (Actions). And also check if this player is controlled by player and is in game, it is possible using GUI. Imagine if you will get a share of all the computer units. AI won't unshare it. And AI never stays AFK. Destroying trigger is very nice though!
Ease In trigger can also be optimized by playing with same actions and IF blocks.
Usability: 5/5. Probably this is the only high rating. This system can simplify many lives.
Overall: (3.5+3+5)/3 = 3.8 = 4/5. Nice and simple system.
Did the Loop thing for sharing units and you got me thinking: maybe someone doesn't want to be able to have someones unit control.. so therefore he can disable it now
I don't mind having partial control over bots, it works well, you just give them an order and when they executed your order, the bot takes over again - i think thats pretty sweet..
Anti-AFK System v1.8 (New Build) is cool but something different imo
My system is primarily against stupid first minute game afk guys
and furthermore real team players always play with "share unit control"
The Anti-AFK system is nice. It tells you: who went afk, but you can only hit the pause button and wait.. after some time when it was noticed that he went afk. True its good to have that too, but i would like it even more if someone is afk a bot takes control, just in case the enemy team doesn't agree with taking a break.
Can't see how you want to optimize Ease In.. how do you want to jam a loop in there?
The triggers are inefficient. Anything you use twice or more should be stored into a temp variable and the variable should be used.
You shouldn't use waits they are inaccurate.
You should look at my tutorial things a GUIer should know.
Don't see how this is that mush more efficient.. Since it was run once anyway i guess it didn't have such a big impact.. but yeah
Fixed that to my knowledge.. Anything else that needs improvement?
- on that note is jass more efficient? isn't it saved as the same anyway?
Jass is a ton more efficient than GUI. GUI is translated into jass when the map is saved but none of the actions/functions are inlined. That's why you always see things about BJs. These BJs are blizzard functions. They are inefficient and that is what GUI uses for almost everything.
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.