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

Fiery Damnation v1.31 Gui and Jass

-Spell is gui, mui, epic
-This one's made by myself and therefore, please give credits if you like it and want to use it.

Fiery Damnation
BTNFireForTheCannon.png
Shoots out three huge firebolts which explode, dealing damage while moving and on impact to all nearby enemy units.
The ground starts to burn for a certain time damaging all enemies who get near the flames

GUI:v1.01:
~Changed the If/Then/Else
~Added deatils to the tooltip

v1.11:
~Due to heavy drama, I deleted two lines of the third trigger

v1.20 Seeing the firetrace as a massive effectspam, I just removed it and modified some tiny bits of the code

JASS: v1.01:
Corrected some stuff

v1.02:
Meeeeeh.. here you got your constant

v1.10:
Rewrote some stuff, merged the two scopes

v1.11:
Rewrote MOAR


JASS:
//==Fiery Damnation v1.31==
//Credits got to: HINDYhat for teaching jass :p
//Needs jngp
//2oo9 by Squiggy

scope FieryDamnation initializer Init                                     //Yea, the first scope handles the dummycreation and the order to move forward
    
    globals                                                                 //I've seperated the globals into two blocks - the first one's important to modify the spell
        private constant integer SPELLID = 'A001'                           //We set up the constants for the spellid, the dummyability, the angle in which the dummies appear
        private constant integer ABILITYID = 'A000'                         //and the dummyid as well as the path to the effect which is done when casting
        private constant integer DUMMYID = 'n000'
        private constant integer DUMMY2ID = 'n001'
        private constant string EFFPATH = "Abilities\\Weapons\\DemolisherFireMissile\\DemolisherFireMissile.mdl"
        private constant string EFFPATH2 = "Objects\\Spawnmodels\\Other\\NeutralBuildingExplosion\\NeutralBuildingExplosion.mdl"
        private constant real LIFEFACTOR = 5
    endglobals
    
    globals
        private player p
    endglobals
    
    private function Conditions takes nothing returns boolean
        return GetSpellAbilityId() == SPELLID                                //First, check which ability is cast
    endfunction
    
    private function Conditions2 takes nothing returns boolean
        return GetUnitTypeId(GetTriggerUnit()) == DUMMYID            //We check which unit dies
    endfunction
    
    private function Actions takes nothing returns nothing
        local unit caster = GetTriggerUnit()
        local real expTime
        local real x = GetUnitX(caster)
        local real y = GetUnitY(caster)
        local real facing = GetUnitFacing(caster)-30                        //Here, we set the angle in which to first dummy should move to the caster's - 30
        local real dx
        local real dy
        local unit u
        local integer I = 0
        local location targloc = GetSpellTargetLoc()        
        set p = GetOwningPlayer(caster)
        set dx = GetLocationX(targloc)-x
        set dy = GetLocationY(targloc)-y
        set expTime = SquareRoot(dx * dx + dy * dy)/425
        loop
            exitwhen I == 3
            set dx = x+700*Cos((facing+I*30)*bj_DEGTORAD)                   //Here we set up the targetpoint
            set dy = y+700*Sin((facing+I*30)*bj_DEGTORAD)
            set u = CreateUnit(p, DUMMYID, x, y, facing+I*30)                //The dummy
            call IssuePointOrder(u, "move", dx, dy)
            call UnitApplyTimedLife(u, 'BTLF', expTime)
            call SetUnitAbilityLevel(u, ABILITYID, GetUnitAbilityLevel(caster, SPELLID))    //Now we align the dummy's immolation ability to the caster's level of the ability
            call DestroyEffect(AddSpecialEffect(EFFPATH,x, y))              //And last, some effect
            set I = I + 1
        endloop
        set caster = null
        call RemoveLocation(targloc)
        set targloc = null
        set u = null
    endfunction
    
    private function Actions2 takes nothing returns nothing                     //Now the second actions-function is to handle everything what happens when the dummy dies
        local unit u = GetTriggerUnit()
        local real x = GetUnitX(u)
        local real y = GetUnitY(u)
        local real exptimer = GetUnitAbilityLevel(u, ABILITYID)                 //We set the timer of the dummy to lvl    
        set u = CreateUnit(GetOwningPlayer(u), DUMMY2ID, x, y, 90)              //We spawn the new dummy
        call UnitApplyTimedLife(u, 'BTLF', exptimer*(LIFEFACTOR))               //And now we attach the timer to it
        call DestroyEffect(AddSpecialEffect(EFFPATH2,x, y))                      //It's ordered to cast 'fan of knives' 
        set u = null
    endfunction
    
    private function Init takes nothing returns nothing
        local trigger t = CreateTrigger()
        local trigger t2 = CreateTrigger()
        call TriggerRegisterAnyUnitEventBJ(t, EVENT_PLAYER_UNIT_SPELL_EFFECT)
        call TriggerAddCondition(t, Condition(function Conditions))
        call TriggerAddAction(t, function Actions)
        call TriggerRegisterAnyUnitEventBJ(t2, EVENT_PLAYER_UNIT_DEATH)
        call TriggerAddCondition(t2, Condition(function Conditions2))
        call TriggerAddAction(t2, function Actions2)
    endfunction
