• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • ✅ HD Level Design Contest #1 POLL is now OPEN! Check out the stunning visuals of the final entries. 🔗Click here to cast your vote!

Heavens Time v1.1

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
Author: EyC_6
Sub Author: UnknownE2 , DashUE
Object Editor: UnknownE2
Trigger Editor/Spell Editor: EyC_6
Map Editor: DashUE and EyC_6
Tutorials: Hiveworkshop
Sounds: N/A

Special Thanks From Me and

UnknownE2
DashUE
and all the members of the Hiveworkshop

Version v1.1

Problems
How to change the level of the add "Heavens Time" to the last Remove "Heavens Time"

Description: You can look at the image for the rest of the descriptions
(READ ME): THE EFFECT WILL OFF IN 20 SECONDS NOT 10 SECONDS :(READ ME)
I remove unspent skill attribute so you can't change level of the skill when used.
I add the unspent skill attribute when finish of the abilities effect.

Note: Please don't copy my spell
Supported by: Hiveworkshop
And by: Epicwar

Map Creator: EyC_6
Spell Creator: EyC_6
Help From: DashUE, UnknownE2

Created by Carl Jason T. Costiniano

Keywords:
Heavens,Time,Speed,Action,Effect,Attributes,Diffusion.
Contents

Heavens Time (Map)

Reviews
12th Dec 2015 IcemanBo: Too long as NeedsFix. Rejected. The spell leaks locations, effects amd unit groups. The spell is not MUI because of the waits. Needs fix. (Updated) Pharaoh_: Lacks a lot.

Moderator

M

Moderator

12th Dec 2015
IcemanBo: Too long as NeedsFix. Rejected.

Maker, Heavens Time v1.1, 11:24, 18th Sep 2011

The spell leaks locations, effects amd unit groups.
The spell is not MUI because of the waits.

Needs fix.
(Updated)

Pharaoh_: Lacks a lot.
 
Level 5
Joined
Jul 19, 2009
Messages
23
Thank you for giving me the idea for not using waits but using triggers instead
TO:DEUTERIUM
THANKS FOR GIVING ME THIS LINK >> http://www.hiveworkshop.com/forums/1276157-post1.html#Leaks

I just updated my spell Heavens Time ,this time i don't have any waits.
But still i have a problem about changing back the level of new heavens time to the old one.

OH YEAH PLEASE RATE !!
 
Last edited:
• Use (Triggering unit) instead of (Casting unit).
  • Game - Set game speed to Fastest
  • Game - Set game speed to Normal
Not needed.
• Bad Indexing.
  • Wait 0.65 game-time seconds
  • Wait 10.00 game-time seconds
Still uses waits.
  • Environment - Set fog to style Linear, z-start 1000.00, z-end 4000.00, density 0.50 and color (50.00%, 50.00%, 50.00%)
Not MPI.


You lack basic knowledge here, please study some tutorials first. You can start off by having a look at dynamic indexing templates and/or hashtables. Then, you will be able to enhance your spells into supporting multiple instances.
 
