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!
Description
Summons a blast of water, throwing surrounding enemies in the air, at a targeted area. If unit, which is under the effect of Geyser, have less than 15% hit point, then it will explode area around itself, dealing damage and stuning.
Custom script: set udg_G_UnitGroup[udg_G_CastCount] = null
Else - Actions
Set G_MaxHeight[G_CastCount] = 500.00
Set G_UnitGroup[G_CastCount] = (Units within 200.00 of G_TargetPoint matching ((((Matching unit) belongs to an enemy of (Owner of (Triggering unit))) Equal to True) and ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Magic Immune) Equal to False) and (((Matchin
Unit Group - Pick every unit in G_UnitGroup[G_CastCount] and do (Actions)
Loop - Actions
Trigger - Add to Geyser Explosion <gen> the event (Unit - (Picked unit) Takes damage)
Unit - Add Fly Trick to (Picked unit)
Unit - Pause (Picked unit)
Unit - Turn collision for (Picked unit) Off
Unit - Cause (Triggering unit) to damage (Picked unit), dealing (100.00 x (Real((Level of Geyser for (Triggering unit))))) damage of attack type Spells and damage type Universal
Unit - Create 1 Geyser Caster for (Owner of (Triggering unit)) at G_TargetPoint facing Default building facing (270.0) degrees
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
Unit - Add Geyser (Dummy) to (Last created unit)
Unit - Order (Last created unit) to Human Mountain King - Thunder Clap
For each (Integer A) from 1 to G_CastCount, do (Actions)
Loop - Actions
Set G_CurrentHeight[(Integer A)] = (G_CurrentHeight[(Integer A)] + 50.00)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Number of units in G_UnitGroup[(Integer A)]) Greater than 0
Then - Actions
Unit Group - Pick every unit in G_UnitGroup[(Integer A)] and do (Actions)
Loop - Actions
Animation - Change (Picked unit) flying height to G_CurrentHeight[(Integer A)] at 1000.00
Special Effect - Create a special effect attached to the origin of (Picked unit) using Objects\Spawnmodels\Naga\NagaDeath\NagaDeath.mdl
Special Effect - Destroy (Last created special effect)
Else - Actions
Unit Group - Add all units of G_UnitGroup[G_CastCount] to G_UnitGroup[(Integer A)]
Set G_CurrentHeight[(Integer A)] = G_CurrentHeight[G_CastCount]
Set G_CastCount = (G_CastCount - 1)
Set G_RemoveCount = (Integer A)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
G_CurrentHeight[(Integer A)] Greater than or equal to G_MaxHeight[(Integer A)]
Then - Actions
Set G_CurrentHeight[(Integer A)] = 0.00
Unit Group - Pick every unit in G_UnitGroup[(Integer A)] and do (Actions)
Loop - Actions
Animation - Change (Picked unit) flying height to (Default flying height of (Picked unit)) at 1000.00
Unit - Remove Fly Trick from (Picked unit)
Unit - Unpause (Picked unit)
Unit - Turn collision for (Picked unit) On
Unit Group - Remove all units from G_UnitGroup[(Integer A)]
Unit Group - Add all units of G_UnitGroup[G_CastCount] to G_UnitGroup[(Integer A)]
Set G_CurrentHeight[(Integer A)] = G_CurrentHeight[G_CastCount]
Set G_CastCount = (G_CastCount - 1)
Set G_RemoveCount = (Integer A)
Else - Actions
Geyser Explosion
Events
Conditions
((Triggering unit) has buff Geyser ) Equal to True
(Life of (Triggering unit)) Less than or equal to ((Max life of (Triggering unit)) x 0.15)
((Triggering unit) belongs to an enemy of (Owner of (Damage source))) Equal to True
Actions
Set G_TargetPoint = (Position of (Triggering unit))
Custom script: set bj_wantDestroyGroup = true
Unit Group - Pick every unit in (Units within 250.00 of G_TargetPoint matching ((((Matching unit) belongs to an enemy of (Owner of (Damage source))) Equal to True) and ((((Matching unit) is A structure) Equal to False) and (((Matching unit) is alive) Equal to True)))) and do (Actions)
Loop - Actions
Unit - Create 1 Geyser Caster for (Owner of (Damage source)) at G_TargetPoint facing Default building facing (270.0) degrees
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
Unit - Add Geyser Wave to (Last created unit)
Unit - Order (Last created unit) to Human Mountain King - Storm Bolt (Picked unit)
Special Effect - Create a special effect at G_TargetPoint using Objects\Spawnmodels\Naga\NagaDeath\NagaDeath.mdl
Special Effect - Destroy (Last created special effect)
Trigger - Turn off (This trigger)
Unit - Cause (Damage source) to damage (Triggering unit), dealing ((Life of (Triggering unit)) + 1.00) damage of attack type Spells and damage type Universal
v0.5:
Now it can be opened in standart WE
v0.4:
Removed point leaks
Removed food cost from dummy
v0.3:
Fixed MUI
Removed some global variables
v0.2:
Now Geyser does not affect magic immune units
Some minor code changes
v0.1:
First Release
Animation - Change (Picked unit) flying height to (Default flying height of (Picked unit)) at 1000.00
Make it 0, it will change the unit flying height instantly.
For each (Integer A) from 1 to G_CastCount, do (Actions)
I would suggest you to use custom global integer variable.
- A timer of 0.03 might be better.
- You can always use an buff when detecting if a unit life becomes less than 15%.
- No documentation (violates one of THW spell rules)
- I think the thing with the 15% life is too imbalanced, but that is just an opinion.
1-The spell provide only one level
2-No documentation
3-what is the point of that? the thing below the turn off wont happen , no?
Trigger - Turn off (This trigger)
Unit - Cause (Damage source) to damage (Triggering unit), dealing (Max life of (Triggering unit)) damage of attack type Spells and damage type Universal
I really like GUI but making GUI spells which require JNGP is not that smart
and without being able to test your map I can tell you that it will cause bugs
if you make this:
Events
Time - Elapsed game time is 1.00 seconds
Conditions
Actions
Set g2 = g
Custom script: call DestroyGroup(udg_g)
Set u = Footman 0000 <gen>
Unit Group - Add u to g
Unit Group - Add u to g2
Game - Display to (All players) for 0.00 seconds the text: (String((Number of units in g)))
Game - Display to (All players) for 0.00 seconds the text: (String((Number of units in g2)))
both groups will be destroyed and therefore unable to store and units
it will display "0" twice on your screen
this will work:
Actions
Unit Group - Remove all units from g2
Unit Group - Add all units of g to g2
Unit Group - Remove all units from g
same goes for locations:
test
Events
Time - Elapsed game time is 1.00 seconds
Conditions
Actions
Set loc = (Point(1337.00, 1337.00))
Set loc2 = loc
Game - Display to (All players) the text: (String((Y of loc2)))
Custom script: call RemoveLocation(udg_loc)
Game - Display to (All players) the text: (String((Y of loc2)))
this will display 1337 and then 0
but I did not destroy loc so how could that happen?
both locations are somehow "linked" together so both will face the same destiny and be destroyed
I'd recommend to use real values instead since they won't leak anyway
if you still want to use the GUI functions you will need a single location to do this:
Actions
Set loc = (Point(x, y))
Custom script: call RemoveLocation(udg_loc)
this way you can also make it compatible with the standard world editor
try not to use the "unit takes damage" event since there usually are better ways and you will leak an event
and you don't have to null global variables cause they will be reused anyway
I haven't seen this spell ingame since it obviously can't be opened with my JGNP ...
but I dunno if I should feel screwed or honored. 2 guys copying my spell "Geyser" from my spellpack in its concept just one after the other.
But well, since I quitted actively producing spells I don't really care ... just saying "this was my idea!!!!" although it isn't makes me mad <.<
(I might be wrong with my copycat-assumption since I couldn't check it ingame, though!)
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.