endscope

Keywords:
fire, flame, burn, firebolt, hot, heat, explode, aoe, sfx, squiggy, epic, lulz
Contents

Holy Execution (Map)

Reviews
20:25, 10th Jun 2009 hvo-busterkomo: An impressive effect, with acceptable scripting. A complain of mine is that you don't use the If / Then / Else multiple functions. Because of that, your code is less readable and contains the Do Nothing function...

Moderator

M

Moderator

20:25, 10th Jun 2009
hvo-busterkomo: An impressive effect, with acceptable scripting. A complain of mine is that you don't use the If / Then / Else multiple functions. Because of that, your code is less readable and contains the Do Nothing function.

Edit: Changes made, looks good.

02:58, 12th Jun 2009
Eccho:
The effect are nice, and the scripting is acceptable and that's it. The timer actually does never turn off when I tested it (so it is ran the whole time). Inefficient if/then/elses is not the way to go. Squiggy, we both know that simple 5*(level-1) is very easy to figure out... The spell fire event trigger could also be more efficient by not using all those variables which is actually not required.

'zeroing' ints and reals are pointless.

Your map init trigger kind of messes up the FDspelltrig3 in the beginning, which might be a reason to why it could mess up.

Furthermore, the fact that the spell requires 5 object editor things is a downside, according to me. But it's not really affecting the review when I say that it will served as useful.
 
Level 8
Joined
Dec 22, 2008
Messages
207
hvo-busterkomo's right you know? If/Then/Else makes it SO much more organized and readable for the people who actually want to use your spell, like me maybe :)
Do Nothing, stupid enough... DOES SOMETHING :p
It takes up lines in the actual script ---->

Also, never use:
  • Do nothing
If there is no actions the trigger then does nothing by default. However, the Do nothing does something, and that something is decreasing efficiency and slowing the trigger down!

Looking at spell...
 
Level 25
Joined
Jun 5, 2008
Messages
2,572
Hmm, not to offend anyone but does this really deserves the 5/5 rating?
I mean much better coded spells on the hive got 4/5 only because they are GUI and now one that isn't coded as good as they got 5/5?
The coincidence that a mod made this and got 5/5...
Has several improve points:
  • remove the other dummy
  • use universal dummies and the dummy.mdx model
  • u use too much dummy abilities, some are completely unnecesary
  • use channel for the base spell, it exists for that reason
  • use another hotkey the current one is tricky, i suggest D
  • lags quite a bit when spammed due to the excesive amount of dummies
  • the loop trigger never shuts down, i added a debug message to confirm my thought
  • too basic, i got 3/5 for a leakless spell simmilar to this which even didn't laged as this and it's loop trigger did turn off, it's a shame to see that this is rated 5/5 only cause the maker is a moderator.
  • i think i got everything i wanted to say here, i may add something if i remember or find more.
So the final rating is: 3/5; even if you correct everything 4/5.
EDIT:
Shame to see that you rate on prejudice hvo-busterkomo, i thought you were difrent :p
 
Level 28
Joined
Mar 25, 2008
Messages
2,955
Hmm, not to offend anyone but does this really deserves the 5/5 rating?
Yes it does

Meh I don't feel to go through all of your points, as for your downrating I suggest that you overthink your prejudices..
It's not because I'm a mod but rather because I invested time and made a good spell.
If you want to complain, contact the spellmods or somebody else but I think the rating fits the spell quite good
 
Level 25
Joined
Jun 5, 2008
Messages
2,572
Rating this 5/5 feels just wrong when i see much better spells with only less effects being rated 4/5 or 3/5.
So my rating stands, this isn't for a 5/5 in any way other than effects which are overspammed(the big flame is ugly and the spell would have been better if you used searing arrows for the missiles and then thought of a fine explosion).
EDIT:
I didn't downrated it i just said my opinion.
I never downrate spells, i just say what is by me the realistic grade of the spell.
 
Level 28
Joined
Mar 25, 2008
Messages
2,955
Accept it, the spell is good and the people like it (see above comments).
Just because you think else..well, feel free to have it re-reviewed but this will lower my respect towards you..
Anyway, if you can do it better, show me - redo the spell using your way.

