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!
This spell was inspired by Boris_Spiders FireSeige (correct me if the name is wrong)
The icon can be found here: http://www.hiveworkshop.com/forums/icons-541/btnfiresiege-154483/
I did this out of the fun of it, I tried to make it a little flashy, there no access sfx, It's all used for some purpose.
it works like this: You use the ability, a fire bolt with a ring of fire around it will fly away, upon landing again it will Explode in a massive explosion releasing 144 small projectiles, (this part reminded me of rain of fire for some reason) each seperate projectile deals a small amount of damage, initial Aoe is about 150, in huge explosion aoe is about 1400, but it is all changeable.
I was thinking of artillary when I made this.
Setup
Events
Time - Elapsed game time is 1.00 seconds
Conditions
Actions
-------- This creates the hashtable --------
-------- * --------
Hashtable - Create a hashtable
-------- This sets the hashtable as a variable for later referance --------
-------- * --------
Set EFB_Hash = (Last created hashtable)
-------- Config --------
-------- Final explosioin, mini projectile count --------
Set Config[1] = 18
-------- projectile surround sfx count --------
Set Config[2] = 10
-------- projectile Base damage (per mini projectile) --------
Set Config[3] = 25
-------- Parabola height divider --------
Set Config[4] = (Integer(2.50))
-------- Min fire range --------
Set Config[5] = 100
-------- Automated fire distance --------
Set Config[6] = 650
Initial Fire
Events
Unit - A unit Starts the effect of an ability
Conditions
Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Ability being cast) Equal to Magic Flame bolt
Then - Actions
-------- This sets the casting location --------
-------- as well as the missile starting point --------
-------- * --------
Set Temp_Point = (Position of (Triggering unit))
-------- This sets the missiles landing area --------
-------- * --------
Set Temp_Point_2 = (Target point of ability being cast)
-------- This sets the distance between the two points --------
-------- * --------
Set Temp_Distance = (Distance between Temp_Point and Temp_Point_2)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Temp_Distance Less than or equal to (Real(Config[5]))
Then - Actions
-------- This checks too see if they are too close to the caster --------
-------- The it sets it automatically to a distance further away --------
Set Temp_Point_2 = (Temp_Point offset by (Real(Config[6])) towards (Facing of (Triggering unit)) degrees)
-------- * --------
-------- New distance calculation --------
Set Temp_Distance = (Distance between Temp_Point and Temp_Point_2)
Else - Actions
-------- This creates the dummy unit --------
-------- Set it to your dummy missile --------
Unit - Create 1 Enchanted Flame Bolt for (Owner of (Triggering unit)) at Temp_Point facing (Angle from Temp_Point to Temp_Point_2) degrees
-------- This allows fly height manipulation --------
-------- useing triggers --------
-------- * --------
Unit - Add Crow Form to (Last created unit)
-------- This sets the total distance that will be travelled --------
-------- * --------
Hashtable - Save Temp_Distance as 3 of (Key (Last created unit)) in EFB_Hash
-------- This sets the fly height it will reach so the parabola will look --------
-------- Similar every time --------
-------- change the divider to change the appearance of your parabola. --------
-------- the lower the divider the higher the missile goes --------
-------- the higher the divider the lower the missile goes --------
Hashtable - Save ((Load 3 of (Key (Last created unit)) from EFB_Hash) / (Real(Config[4]))) as 1 of (Key (Last created unit)) in EFB_Hash
-------- This is set to 0 so that you dont get muddled up if your changing it alot --------
-------- It's not 100% neccercarry --------
Hashtable - Save 0.00 as 2 of (Key (Last created unit)) in EFB_Hash
-------- Damage calculation for later dummies --------
-------- This projectile doesn't actually deal any damage itself --------
Hashtable - Save (((Real((Intelligence of (Triggering unit) (Include bonuses)))) x (Real((Level of Magic Flame bolt for (Triggering unit))))) + (Real(Config[3]))) as 4 of (Key (Last created unit)) in EFB_Hash
-------- This adds the unit to the moving group --------
-------- * --------
Unit Group - Add (Last created unit) to EFB_Moving_Units
-------- This makes sure they do not collide with eachother --------
-------- * --------
Unit - Turn collision for (Last created unit) Off
-------- This gets rid of the crow form again so they dont actually gain it as an ability --------
-------- * --------
Unit - Remove Crow Form from (Last created unit)
-------- This part is for your circle around the main missile --------
-------- the each integer if for the numbr of them, remember, the more you have the more damage it deals --------
For each (Integer Debug) from 1 to Config[2], do (Actions)
Loop - Actions
-------- Sets the distance away from the centre --------
-------- of were it spawns --------
Set Temp_Point_3 = (Temp_Point offset by 50.00 towards Circle_Position_setter degrees)
-------- same as aobut but for the landing area --------
Set Temp_Point_4 = (Temp_Point_2 offset by 50.00 towards Circle_Position_setter degrees)
-------- creates the dummies for your surrounding sfx --------
Unit - Create 1 Flame ring segment for (Owner of (Triggering unit)) at Temp_Point_3 facing (Angle from Temp_Point_3 to Temp_Point_4) degrees
-------- like before allows you to manaipulate units fly hieght using triggers --------
-------- * --------
Unit - Add Crow Form to (Last created unit)
-------- Like pre meantioned these set fly height, distance, and one for future referance --------
-------- This sets the total distance that will be travelled --------
-------- * --------
Hashtable - Save (Distance between Temp_Point_3 and Temp_Point_4) as 3 of (Key (Last created unit)) in EFB_Hash
-------- This sets the fly height it will reach so the parabola will look --------
-------- Similar every time --------
-------- change the divider to change the appearance of your parabola. --------
-------- the lower the divider the higher the missile goes --------
-------- the higher the divider the lower the missile goes --------
Hashtable - Save ((Load 3 of (Key (Last created unit)) from EFB_Hash) / (Real(Config[4]))) as 1 of (Key (Last created unit)) in EFB_Hash
-------- This is set to 0 so that you dont get muddled up if your changing it alot --------
-------- It's not 100% neccercarry --------
Hashtable - Save 0.00 as 2 of (Key (Last created unit)) in EFB_Hash
-------- this calculated damage dealt by the dummies --------
Hashtable - Save (((Real((Intelligence of (Triggering unit) (Include bonuses)))) x (Real((Level of Magic Flame bolt for (Triggering unit))))) + (Real(Config[3]))) as 4 of (Key (Last created unit)) in EFB_Hash
-------- set the + to the same as your ditance traveled --------
Hashtable - Save ((Load 2 of (Key (Picked unit)) from EFB_Hash) + 10.00) as 2 of (Key (Picked unit)) in EFB_Hash
-------- This is the parabola, It's better if you didn't touch this --------
-------- * --------
Hashtable - Save ((((4.00 x (Load 1 of (Key (Picked unit)) from EFB_Hash)) / (Load 3 of (Key (Picked unit)) from EFB_Hash)) x ((Load 3 of (Key (Picked unit)) from EFB_Hash) - (Load 2 of (Key (Picked unit)) from EFB_Hash))) x ((Load 2 of (Key (Picked unit)) from EFB_Hash) / (L as 5 of (Key (Picked unit)) in EFB_Hash
-------- changes the fly height --------
-------- * --------
Animation - Change (Picked unit) flying height to (Load 5 of (Key (Picked unit)) from EFB_Hash) at 0.00
-------- This kills them upon landing --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Load 5 of (Key (Picked unit)) from EFB_Hash) Less than or equal to -1.00
Then - Actions
-------- kills them --------
-------- * --------
Unit - Kill (Picked unit)
-------- Removes them from the moving group --------
-------- * --------
Unit Group - Remove (Picked unit) from EFB_Moving_Units
Else - Actions
Damage and explosion
Events
Unit - A unit Dies
Conditions
Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Unit-type of (Triggering unit)) Equal to Enchanted Flame Bolt
Then - Actions
-------- All these are the same --------
For each (Integer Debug) from 1 to Config[1], do (Actions)
Loop - Actions
-------- Sets the initial location of the main explosion --------
-------- * --------
Set Temp_Point = (Position of (Triggering unit))
-------- Sets the point of landing --------
Set Temp_Point_4 = (Temp_Point offset by 300.00 towards Circle_Position_setter degrees)
-------- Creates the dummies --------
Unit - Create 1 Flame ring segment for (Owner of (Triggering unit)) at Temp_Point facing (Angle from Temp_Point to Temp_Point_4) degrees
-------- Allows fly height manipulation --------
-------- * --------
Unit - Add Crow Form to (Last created unit)
-------- This sets the total distance that will be travelled --------
-------- * --------
Hashtable - Save (Distance between Temp_Point and Temp_Point_4) as 3 of (Key (Last created unit)) in EFB_Hash
-------- This sets the fly height it will reach so the parabola will look --------
-------- Similar every time --------
-------- change the divider to change the appearance of your parabola. --------
-------- the lower the divider the higher the missile goes --------
-------- the higher the divider the lower the missile goes --------
Hashtable - Save ((Load 3 of (Key (Last created unit)) from EFB_Hash) / (Real(Config[4]))) as 1 of (Key (Last created unit)) in EFB_Hash
-------- This is set to 0 so that you dont get muddled up if your changing it alot --------
-------- It's not 100% neccercarry --------
Hashtable - Save 0.00 as 2 of (Key (Last created unit)) in EFB_Hash
-------- this calculated damage dealt by the dummies --------
Hashtable - Save (Load 4 of (Key (Triggering unit)) from EFB_Hash) as 4 of (Key (Last created unit)) in EFB_Hash
Unit Group - Add (Last created unit) to EFB_Moving_Units
-------- Prevents midair collisions --------
-------- * --------
Unit - Turn collision for (Last created unit) Off
-------- Removes the ability again --------
-------- * --------
Unit - Remove Crow Form from (Last created unit)
-------- this is a core part --------
-------- set this to 360/number of surrounding dummies of your main missiles --------
-------- The standard had 10 surrounding --------
-------- so: 360/10 = 36 --------
-------- if you want to do this the easy way --------
-------- change the part after + --------
-------- to another arithmetic function --------
-------- using the above formula --------
Set Circle_Position_setter = (Circle_Position_setter + (360.00 / (Real(Config[1]))))
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Unit-type of (Triggering unit)) Equal to Flame ring segment
Then - Actions
-------- Sets the location of the units death area --------
Set Temp_Point = (Position of (Triggering unit))
-------- Creates sfx on the explosion area --------
Special Effect - Create a special effect at Temp_Point using Abilities\Spells\Other\Incinerate\FireLordDeathExplode.mdl
-------- Kills the sfx --------
-------- * --------
Special Effect - Destroy (Last created special effect)
-------- specifies requirements for targets --------
Set Temp_Group = (Units within 100.00 of Temp_Point matching ((((Matching unit) belongs to an enemy of (Owner of (Triggering unit))) Equal to True) and ((((Matching unit) is Magic Immune) Equal to False) and ((((Matching unit) is A ground unit) Equal to True) and (((Matching
Unit Group - Pick every unit in Temp_Group and do (Actions)
Loop - Actions
-------- Damages the units --------
-------- * --------
Unit - Cause (Triggering unit) to damage (Picked unit), dealing (Load 4 of (Key (Triggering unit)) from EFB_Hash) damage of attack type Spells and damage type Normal
V1.45:
Made a few things configureable.
Fixed a bug found
Added a mana cost
Added a proper range
V1.30:
Small bug fix when casting on the same point as the caster
V1.25:
with the help from D4RK G4ND4LF lag has been pretty much obliterated.
V1.1:
Geatly reduced lag
Reduced Aoe
Changed landing sfx for the smaller projectiles.
V1.0:
First uploaded
Documentation included, Enjoy :]
Please give creadit to me if you use this in your map.
Credz To D4RK G4ND4LF for reducing he movement lag using 1 line of custom script.
I found that removing one layer gets rid of most if not all lag, There were alot of them xD if I recall tha standard is 144, 36 per layer you can do the same thing by lowing the number of dummies per layer to 75% of what it was which If I'm right is 27,
I will try your method.
Well my lack of knowledge in that area made me fail greatly.
I have lowered the standard to 72 projectiles and 18 per layer to eliminate most the lag.
It lags alot, but i havent the best GPU. It would be nice if you added a random effect to the second fire missiles, so that they dont land in a perfect circle.
Lag is mainly caused by the sfx count, If the comp doesn't like it remove a ring or two, and then your lag will decrease greatly.
As for a random affect on the second missiles, it would need for it to be balanced in every direction if you know what i mean a shape which is symmertrical in pretty much every direction, for example a star, A clover sort of shape.
anyway Any other shape will require new formula so that might take a while
It lags alot, but i havent the best GPU. It would be nice if you added a random effect to the second fire missiles, so that they dont land in a perfect circle.
my GPU is quite good (Geforce 9800 GT) but my CPU isn't and I've lags so I think the lag is not caused by the effects but the calculations behind blizzards pathing check
I tried using this spell in my map. I copied the units, the abilities, and the triggers. But it doesnt work. When i try to save my map, it says theres a error on line 115. Im fairly new to the importing custom spells. Help anyone? The error says "Line 115, Expect a name" or something. I can save the test map. But i cant save it on mine.. How does that work...
I gave tank commander some example on how to use the SetUnitX/Y and used a custom JASS function in the map header
however it would be easier to inline this cause there would not be any need to copy it then
I tried using this spell in my map. I copied the units, the abilities, and the triggers. But it doesnt work. When i try to save my map, it says theres a error on line 115. Im fairly new to the importing custom spells. Help anyone? The error says "Line 115, Expect a name" or something. I can save the test map. But i cant save it on mine.. How does that work...
hmmm.. Prehaps it's D4RK_G4ND4LF's custom script line that is causing your problem, I beleive you will need JNGP if I recall the name correctly, If I am correct I will put it in the description about the requirement.
If the problem persists after trying JNGP send me a vm about it and I'll see what I can do.
Ok, i use the NG WE (new gen world editor) and i can enable the trigger. The last trigger is fine now. But, theres now a new error popping up for me which is "Line 2856 Undeclared function MoveUnitFast." I've been having trouble lately on usuing the custom spells because my newgen warcarft doesnt work.. Anyways what else does this spell require to use?
hmmm.. Prehaps it's D4RK_G4ND4LF's custom script line that is causing your problem, I beleive you will need JNGP if I recall the name correctly, If I am correct I will put it in the description about the requirement.
If the problem persists after trying JNGP send me a vm about it and I'll see what I can do.
I don't want to give a bad rating but this is very misleading, it says GUI / Triggers, yet you use stuff that needs New Gen Pack or w/e , I downloaded it and it still does not work, where do we put the MoveUnitFast function in the header at, because when i put it in the actions of Moving trigger, I get a Syntax error first line of the function MoveUnitFast Declaration, very poor author. . . if you can tell me what to do I would be greatly appreciated, and give a good rating and + rep because this is a cool spell but i can't use it. . .
where is the header into the header of my map? lol that you didn't put in the category Jass also, not that you are a bad scripter, just was upset that I thought i had everything right in my map and i find out there is something there that I thought wasnt going to be there until i do all that work lol
:/ I'm trying to build in the code as it were so that nobody needs to get the thing from the header (also, the header as it were is the thing you see when you click the map icon in trigger editor, or atleast how I see it.)
However I'm getting one error which is really annoying me:
The error is:
Line 69: Invalid number of arguements
What I was trying to do was because the stupid function wasnt declaring (or i didnt know how to) I would just do what the function was doing but in custom scripts like one line each and i just kept getting errors also, i got to one point where you got the second error at and then i gave up lol
Certainly, If you go into the 'setup' trigger, there will be the configureable settings, for damage it's base damage (per mini projectile) the standard damage is 25 for each one. if you want to change the full calculation formula however you need to go into the initial one (when you cast it) and find the damage formula through the documentation which should guide you.
Yeah, it works!!! after my effort to understand what TC said, I copied script from "Custom Script Code" in trigger editor and pasted it into my own map. Also check the triggers especially the ones that involved units and abilities.
But then I copied the custom script into my map, and it worked! Thanks. (I already uploaded the picture, so I pasted it here anyway, so people can see what errors can be fixed).
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.