• Check out the results of the Techtree Contest #19!
  • 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!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.
  • Create a void inspired texture for Warcraft 3 and enter Hive's 34th Texturing Contest: Void! Click here to enter!
  • The Hive's 22nd Icon Contest: Creep Abilities is now concluded, time to vote for your favourite set of icons! Click here to vote!

GUI Timer System

Timer System (GUI Edition) – A beginner-friendly yet powerful system designed for Warcraft 3 modders. Built entirely in GUI, it eliminates the need for complex JASS or vJASS coding, making it perfect for newcomers and mapmakers who prefer a visual workflow. The system allows you to easily create, start, stop, and manage multiple timers with minimal setup, all while remaining efficient and leak-free. Ideal for any project that requires countdowns, periodic effects, or custom timed events. Plug it into your map and start using it right away—no advanced scripting knowledge needed!


ZamTimer_Index: This is the incremental integer that increases each time you create timer, can be retrieved with ZamTimer_CurrentIndex during OnPeriodic Timers or OnFinish Timers.
ZamTimer_Duration: This is the amount of time that the timer will last for.
ZamTimer_Interval: This is the speed of which the timer will run at. (ex: 0.30, means timer will run every 0.30s, and activate OnPeriodic Triggers)
ZamTimer_Unit: This is a saveable unit variable, can be the caster or the target.
ZamTimer_Target: This is also a saveable unit variable, can be the caster or the target.
ZamTimer_Player: This is a saveable Player Variable, can be useful to retrieve for player-based timers.
ZamTimer_OnFinish: This is set trigger that you can set before creating a timer, and will run once the timer has finished.
ZamTimer_OnPeriodic: This is a set trigger that you can set before creating a timer, and will run periodically with the speed being ZamTimer_Interval.
ZamTimer_StopTimer: This is a boolean variable, very useful for Periodic Timers, can be used inside the Periodic Triggers to stop the timer under certain conditions.
Contents

GUI Timer System (Map)

Reviews
Wrda
Very simple but an effective way for GUI users to handle more precise timing, while at the same time being modular, as in, you can extend it for special effects, unit groups, player groups and so on. On an example spell, Bleed Damage Finish still...
It's a Timer System that's GUI friendly in the sense that it provides a fraction of the functionality of hashtable-based timers in exchange for simplicity.
I think it would be nice to have a demo spell that demonstrates the use of the ZamTimer_StopTimer variable, I don't see a demo trigger that features the variable yet.
Also would be nice to have variables that store location (Point), group (Unit Group) and effect (Special Effect).
Your system can be even better if it provides the functionality of dynamic timer duration (i.e. change a timer's remaining duration on the fly, allowing a timer to keep running until a certain condition is met).
 
It's a Timer System that's GUI friendly in the sense that it provides a fraction of the functionality of hashtable-based timers in exchange for simplicity.
I think it would be nice to have a demo spell that demonstrates the use of the ZamTimer_StopTimer variable, I don't see a demo trigger that features the variable yet.
Also would be nice to have variables that store location (Point), group (Unit Group) and effect (Special Effect).
Your system can be even better if it provides the functionality of dynamic timer duration (i.e. change a timer's remaining duration on the fly, allowing a timer to keep running until a certain condition is met).
You can increase the duration during periodic triggers, ZamTimer_Duration[CurrentIndex] = ZamTimer_Duration[CurrentIndex] + 5.00 (That's 5 more seconds)
 
Very simple but an effective way for GUI users to handle more precise timing, while at the same time being modular, as in, you can extend it for special effects, unit groups, player groups and so on.
On an example spell, Bleed Damage Finish still misses the deindexing part of special effect variable being used (only one line required). That's just a small detail, but important for users to follow along.

Approved
 
Back
Top