Last, if you ight have noticed, all my spells contain lots and big effects - if you don't like them, keep away.

Have a nice day..
 
Level 25
Joined
Jun 5, 2008
Messages
2,572
This is a matter of principle, i don't care if people like it.
Moderators shouldn't rate this spell 5/5 just because you made it :p
Moderators should be fair, this example shows how a realisticly speaking 3/5 spell gets a 5/5 grade.
EDIT:
A good version of fiery damnation, eh?
Well if you want me i can make at the least 100% more effective one and promise no lag whatsoever :p
If that will make you happy...
EDIT2:
Btw it's a shame to see that a comunity moderator agrees to accept the false ratings :p
And it's a shame to see that resource moderator may give better ratings to other moderators...
 
Level 17
Joined
Mar 17, 2009
Messages
1,349
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    • If - Conditions
      • FD_int Equal to 1
    • Then - Actions
      • Unit - Add a 5.00 second Generic expiration timer to (Last created unit)
    • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • FD_int Equal to 2
        • Then - Actions
          • Unit - Add a 10.00 second Generic expiration timer to (Last created unit)
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • FD_int Equal to 3
            • Then - Actions
              • Unit - Add a 15.00 second Generic expiration timer to (Last created unit)
            • Else - Actions
Basic math would have allowed you to do all this in like... umm... 1 action?
Sguiggy, you EVEN use a Do nothing!
We're not downrating this, do you think we really care?

And the people who might have said it's nice (no offense to anyone) aren't necessarily talking about the efficiency but about the idea/special effects...

And those who are talking about efficiency and said it's good, well then they should go and read some tutorials on the matter.

I don't feel like reading the whole thing, so I'm judging on the obvious for now.

You even leak a group once...
 
Level 14
Joined
Nov 2, 2008
Messages
579
Well to be blunt , I rated 5/5 because:

-> It didn't lag at all on my computer.
-> The spell is MUI.
-> I really love the effects he used.
-> Awesome idea, never been made before.

Not because he's a mod. That would make me a kiss ass. -.-
SO a few leaks is not going to lower my opinion of the spell.
 
Level 28
Joined
Mar 25, 2008
Messages
2,955
Basic math would have allowed you to do all this in like... umm... 1 action
I suck at maths

Sguiggy, you EVEN use a Do nothing!
Where?

It has a poor to average coding and it got 5/5.
Don't tell me that the indexing system you use makes the spell better
Boy, I think you'd need a rest from all the internet.. it makes your brain smaller and you rage about stupid things ^.^
 
Level 17
Joined
Mar 17, 2009
Messages
1,349
  • If (FD_int Equal to 1) then do (Unit - Add a 5.00 second Generic expiration timer to (Last created unit)) else do (If (FD_int Equal to 2) then do (Unit - Add a 10.00 second Generic expiration timer to (Last created unit)) else do (If (FD_int Equal to 3) then do (Unit - Add a 15.00 second Generic expiration timer to (Last created unit)) else do (Do nothing)))
But even if you fix this, it doesn't mean that it's good enough :p

And even my little sister knows that 5 x 1 = 5, 5 x 2 = 10, 5 x 3 = 15... so... umm... very basic math...
 
Level 28
Joined
Mar 25, 2008
Messages
2,955
  • If (FD_int Equal to 1) then do (Unit - Add a 5.00 second Generic expiration timer to (Last created unit)) else do (If (FD_int Equal to 2) then do (Unit - Add a 10.00 second Generic expiration timer to (Last created unit)) else do (If (FD_int Equal to 3) then do (Unit - Add a 15.00 second Generic expiration timer to (Last created unit)) else do (Do nothing)))
/fail, I changed it
 

Ash

Ash

Level 22
Joined
Aug 27, 2005
Messages
1,684
I think it''s personal preference, really.

From my own standpoint, I think this is an excellent spell. We can argue the to and frow of it all day, if you wish, but in the end that's all it is: personal preference.

Why would you want a spell mod's opinion on the issue, please tell me you're not that lifeless? You've had your say, move on and don't be stubborn.

Thanks. :)
 
Level 25
Joined
Jun 5, 2008
Messages
2,572
How do you call a spell that goes on every 0.04 seconds forever?
I mean even if it has no actions to execute it checks,sets and destroys a group every 0.04 secons.
Procesor usage gone to waste and a poor spell.
About maths, isn't this simple:
  • "duration variable" = "number" + ("number" * spell level)
Instead of stupidly long if then else action.
Getting hostile, are we Squiggy?
 
