🏆 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!
The caster turns into a searing flame. Moving forward and deals damage to nearby enemy units, igniting them, dealing additional 15 damage per second which lasts for 5 seconds.
Level 1 - 150 damage.
Level 2 - 225 damage.
Level 3 - 300 damage.
Special Effect - Create a special effect at FF_TempPoint using FF_Spec
Special Effect - Destroy (Last created special effect)
Set FF_ReachedDist[FF_Current_Index] = (FF_ReachedDist[FF_Current_Index] + FF_Velo[FF_Current_Index])
Custom script: set bj_wantDestroyGroup = true
Unit Group - Pick every unit in (Units within FF_AoE[FF_Level[FF_Current_Index]] of FF_TempPoint) and do (Actions)
Loop - Actions
Set FF_TempUnit = (Picked unit)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(FF_TempUnit is in FF_DamagedUnits[FF_Current_Index]) Equal to False
(FF_TempUnit is alive) Equal to True
(FF_TempUnit is A structure) Equal to False
(FF_TempUnit belongs to an enemy of (Owner of FF_Caster[FF_Current_Index])) Equal to True
(FF_TempUnit is Mechanical) Equal to False
Then - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
FF_Debuff Equal to True
Then - Actions
Unit - Order FF_DummyCaster to Neutral - Parasite FF_TempUnit
Else - Actions
Unit - Cause FF_Caster[FF_Current_Index] to damage FF_TempUnit, dealing FF_Damage[FF_Level[FF_Current_Index]] damage of attack type FF_Attack_Type and damage type FF_Damage_Type
Unit Group - Add FF_TempUnit to FF_DamagedUnits[FF_Current_Index]
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
FF_DestroyTree Equal to True
Then - Actions
Destructible - Pick every destructible within FF_AoE[FF_Level[FF_Current_Index]] of FF_TempPoint and do (Actions)
Loop - Actions
Set FF_TempDest = (Picked destructible)
Unit - Order FF_DummyCaster to Harvest FF_TempDest
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Current order of FF_DummyCaster) Equal to (Order(harvest))
How to Import:
1. Copy "Fireform" and "Ignite" Abilities from object editor
2. Copy "Ignite" Buff from object editor
3. Copy "FireFormDummy" from object editor
4. Make sure your World Editor has "Automatically Create Unknown Variable" enabled. You can find it in File => Preferences
5. Copy all the triggers in "Fireform" folder
6. Make sure the variables are assigned properly
7. Enjoy!
Author's Note:
I was bored and I saw morphling's waveform so I tried to make one but with fire instead of water and this is the result. Pretty simple, actually. Hope you guys like it.
I removed the Fire Elemental model from the map to reduce to map size. If you want to use that model you can get it from here.
Changelogs:
v1.0
- Uploaded
v1.1
- Added FF_DamagedUnits which is a unit group variable to prevent the spell from causing damage repeatedly.
- Changed hide unit to 100% Invisibility when the caster is moving.
v1.2
- Use custom dummy unit instead of using the default peasant.
- Directly deindex an instance if caster is dead.
- The effect is configurable
- Attack- Damage type is configurable
v1.3
- Fixed the "Always destroying tree within loop"
- Velocity is now calculated in cast trigger
- Tree Destroyer is now given invulnerability
- Fixed Range is removed, so the caster will travel to target point instead.
v1.4
- Added Prefix FF_ for some Temp Variables (FF_TempPoint, etc)
- Fixed FF_TempPoint missing reference by relocating it outside the ITE block inside loop trigger
- Fixed FF_ReachedDist not De-allocated properly, causing the spell ends too early in some cases
- Changed FF_TreeDestroyer name to FF_DummyCaster
- Added debuff effect (damage over time) if the spell hits enemy units
Submission: Fireform v1.3
Date: 12.07.2015
Status: Approved
Rating: 3/5
Review Link
Moderator: IcemanBo
Fireform 1.2 | Reviewed by BPower | 13.06.2015
Concept[/COLOR]]
Morphs the casting units into flames, while moving him from A to...
Morphs the casting units into flames, while moving him from A to B.
In general a very simple concept, which reminds me of Waveform from Dota.
While moving the caster still stays vulnerable to enemies.
Optional checking for close trees is a fitting addition to the concept of the spell.
Code[/COLOR]]
The spell is MUI, leakless and seems to work.
Destroying tree is an optional toogle by setup, but you always do it within the loop.
Your code structure is not perfect, as you would also move a dead caster for one tick.
Your velocity ( speed[level]*0.03 ) could be calculated during the cast event.
Wc3 doesn't determine between damage type fire and magic. It's all damage type magic.
Objects[/COLOR]]
Tooltips and object data is ok.
The tree destroyer dummy should use invulnerability for safety reasons.
Here are some useful suggestions :
Make animation configurable.
Make vertex coloring configurable.
Perhaps make loop configurable, in case 0.03 is too heavy for some. But I highly doubt that.
Optionally, you give players a state reference for morphing, especially when it starts or ends. But that would rather make this a system, and that's overkill I think.
Cmiiw, But the leak occurs only once, which shouldn't be a big deal.
And fixing them would be quite tedious. At that rate it should go to Unit Indexer or Hashtables instead.
Set FF_ReachedDist[FF_Current_Index] = (FF_ReachedDist[FF_Current_Index] + (FF_Speed[FF_Level[FF_Current_Index]] x 0.03))
^Here the velocity variable could be used.
The velocity is not being deindexed properly.
Basicly you don't have to "null" primitive types like integer/reals. They won't leak.
The only one that would make sense I can see is the "ReachedDistance[index]",
because you want to reset it before next instance will use it. But also for this I would
personaly would feel better if you would set it to 0 onIndex, and not onDeindex, as it's like a better place to "prepare" an instance.
Note in import instructions to copy the dummy unit.
-------- The range of your ability --------
Set FF_Speed[1] = 1250.00
Set FF_Speed[2] = 1250.00
Set FF_Speed[3] = 1250.00
^This is actually not true. It is not the range of the ability, but only the speed.
The distance is actually this:
Set FF_Distance[FF_Max_Index] = (Distance between TempPoint and TempPoint2)
^So the point where you cast only matters for distance.
You can make the distance now configurable, as well, then you need an other array,
or you let it with going forward explicitly to casting point, but the documentation but be changed that it's only speed.
Beside that it is approveable and I will instantly do on update.
If you make more changes please quickly say it, then I will need to check demo again.
^Please, this. You have import instructions here in thread, so you can do this without updating the submission.
Concept is clear, simlple, but not unique.
Code works fine, it's leakess and MUI.
Effect is a simple periodical creation at unit's position.
It's nothing special or fancy, but looks good and is sufficient for the also simple concept.
I don't see anything wrong no more in code. Make the change mentioned above.
Sorry to Necro this thread, but I was just wondering if I could get some advice on why this isn't working in my map. All I did was copy and paste the triggers and variables, ability, and dummy unit as is into my map but for whatever reason it doesn't seem to work in my map... I don't know what I'm doing wrong.
I suggest posting on the triggers and scripts forum or World Editor Help Zone as there will likely be a long turnaround time on this thread to await a response.
You need to be more specific about what "isn't working". Are you sure all the appropriate variables were created when pasting? Did you update the rawcodes for the spell/units/other spells in the config?
You need to be more specific about what "isn't working". Are you sure all the appropriate variables were created when pasting? Did you update the rawcodes for the spell/units/other spells in the config?
Sorry about that! I attached the current version of my map to my first comment, showing all my information. Here I have attached another version, where all I have done is copy and paste the variables, ability, and dummy unit exactly as they appear in the original map and deleted all the extras I had. The only thing I made myself is the base unit with the spell (but it's the same base unit and model the OG map has). I haven't really edited anything and yet for whatever reason it still doesn't work like it does in the test map.
I copied the variables folder first the first time, then the config, cast, and loop triggers in that order.
The second time I tried to just copy the config, cast, and loop triggers and checked the automatically create unknown variables option to make sure it wasn't a copying mistake somehow.
Hey everyone. I was wondering if I could get some help on making the downloaded FireForm Spell from the Hive work in another map. It works perfectly fine when I download the map there and test it in the map file, but when I copy the custom ability, custom units, variables, and then the triggers...
www.hiveworkshop.com
Bringing this thread since there is a hidden fault in the codes, should be considered for updating when you're around @Rheiko
Added Prefix FF_ for some Temp Variables (FF_TempPoint, etc)
Fixed FF_TempPoint missing reference by relocating it outside the ITE block inside loop trigger
Fixed FF_ReachedDist not de-allocated properly, causing the spell ends too early in some cases
Changed FF_TreeDestroyer name to FF_DummyCaster
Added debuff effect (damage over time) if the spell hits enemy units
Thanks @Daffa for the heads up, I know it's kinda late now for an update, way too late in fact, but better late than never.
The hidden fault is another oversight from me, hopefully no more problem with the spell from now on.
I apologize for the problem the spell has caused, I guess that's it from me, cheers!
🔨 Downloads and Uploads have been fixed! If you still have trouble downloading or uploading assets to or from Hive, please reach out to us in the Site Discussion board.
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.