Level 5
Joined
Jul 19, 2009
Messages
23
  • Heavens Time
  • Event
  • Unit - Unit Starts the effect of an ability
  • Condition
  • (Ability) Being cast equals to Heavens Time
  • Action
  • Cinematic - Fade out and back in over 0.05 seconds using texture Black Mask and color (0.00%,0.00%,0.00) with 0.00% transparency
  • Game - Turn the day/night cycle Off
  • Environment - Set fog to style Linear, z-start 1000.00, z-end 4000.00, density 0.50 and color (50.00%, 50.00%, 50.00%)
  • -------- ---------------------------------- --------
  • -------- Heavens Time Variables/Actions --------
  • -------- ---------------------------------- --------
  • Set HT_P_N = (HT_P_N + 1)
  • Set HT_SkillCaster[HT_P_N] = (Triggering unit) << I Change this one ( Use triggering instead of casting)
  • Set HT_Units_in_Field[HT_P_N] = (Units in (Entire map) matching (((Matching unit) belongs to an enemy of (Owner of HT_SkillCaster[HT_P_N])) Equal to True))
  • Set HT_Attribute[HT_P_N] = (Unspent skill points of HT_SkillCaster[HT_P_N])
  • Unit - Create 1 Wind Summond for (Owner of HT_SkillCaster[HT_P_N]) at (Position of HT_SkillCaster[HT_P_N]) facing (Facing of HT_SkillCaster[HT_P_N]) degrees
  • Set HT_Dummy[HT_P_N] = (Last created unit)
  • -------- ---------------------------------- --------
  • -------- Heavens Time UnitGroupAction/Actions --------
  • -------- ---------------------------------- --------
  • Hero - Modify unspent skill points of HT_SkillCaster[HT_P_N]: Set to 0 points
  • Unit - Remove Heavens Time from HT_SkillCaster[HT_P_N]
  • Unit Group - Remove HT_SkillCaster[HT_P_N] from HT_Units_in_Field[HT_P_N]
  • Unit Group - Remove all units of (Units in (Entire map) matching (((Matching unit) is Magic Immune) Equal to True)) from HT_Units_in_Field[HT_P_N]
  • Unit Group - Remove all units of (Units in (Entire map) matching (((Matching unit) is Mechanical) Equal to True)) from HT_Units_in_Field[HT_P_N]
  • Special Effect - Create a special effect attached to the origin of HT_SkillCaster[HT_P_N] using war3mapImported\Greek Mirror Image.mdx
  • Set HT_SpecialEffect[2] = (Last created special effect)
  • -------- ------------------------------------------ --------
  • -------- -----------All kind of actions----------- --------
  • -------- ------------------------------------------ --------
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    • If - Conditions
      • (HT_Dummy[HT_P_N] is alive) Equal to True
    • Then - Actions
      • -------- Heavens Time Start (Then Action) Condition --------
      • Trigger - Turn on HT Effect <gen>
      • Trigger - Turn on HT L1t1 <gen>
      • -------- Heavens Time Finish (Then Action) Condition --------
    • Else - Actions
      • Do nothing << Sorry about this
  • -------- ------------------------------------------ --------
  • -------- Rest of the Action --------
  • -------- ------------------------------------------ --------
 
Last edited:
Level 5
Joined
Jul 19, 2009
Messages
23
Rest of the Triggers

  • HT Effect
    • Events
      • Time - Every 0.25 seconds of game time
    • Conditions
    • Actions
      • Special Effect - Create a special effect attached to the origin of HT_SkillCaster[HT_P_N] using Abilities\Spells\Items\TomeOfRetraining\TomeOfRetrainingCaster.mdl
  • HT L1t1
    • Events
      • Time - Every 0.01 seconds of game time
    • Conditions
    • Actions
      • -------- ----------------------------- --------
      • -------- Wait Leak --------
      • -------- ----------------------------- --------
      • Set HT_Wait[HT_P_N] = (HT_Wait[HT_P_N] + 0.01)
      • -------- ----------------------------- --------
      • -------- ----------------------------- --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • HT_Wait[HT_P_N] Greater than or equal to 0.85
        • Then - Actions
          • Unit Group - Pick every unit in HT_Units_in_Field[HT_P_N] and do (Actions)
            • Loop - Actions
              • Animation - Change (Picked unit)'s animation speed to 0.00% of its original speed
              • Unit - Pause (Picked unit)
          • Animation - Change HT_Dummy[HT_P_N]'s animation speed to 0.00% of its original speed
          • Trigger - Turn on HT L1t2 <gen>
        • Else - Actions
          • Do nothing << Sorry About this
      • -------- 0----------------------- --------
  • HT L1t2
    • Events
      • Time - Every 1.00 seconds of game time
    • Conditions
    • Actions
      • -------- ------------------------------ --------
      • Set HT_Wait2[HT_P_N] = (HT_Wait2[HT_P_N] + 1.00)
      • -------- ------------------------------ --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • HT_Wait2[HT_P_N] Greater than or equal to 20.00
        • Then - Actions
          • Trigger - Turn off HT Effect <gen>
          • -------- ------------------------------- --------
          • -------- -----------Reset All Actions------------ --------
          • -------- ----------Ending of Heavens Time------------ --------
          • -------- ------------------------------- --------
          • Cinematic - Fade out and back in over 0.05 seconds using texture Black Mask and color (0.00%, 0.00%, 0.00%) with 0.00% transparency
          • Environment - Reset fog to default values << I Change this one
          • Game - Turn the day/night cycle On
          • Hero - Modify unspent skill points of HT_SkillCaster[HT_P_N]: Set to HT_Attribute[HT_P_N] points
          • Unit Group - Pick every unit in HT_Units_in_Field[HT_P_N] and do (Animation - Change (Picked unit)'s animation speed to 100.00% of its original speed)
          • Unit - Add Heavens Time to HT_SkillCaster[HT_P_N]
          • Unit Group - Pick every unit in HT_Units_in_Field[HT_P_N] and do (Actions)
            • Loop - Actions
              • Animation - Change (Picked unit)'s animation speed to 100.00% of its original speed
              • Unit - Unpause (Picked unit)
              • Set HT_Dammage = (Life of (Picked unit))
              • Unit - Set life of (Picked unit) to (HT_Dammage - ((Real((Level of HT_SkillCaster[HT_P_N]))) x 5.00))
              • Special Effect - Create a special effect attached to the origin of (Picked unit) using Abilities\Spells\Human\Thunderclap\ThunderClapCaster.mdl
          • Special Effect - Destroy HT_SpecialEffect[2]
          • Animation - Reset HT_SkillCaster[HT_P_N]'s animation
          • Custom script: call DestroyGroup(udg_HT_Units_in_Field[udg_HT_P_N])
          • Custom script: call RemoveUnit(udg_HT_Dummy[udg_HT_P_N])
          • Trigger - Turn off HT L1t1 <gen>
          • Trigger - Turn off HT L1t2 <gen>
        • Else - Actions
          • Do nothing << Sorry Again
 
Last edited:
Level 5
Joined
Jul 19, 2009
Messages
23
• Use (Triggering unit) instead of (Casting unit).
  • Game - Set game speed to Fastest
  • Game - Set game speed to Normal
Not needed.
• Bad Indexing.
  • Wait 0.65 game-time seconds
  • Wait 10.00 game-time seconds
Still uses waits.
  • Environment - Set fog to style Linear, z-start 1000.00, z-end 4000.00, density 0.50 and color (50.00%, 50.00%, 50.00%)
Not MPI.


You lack basic knowledge here, please study some tutorials first. You can start off by having a look at dynamic indexing templates and/or hashtables. Then, you will be able to enhance your spells into supporting multiple instances.
If you mark me unacceptable is that permanent ?
 
Level 17
Joined
Mar 17, 2009
Messages
1,349
don't double-post (more like quadruple=post here :p), click the edit button to edit ur post in case it's the last post here [i.e. no one posted after you] :)