Level 14
Joined
Nov 2, 2008
Messages
579
Omg guys this is childish really.
If you dont like the spell then get over it.
If you do then use it and rate it 5/5. Who tha f\\\ cares.
Seriously.

Off topiC: wow comments are flying in like fleeeees.

\/ To that post:

This stuff happens man. all the time. I'm not always happy with my rating but .. well I improve and ask for a review. I can tell you there are hundreds of unrealistic ratings here.

Edit: Lulz, this thread prolly got more comments in the last 10 minutes then since it has been uplaoded. Lol.
 

Ash

Ash

Level 22
Joined
Aug 27, 2005
Messages
1,684
Hmm, Ash how did you came in this story?
Except being a friend of Squiggy i never heard you review or even give an opinion about spells/triggers.
And i am only pointing that the spell has flaws but on oposite to some better spells this one gets a 5/5 rating.

I came in, most likely, the same way you did. I browsed a few spells.

I did tell him how to improve it.
And btw i am not childish only realistic :p
And it ain't fair to other users who get their spells rated below 5/5, but which resource might even be better than this example...

So you've told him what you thought, that's that. Why don't you just leave it then? I wouldn't call it realistic to provoke an argument, I'd call it stubborn and childish. Everyone has their vote, if you don't like it then you don't vote 5/5. Simple enough, really.
 
Level 25
Joined
Jun 5, 2008
Messages
2,572
This would be like this:
1.I see an icon on hive
2.It has been rated 5/5
3.I report that it's a c'n'p
4.I prove it's a c'n'p
5.The people tell me: "It's your opinion, now move aside"

I don't think that would happen if this were an icon, so why should something simmilar it happen in the spell section?
EDIT:
Does it turn off?
Add a game message and it will never show, therefore it never shut's down.
 
Level 17
Joined
Mar 17, 2009
Messages
1,349

Ash

Ash

Level 22
Joined
Aug 27, 2005
Messages
1,684
Sguiggy, stop arguing non-sense.... if this spell couldn't get better then we wouldn't suggest improvements... and if there is area for improvements than it's not a perfect spell than it's not a 5/5 rated spell...

End of story! And oh:


EDIT:
@ Ash: Kingz is just giving an example...
An metaforic example :p
EDIT:
One more flaw, the periodic trigger is turned on from the map start, it should turn on when the spell is first time casted :p

It's a lunatic-esque example, to be honest. How can you argue that if someone submits a spell you think isn't top-notch, the same principle as someone who has stolen something applies?

And as I said, it's personal preference. Whilst the spell creator could take the critique with a bit more valour, you could use a bit more common sense and argue as a more sentience being.

It's all personal preference; I think the spell is pretty good, so I voted 5/5. You don't, so you didn't vote 5/5. End of story, really.

EDIT: I hate to cut this short, but I need to finish a linguistics book off by tomorrow so I'm going to head off and read the last part now.

I'll reply tomorrow morning, or something.
 
Level 25
Joined
Jun 5, 2008
Messages
2,572
That was an example of the simmilar thing i am trying to prove -.-
The spell is unefficent, therefore it can't get a 5/5.
The moderator gives it a 5/5 even with the flaws.
Other people's resources get lower grades even if they have those flaws fixed?
Sorry but this here seems like the spell moderator didn't take a closer look and just slammed the high rating on it :p
EDIT:
@Squiggy
Awaiting...
EDIT2:
Now squiggy say me what u used to record the video and i will show you how it fails...
 
Level 17
Joined
Mar 17, 2009
Messages
1,349
This even has a mistake... I want to see you argue about that:
  • Unit - Set level of FD_impact for (Last created unit) to FD_int
  • Unit - Set level of FD_damage for (Last created unit) to FD_int
  • If (FD_int Equal to 1) then do (Unit - Add a 5.00 second Generic expiration timer to (Last created unit)) else do (If (FD_int Equal to 2) then do (Unit - Add a 10.00 second Generic expiration timer to (Last created unit)) else do (If (FD_int Equal to 3) then do (Unit - Add a 15.00 second Generic expiration timer to (Last created unit)) else do (Do nothing)))
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    • If - Conditions
      • FD_int Equal to 1
    • Then - Actions
      • Unit - Add a 5.00 second Generic expiration timer to (Last created unit)
    • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • FD_int Equal to 2
        • Then - Actions
          • Unit - Add a 10.00 second Generic expiration timer to (Last created unit)
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • FD_int Equal to 3
            • Then - Actions
              • Unit - Add a 15.00 second Generic expiration timer to (Last created unit)
            • Else - Actions
Can you identify the mistake?
Well... adding generic expiration timers to only a bunch of dummies twice and leaving other dummies aside...
 
Top