• 🏆 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!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Time Diffusion v0.1 GUI/MUI

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
SPELL IS MUI AND DONT NEED JNPG TO WORK

Description:
Stops time in the targeted area for 3/5/7 seconds. Slows enemies attack and movement speed by 50% for 5 seconds.

How to import:
1.Copy triggers: PR Start, PR Loop, PR End into your map.
2.Copy units: PR_Caster with Time Diffusion (Slow) ability and PR_Effect.
3.Copy abilities: Time Diffusion ability and Time Diffusion (Slow) with Time Diffusion Buff.
4. Set buff in Time Diffusion (Slow) and give Time Diffusion (Slow) to PR_Caster.
5.
Change Condition in PR Start to
  • (Ability being cast) Equal to Time Diffusion
Change Action in PR Start to
  • Unit - Create 1 PR_Effect for (Owner of (Triggering unit)) at PR_Location[PR_CastCount] facing Default building facing (270.0) degrees
Change Action in PR End to
  • Unit - Create 1 PR_Caster for (Owner of PR_Caster[PR_LoopInteger]) at PR_Location[PR_LoopInteger] facing Default building facing (270.0) degrees
GIVE ME CREDIT IF YOU USE IT

Triggers:
  • PR Start
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Time Diffusion
    • Actions
      • Set PR_CastCount = (PR_CastCount + 1)
      • Set PR_Caster[PR_CastCount] = (Triggering unit)
      • Set PR_Location[PR_CastCount] = (Target point of ability being cast)
      • Unit - Create 1 PR_Effect for (Owner of (Triggering unit)) at PR_Location[PR_CastCount] facing Default building facing (270.0) degrees
      • Unit - Add a (1.00 + (2.00 x (Real((Level of (Ability being cast) for (Triggering unit)))))) second Generic expiration timer to (Last created unit)
      • Animation - Change (Last created unit)'s animation speed to 0.00% of its original speed
      • Set PR_UnitTimer[PR_CastCount] = (Last created unit)
      • Set PR_UnitGroup[PR_CastCount] = (Units within 280.00 of PR_Location[PR_CastCount] matching ((Matching unit) Not equal to (Triggering unit)))
      • Unit Group - Pick every unit in PR_UnitGroup[PR_CastCount] and do (Actions)
        • Loop - Actions
          • Unit Group - Add (Picked unit) to PR_UnitGroup[PR_CastCount]
          • Unit - Pause (Picked unit)
          • Animation - Change (Picked unit)'s animation speed to 0.00% of its original speed
      • Trigger - Turn on PR Loop <gen>
  • PR Loop
    • Events
      • Time - Every 0.05 seconds of game time
    • Conditions
    • Actions
      • For each (Integer PR_LoopInteger) from 1 to PR_CastCount, do (Actions)
        • Loop - Actions
          • Custom script: set bj_wantDestroyGroup = true
          • Unit Group - Pick every unit in (Units within 280.00 of PR_Location[PR_LoopInteger] matching ((((Matching unit) is in PR_UnitGroup[PR_LoopInteger]) Equal to False) and ((Matching unit) Not equal to PR_Caster[PR_LoopInteger]))) and do (Actions)
            • Loop - Actions
              • Unit Group - Add (Picked unit) to PR_UnitGroup[PR_LoopInteger]
              • Unit - Pause (Picked unit)
              • Animation - Change (Picked unit)'s animation speed to 0.00% of its original speed
  • PR End
    • Events
      • Unit - A unit Dies
    • Conditions
      • (Unit-type of (Triggering unit)) Equal to PR_Effect
    • Actions
      • For each (Integer PR_LoopInteger) from 1 to PR_CastCount, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Triggering unit) Equal to PR_UnitTimer[PR_LoopInteger]
            • Then - Actions
              • Unit - Remove PR_UnitTimer[PR_LoopInteger] from the game
              • Unit Group - Pick every unit in PR_UnitGroup[PR_LoopInteger] and do (Actions)
                • Loop - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • ((Picked unit) belongs to an enemy of (Owner of PR_Caster[PR_LoopInteger])) Equal to True
                    • Then - Actions
                      • Unit - Create 1 PR_Caster for (Owner of PR_Caster[PR_LoopInteger]) at PR_Location[PR_LoopInteger] facing Default building facing (270.0) degrees
                      • Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
                      • Unit - Order (Last created unit) to Human Sorceress - Slow (Picked unit)
                    • Else - Actions
                  • Unit - Unpause (Picked unit)
                  • Animation - Change (Picked unit)'s animation speed to 100.00% of its original speed
                  • Animation - Reset (Picked unit)'s animation
              • Unit Group - Remove all units from PR_UnitGroup[PR_LoopInteger]
              • Unit Group - Add all units of PR_UnitGroup[PR_CastCount] to PR_UnitGroup[PR_LoopInteger]
              • Unit Group - Remove all units from PR_UnitGroup[PR_CastCount]
              • Set PR_Location[PR_LoopInteger] = (Point((X of PR_Location[PR_CastCount]), (Y of PR_Location[PR_CastCount])))
              • Set PR_Caster[PR_LoopInteger] = PR_Caster[PR_CastCount]
              • Set PR_UnitTimer[PR_LoopInteger] = PR_UnitTimer[PR_CastCount]
              • Custom script: call DestroyGroup(udg_PR_UnitGroup[udg_PR_CastCount])
              • Custom script: call RemoveLocation(udg_PR_Location[udg_PR_CastCount])
              • Set PR_CastCount = (PR_CastCount - 1)
              • If (PR_CastCount Equal to 0) then do (Trigger - Turn off PR Loop <gen>) else do (Do nothing)
            • Else - Actions
Keywords:
Time Diffusion DotA Void Chronosphere
Contents

Time Diffusion v0.1 (Map)

Reviews
12th Dec 2015 IcemanBo: Too long time as NeedsFix. Rejected. 11:47, 15th Apr 2010 The_Reborn_Devil: The triggering looks ok, but this: Set PR_Location[PR_LoopInteger] = (Point((X of PR_Location[PR_CastCount]) (Y of...

Moderator

M

Moderator

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

11:47, 15th Apr 2010
The_Reborn_Devil:

The triggering looks ok, but this:
  • Set PR_Location[PR_LoopInteger] = (Point((X of PR_Location[PR_CastCount]) (Y of PR_Location[PR_CastCount])))
Could be done like this:
  • Set PR_Location[PR_LoopInteger] = PR_Location[PR_CastCount]
Your method actually leaks as you're creating a new location.


Status: Rejected until updated
Rating: N/A

PM me or another mod once you've updated this to get it reviewed again. Have a nice day!
 
Top