• 🏆 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!

Chronosphere v1.1

Help I accidentally made a spell!!!

Chronosphere:
Opens a rip in spacetime, causing everything to be locked in time except the caster. Lasts 4/6/8 seconds.


Chronosphere by NightSkyAurora

No need to give credits to me. I didn't invent this spell, I just made an approved (almost) version for everyone to use.

Credits:
PGRU-Unexpected - Chronosphere model
Maker - Pause concept

note: I added a stand animation to the chronosphere model so it won't fade after 6 seconds. It's file size is also smaller than the one in dota.

How to import:
¯¯¯¯¯¯¯¯¯¯¯
1. File -> Preferences -> Automaticly create unknown variables while pasting trigger data
2. Export chronosphere model and add it to your map
3. Copy the Pause and Chronosphere spells to your map
4. Copy the Chronosphere unit to your map.
5. Copy the Chronosphere trigger folder to your map
6. Ensure that _Pause and CH_Model is set properly in the ini trigger and add the ini trigger's code to YUOR map's ini trigger
7. Rate this spell
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯


  • ini
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- This following spell can be used anywhere in your map as an alternative to pause --------
      • Set _Pause = Pause
      • -------- configurable --------
      • Set Config_CH_Spell = Chronosphere
      • Set Config_CH_Unit = Chronosphere
      • Set Config_CH_Duration = 2.00
      • Set Config_CH_lvlDuration = 2.00
      • Set Config_CH_AoE = 400.00
      • Set Config_CH_lvlAoE = 0.00
      • -------- Model causes lag on first cast.... Preloading. --------
      • Custom script: call RemoveUnit(CreateUnit(Player(PLAYER_NEUTRAL_PASSIVE), udg_Config_CH_Unit, 0, 0, 0))
  • Chronosphere ini
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Config_CH_Spell
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • CH_Dex Equal to 0
        • Then - Actions
          • Trigger - Turn on Chronosphere loop <gen>
        • Else - Actions
      • Set CH_Dex = (CH_Dex + 1)
      • Set CH_Caster[CH_Dex] = (Triggering unit)
      • Set CH_lvl = (Level of Config_CH_Spell for CH_Caster[CH_Dex])
      • Set CH_p = (Target point of ability being cast)
      • -------- Chronosphere dummy must be owned by caster, otherwise true sight will not work --------
      • Unit - Create 1 Config_CH_Unit for (Owner of CH_Caster[CH_Dex]) at CH_p facing Default building facing degrees
      • Custom script: call RemoveLocation(udg_CH_p)
      • Set CH_Effect[CH_Dex] = (Last created unit)
      • Unit - Add a (Config_CH_Duration + ((Real(CH_lvl)) x Config_CH_lvlDuration)) second Generic expiration timer to CH_Effect[CH_Dex]
      • Set CH_AoE[CH_Dex] = (Config_CH_AoE + ((Real(CH_lvl)) x Config_CH_lvlAoE))
      • -------- Next function has no effect if AoE is 400 --------
      • -------- The chronosphere looks odd if it's size is not 100%. I'm not a modeler so I can't fix it. If that is a probelm, use a diffirent model or fix it yourself. --------
      • Animation - Change CH_Effect[CH_Dex]'s size to ((CH_AoE[CH_Dex] / 4.00)%, 0.00%, 0.00%) of its original size
  • Chronosphere loop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • For each (Integer CH_i) from 1 to CH_Dex, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (CH_Effect[CH_i] is alive) Equal to True
            • Then - Actions
              • Set CH_p = (Position of CH_Effect[CH_i])
              • Custom script: set bj_wantDestroyGroup=true
              • -------- I know I don't have to filter Chronosphere since it has locust and won't be picked, but for some reason - if I don't filter chronosphere - then the chronospheres can pause each other... --------
              • Unit Group - Pick every unit in (Units within CH_AoE[CH_i] of CH_p) and do (Actions)
                • Loop - Actions
                  • Set CH_unit = (Picked unit)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • CH_unit Not equal to CH_Caster[CH_i]
                      • (Unit-type of CH_unit) Not equal to Chronosphere
                    • Then - Actions
                      • Unit Group - Add CH_unit to CH_Group
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (CH_unit is in CH_Group2) Equal to False
                        • Then - Actions
                          • Unit - Add _Pause to CH_unit
                          • Unit - Order CH_unit to Human Footman - Defend
                          • Unit - Pause the expiration timer for CH_unit
                          • Animation - Change CH_unit's animation speed to 0.00% of its original speed
                          • Unit Group - Add CH_unit to CH_Group2
                        • Else - Actions
                    • Else - Actions
              • Custom script: call RemoveLocation(udg_CH_p)
            • Else - Actions
              • Set CH_Caster[CH_i] = CH_Caster[CH_Dex]
              • Set CH_Effect[CH_i] = CH_Effect[CH_Dex]
              • Set CH_AoE[CH_i] = CH_AoE[CH_Dex]
              • Set CH_Dex = (CH_Dex - 1)
              • Set CH_i = (CH_i - 1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • CH_Dex Equal to 0
                • Then - Actions
                  • Trigger - Turn off (This trigger)
                • Else - Actions
      • Unit Group - Pick every unit in CH_Group2 and do (Actions)
        • Loop - Actions
          • Set CH_unit = (Picked unit)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (CH_unit is in CH_Group) Equal to False
            • Then - Actions
              • Unit - Remove _Pause from CH_unit
              • Unit - Unpause the expiration timer for CH_unit
              • Animation - Change CH_unit's animation speed to 100.00% of its original speed
              • Unit Group - Remove CH_unit from CH_Group2
            • Else - Actions
      • Unit Group - Remove all units from CH_Group



v1.1
-Changed filtering method
-Changed some variable names
-Use GUI function to clear groups

v1.0d
-Fixed as suggested here

v1.0c
-Moved the condition that turns looping trigger off back to the bottom
-Removed unnecessary group clear
-Removes unit from CH_Group

v1.0b
-Fixed configuration structure
-Only checks if spell instances are 0 upon de-index
Contents

Chronosphere (Map)

Reviews
00:12, 5th June 2016 Tank-Commander: V1.0c - Problems resolved, approved (might want to change the filename to match the version number though) - could do with some minor improvements for the filtering method (setting a variable to a picked unit and...
Level 37
Joined
Mar 6, 2006
Messages
9,240
-You state that the effect looks funny if the scale is not 100%, but then you have a static value for the divider.
-The death type of the dummy should be can't raise, does not decay because now the dummy lingers there for a good minute and a half after the spell ends. You could also modify death time.
-Filtering out the dummy unit type is not needed. It will only be detected after it dies.
-The casting animation on the hero stops a bit too early due to too short follow through time.
 
i copy the spell in my map but i cant make it work :(
I explained everything in the "readme" trigger. If you still have problems to import it, post the map so I can have a look.

interesting, the idea is from red alert right?
I got this idea from DotA. I have no idea if DotA invented this or if they got it from somewhere else. Regardless, this spell is pretty much identical to that of DotA
 
Top