& no the unacceptable is not permanent :)

& i dont have time to read the code but it seems u avoided the waits ;)
but btw, never use a timer of 0.01... that's too fast that it would use more cpu power when u don't need it... go for 0.03 minimum & it won't make a difference visual-wise as even that shld be faster than the frequency at which our eyes perceive motion :) but would save lots of cpu energy :D (p.s. i know... my bad... i have it as 0.01 in my tutorial but i can't edit that anymore to fix it :s)

here's a nifty trick, you could use one timer for all of this & thus also making ur spell much more efficient, i'll write the method for you & u GUI it :p

1.what would your fastest timer be? 0.03 i assume right? so: 0.03 is the timer's interval

2. we're gna need 2 real variables (counters): let's randomly call them fast & slow
(the reason we need 2 not 3, is cause the fastest is already running at every instance of the 0.03 seconds so no need to check whether to run it or not

3. here i'm assuming the slow timer runs every 1 second for 10 seconds and the fast every 0.25 seconds for 2 seconds:
  • Melee Initialization
    • Events
    • Conditions
    • Actions
      • Set major_counter = (major_counter + 0.03)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • major_counter Less than 10.00
        • Then - Actions
          • Set slow = (slow + 0.03)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • slow Greater than or equal to 1.00
            • Then - Actions
              • Set slow = 0.00
              • -------- do whatever u wana do here --------
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • major_counter Less than 2.00
            • Then - Actions
              • Set fast = (fast + 0.03)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • fast Greater than or equal to 0.25
                • Then - Actions
                  • Set fast = 0.00
                  • -------- do whatever u wana do here --------
                • Else - Actions
            • Else - Actions
        • Else - Actions
4. you should notice that i nested things inside each other in a manner that it would automatically stop everything after the 10 seconds... it needs some common sense:
if the counter is greater than 10 seconds than no need to check for whether it is greater than 2 seconds cause it already is ;)

5. ppl have different methods of doing this, you could come up with yours... this is mine :)


EDIT: it might be a little confusing so lemme knw if u lost :p

btw, never use the Do Nothing... just leave the Else statement empty & it'll do nothing ;)
 
Last edited:
Level 5
Joined
Jul 19, 2009
Messages
23
don't double-post (more like quadruple=post here :p), click the edit button to edit ur post in case it's the last post here [i.e. no one posted after you] :)

& no the unacceptable is not permanent :)

& i dont have time to read the code but it seems u avoided the waits ;)
but btw, never use a timer of 0.01... that's too fast that it would use more cpu power when u don't need it... go for 0.03 minimum & it won't make a difference visual-wise as even that shld be faster than the frequency at which our eyes perceive motion :) but would save lots of cpu energy :D (p.s. i know... my bad... i have it as 0.01 in my tutorial but i can't edit that anymore to fix it :s)

here's a nifty trick, you could use one timer for all of this & thus also making ur spell much more efficient, i'll write the method for you & u GUI it :p

1.what would your fastest timer be? 0.03 i assume right? so: 0.03 is the timer's interval

2. we're gna need 2 real variables (counters): let's randomly call them fast & slow
(the reason we need 2 not 3, is cause the fastest is already running at every instance of the 0.03 seconds so no need to check whether to run it or not

3. here i'm assuming the slow timer runs every 1 second for 10 seconds and the fast every 0.25 seconds for 2 seconds:
  • Melee Initialization
    • Events
    • Conditions
    • Actions
      • Set major_counter = (major_counter + 0.03)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • major_counter Less than 10.00
        • Then - Actions
          • Set slow = (slow + 0.03)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • slow Greater than or equal to 1.00
            • Then - Actions
              • Set slow = 0.00
              • -------- do whatever u wana do here --------
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • major_counter Less than 2.00
            • Then - Actions
              • Set fast = (fast + 0.03)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • fast Greater than or equal to 0.25
                • Then - Actions
                  • Set fast = 0.00
                  • -------- do whatever u wana do here --------
                • Else - Actions
            • Else - Actions
        • Else - Actions
4. you should notice that i nested things inside each other in a manner that it would automatically stop everything after the 10 seconds... it needs some common sense:
if the counter is greater than 10 seconds than no need to check for whether it is greater than 2 seconds cause it already is ;)

5. ppl have different methods of doing this, you could come up with yours... this is mine :)


EDIT: it might be a little confusing so lemme knw if u lost :p

btw, never use the Do Nothing... just leave the Else statement empty & it'll do nothing ;)
oh i get it every 0.03 seconds of the game time
Major_Counter adds 0.03
and when Major_Counter is greater than 10.00 the condition stops

Fast is the first action of the trigger
Slow is the second action of the trigger

so that's why they called it multi

But i still have a question what happen to the trigger?
 
Last edited:
Level 5
Joined
Jul 19, 2009
Messages
23
Check my triggers function

  • HeavensTime
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Heavens Time
    • Actions
      • Cinematic - Fade out and back in over 0.05 seconds using texture Black Mask and color (0.00%, 0.00%, 0.00%) with 0.00% transparency
      • Game - Turn the day/night cycle Off
      • Environment - Set fog to style Linear, z-start 1000.00, z-end 4000.00, density 0.50 and color (50.00%, 50.00%, 50.00%)
      • -------- Heavens Time Variables/Actions --------
      • Set HT_P_N = (HT_P_N + 1)
      • Set HT_SkillCaster[HT_P_N] = (Triggering unit)
      • Set HT_Units_in_Field[HT_P_N] = (Units in (Entire map) matching (((Matching unit) belongs to an enemy of (Owner of HT_SkillCaster[HT_P_N])) Equal to True))
      • Set HT_Attribute[HT_P_N] = (Unspent skill points of HT_SkillCaster[HT_P_N])
      • -------- Set Loops Variable [Waits] = (0) --------
      • -------- Set the timer (1) and (2) back to 0.00 --------
      • Set HT_Wait[1] = 0.00
      • Set HT_Wait[2] = 0.00
      • Set HT_Wait2[1] = 0.00
      • Set HT_Wait2[2] = 0.00
      • Unit - Create 1 Wind Summond for (Owner of HT_SkillCaster[HT_P_N]) at (Position of HT_SkillCaster[HT_P_N]) facing (Facing of HT_SkillCaster[HT_P_N]) degrees
      • Set HT_Dummy[HT_P_N] = (Last created unit)
      • Hero - Modify unspent skill points of HT_SkillCaster[HT_P_N]: Set to 0 points
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (HT_Dummy[HT_P_N] is alive) Equal to True
        • Then - Actions
          • -------- Heavens Time Start (Then Action) Condition --------
          • Trigger - Turn on HT Effect <gen>
          • Trigger - Turn on HT Loops <gen>
          • -------- Heavens Time Finish (Then Action) Condition --------
        • Else - Actions
      • -------- All variables are ready !! --------
  • HT Effect
    • Events
      • Time - Every 0.25 seconds of game time
    • Conditions
    • Actions
      • Special Effect - Create a special effect attached to the origin of HT_SkillCaster[HT_P_N] using Abilities\Spells\Items\TomeOfRetraining\TomeOfRetrainingCaster.mdl
  • HT Loops
    • Events
      • Time - Every 0.01 seconds of game time
    • Conditions
    • Actions
      • -------- ------------------------------------------------------------------------------- --------
      • Set HT_Wait[1] = (HT_Wait[1] + 0.01)
      • -------- Make Wait(1) Real add 0.01 every 0.01 seconds --------
      • -------- ------------------------------------------------------------------------------- --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • HT_Wait[1] Less than or equal to 0.86
        • Then - Actions
          • -------- Wait (1) = or less than 0.86 --------
          • Set HT_Wait[2] = (HT_Wait[2] + 0.01)
          • -------- Make Wait (1) timer number (1) --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • HT_Wait[2] Greater than or equal to 0.85
            • Then - Actions
              • -------- Make 0.01 second before end of this condition --------
              • -------- All the Actions when Wait(2) is = or greater than 0.85 --------
              • Unit - Remove Heavens Time from HT_SkillCaster[HT_P_N]
              • Unit Group - Remove HT_SkillCaster[HT_P_N] from HT_Units_in_Field[HT_P_N]
              • Unit Group - Remove all units of (Units in (Entire map) matching (((Matching unit) is Magic Immune) Equal to True)) from HT_Units_in_Field[HT_P_N]
              • Unit Group - Remove all units of (Units in (Entire map) matching (((Matching unit) is Mechanical) Equal to True)) from HT_Units_in_Field[HT_P_N]
              • Special Effect - Create a special effect attached to the origin of HT_SkillCaster[HT_P_N] using war3mapImported\Greek Mirror Image.mdx
              • Set HT_SpecialEffect[2] = (Last created special effect)
              • Unit Group - Pick every unit in HT_Units_in_Field[HT_P_N] and do (Actions)
                • Loop - Actions
                  • Animation - Change (Picked unit)'s animation speed to 0.00% of its original speed
                  • Unit - Pause (Picked unit)
              • Animation - Change HT_Dummy[HT_P_N]'s animation speed to 0.00% of its original speed
              • -------- End of this condition --------
            • Else - Actions
        • Else - Actions
      • -------- ------------------------------------------------------------------------------- --------
      • Set HT_Wait2[1] = (HT_Wait2[1] + 0.01)
      • -------- Make Wait 2(1) Real add 0.01 every 0.01 seconds --------
      • -------- ------------------------------------------------------------------------------- --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • HT_Wait2[1] Less than or equal to 21.00
        • Then - Actions
          • -------- Wait 2(1) = or less than 0.86 --------
          • Set HT_Wait2[2] = (HT_Wait2[2] + 0.01)
          • -------- Make Wait 2(1) timer number (2) --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • HT_Wait2[2] Greater than or equal to 20.00
            • Then - Actions
              • -------- Make 0.01 second before end of this condition --------
              • -------- All the Actions when Wait 2(1) is = or greater than 20.00 --------
              • Cinematic - Fade out and back in over 0.05 seconds using texture Black Mask and color (0.00%, 0.00%, 0.00%) with 0.00% transparency
              • Hero - Modify unspent skill points of HT_SkillCaster[HT_P_N]: Set to HT_Attribute[HT_P_N] points
              • Unit Group - Pick every unit in HT_Units_in_Field[HT_P_N] and do (Animation - Change (Picked unit)'s animation speed to 100.00% of its original speed)
              • Unit - Add Heavens Time to HT_SkillCaster[HT_P_N]
              • Unit Group - Pick every unit in HT_Units_in_Field[HT_P_N] and do (Actions)
                • Loop - Actions
                  • Animation - Change (Picked unit)'s animation speed to 100.00% of its original speed
                  • Unit - Unpause (Picked unit)
                  • Set HT_Dammage = (Life of (Picked unit))
                  • Unit - Set life of (Picked unit) to (HT_Dammage - ((Real((Level of HT_SkillCaster[HT_P_N]))) x 5.00))
                  • Special Effect - Create a special effect attached to the origin of (Picked unit) using Abilities\Spells\Human\Thunderclap\ThunderClapCaster.mdl
              • -------- End of this condition --------
              • Trigger - Turn off HT Effect <gen>
              • Environment - Reset fog to default values
              • Game - Turn the day/night cycle On
              • Special Effect - Destroy HT_SpecialEffect[2]
              • Animation - Reset HT_SkillCaster[HT_P_N]'s animation
              • Custom script: call DestroyGroup(udg_HT_Units_in_Field[udg_HT_P_N])
              • Custom script: call RemoveUnit(udg_HT_Dummy[udg_HT_P_N])
              • Trigger - Turn off (This trigger)
              • -------- Finish Heavens Time Trigger --------
            • Else - Actions
        • Else - Actions
      • -------- ------------------------------------------------------------------------------- --------
 
Top