1. Are you planning to upload your awesome spell or system to Hive? Please review the rules here.
    Dismiss Notice
  2. Updated Resource Submission Rules: All model & skin resource submissions must now include an in-game screenshot. This is to help speed up the moderation process and to show how the model and/or texture looks like from the in-game camera.
    Dismiss Notice
  3. DID YOU KNOW - That you can unlock new rank icons by posting on the forums or winning contests? Click here to customize your rank or read our User Rank Policy to see a list of ranks that you can unlock. Have you won a contest and still havn't received your rank award? Then please contact the administration.
    Dismiss Notice
  4. The Lich King demands your service! We've reached the 19th edition of the Icon Contest. Come along and make some chilling servants for the one true king.
    Dismiss Notice
  5. The 4th SFX Contest has started. Be sure to participate and have a fun factor in it.
    Dismiss Notice
  6. The poll for the 21st Terraining Contest is LIVE. Be sure to check out the entries and vote for one.
    Dismiss Notice
  7. The results are out! Check them out.
    Dismiss Notice
  8. Don’t forget to sign up for the Hive Cup. There’s a 555 EUR prize pool. Sign up now!
    Dismiss Notice
  9. The Hive Workshop Cup contest results have been announced! See the maps that'll be featured in the Hive Workshop Cup tournament!
    Dismiss Notice
  10. Check out the Staff job openings thread.
    Dismiss Notice
Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

Fire Wall 1.01

Submitted by maskedpoptart
This bundle is marked as approved. It works and satisfies the submission rules.
Requires:
JassNewGenPack
TimerUtils
List
TimedBuffEffects (only in the test map)

Credits:
All the JNGP guys
Vexorian (TimerUtils)
MaskedPoptart (List, TimedBuffEffects)

Inspired by the spell from Diablo 2.

Description:
This is a pretty simple vJASS spell. You cast it on a point or a unit, and it will create a wall of flame perpendicular to you. These flames periodically damage nearby units. The flames will die out after their duration is up.

Importing/Setup:
To import the spell, copy paste the "Fire Wall" and "Other Libraries" folders into your map. Copy the ability from the object editor, or make your own. Finally, go to the top of the Firewall trigger and make sure the SPELL_ID matches the rawcode of the ability you just made. To configure the spell, go to the Firewall trigger and look in the Setup Section for the stuff you want to change.

Other stuff
This spell is compatible with wc3 tft v1.24b. There are no known bugs, leaks, or inefficient things.

Anyway,
Enjoy. :)

Updated to FireWall v1.01
- can now damage destructibles! You decide what types of destructibles are valid to damage in the IsValidDestTarget function, just as you decide which types of units are valid in the IsValidUnitTarget function. Remember you can make structures and magic immune units valid targets... it's up to you.

- units that are in range now get an attached effect identical to the one caused by the red immolation ability. I created a separate library to allow me to do this without using dummies, dummy abilities, or actual buffs (I hate making people import all that extra object editor crap). See the TimedBuffEffects library for more info.

- fixed the inefficient things mentioned by hvo-busterkomo (couldn't find the wall system he was talking about though)

Keywords:
Fire, Wall, Flame, Burn, Burning, Hot, Sexy, Ownage, Diablo 2, Sorceress
Contents

Just another Warcraft III map (Map)

Reviews
Moderator
20:18, 29th Aug 2009 hvo-busterkomo: The spell is decent (approved), but should try to avoid useless conversions. You can easilly avoid all of the R2I calls by modifying a few of the functions. You also use local variables in the Actions function...
  1. 20:18, 29th Aug 2009
    hvo-busterkomo:
    Review
    The spell is decent (approved), but should try to avoid useless conversions. You can easilly avoid all of the R2I calls by modifying a few of the functions. You also use local variables in the Actions function when you can just use the values directly into the create method. Isn't their a script at WC3C that is used to easily create wall spells?
     
  2. Deuterium

    Deuterium

    Joined:
    Mar 17, 2009
    Messages:
    1,301
    Resources:
    2
    Spells:
    1
    Tutorials:
    1
    Resources:
    2
    Huge code for such a simple spell.. great job! :)
     
  3. Just_Spectating

    Just_Spectating

    Joined:
    May 16, 2007
    Messages:
    7,023
    Resources:
    46
    Models:
    11
    Icons:
    9
    Skins:
    26
    Resources:
    46
    yeah, i think it could be done in GUI too :p
     
  4. Yixx

    Yixx

    Joined:
    Oct 12, 2008
    Messages:
    1,492
    Resources:
    3
    Spells:
    3
    Resources:
    3
    Now that is some bitch-ass piece of code!
    The first thing that caught my attention is the list. Anyone else would have used a 'Flame array' if you know what i mean. The code seems really good and certainly like a maskedpoptart-code. But the thing that i was amazed by is how you managed to NOT use any angle/sine/cosine calculation!
    Well besides that i saw no flaws in the code. And i looked through it quite thoroughly.

    Though my upper fella's are kinda right, the spell is easy and could have been done in GUI (though that lacks efficiency and i more like to look through (v)Jass than GUI), this spell could NEVER have been done more maskpoptart-ish! =D

    Great job! ^^

    EDIT:
    Off-topic
    Could you try to teach me how to not use angles but your calculations instead? Because it looks Way more efficient to me this way!
    the truth
    Yes of course i can copy your equotations but that doesnt teach me the fine things of the logic behind it, which is what really intrigued me about it!
     
  5. Element of Water

    Element of Water

    Joined:
    Aug 3, 2008
    Messages:
    2,298
    Resources:
    5
    Spells:
    3
    Tutorials:
    1
    JASS:
    1
    Resources:
    5
    It's not much more efficient. It requires a SquareRoot calculation plus quite a bit of multiplication/division.
     
  6. Deuterium

    Deuterium

    Joined:
    Mar 17, 2009
    Messages:
    1,301
    Resources:
    2
    Spells:
    1
    Tutorials:
    1
    Resources:
    2
    Cosine and sine and all that aren't... well how can I explain that in a simple way... well they're like BJs in Jass :p
    They've got certain calculations behind them, so they are avoidable ;)

    As EoW says, bit of math :p
     
  7. maskedpoptart

    maskedpoptart

    Joined:
    Aug 4, 2006
    Messages:
    351
    Resources:
    1
    Spells:
    1
    Resources:
    1
    EoW, in this case, using vectors makes more sense and is a little more efficient than using polar. If you used polar, you would have to use Atan2 to get the angle between the caster and target. You convert rectangular coordinates to polar. After adding pi/2 to make it perpendicular, you would have to convert the polar coordinates back into rectangular by doing Cos(angle) and Sin(angle). Each individual trig operation is slower than SquareRoot. When combined, the trig operations are at least three times slower than finding the SquareRoot. Considering we only have to call these functions once, using vectors won't make any noticable difference in speed. It just makes more sense to use.
     
  8. Element of Water

    Element of Water

    Joined:
    Aug 3, 2008
    Messages:
    2,298
    Resources:
    5
    Spells:
    3
    Tutorials:
    1
    JASS:
    1
    Resources:
    5
    What maskedpoptart did wasn't to write his own way of finding the sine/cosine. He just used a different way of finding a perpendicular line.

    Yeah, I guess it makes sense, but in most situations where it'd give you any efficiency gain, it'd be useless using vectors anyway as you probably have to recalculate the angle every 0.035 seconds.
     
  9. maskedpoptart

    maskedpoptart

    Joined:
    Aug 4, 2006
    Messages:
    351
    Resources:
    1
    Spells:
    1
    Resources:
    1
    You are right to a certain extent. There are situations where you have to use polar and it is useless to convert it to vectors, such as making something move in a circular path. There are other situations where you could use polar, but it would be quite a bit less efficient than using vectors, such as collisions.
     
  10. Element of Water

    Element of Water

    Joined:
    Aug 3, 2008
    Messages:
    2,298
    Resources:
    5
    Spells:
    3
    Tutorials:
    1
    JASS:
    1
    Resources:
    5
    Well yeah, calculating collision is something that's always done with vectors, but again, usually collisions happen barely once per second, which doesn't make much difference when the polar coordinates are used 60 times per second.
     
  11. maskedpoptart

    maskedpoptart

    Joined:
    Aug 4, 2006
    Messages:
    351
    Resources:
    1
    Spells:
    1
    Resources:
    1
    Update! See the OP for what I added. Oh I also added a bunch of crap to the terrain in the test map because I was bored... ;)
     
  12. G00dG4m3

    G00dG4m3

    Joined:
    Oct 31, 2009
    Messages:
    97
    Resources:
    16
    Maps:
    1
    Spells:
    15
    Resources:
    16
    Well, I made a Wall of Fire spell in my map in GUI...
     
  13. Andser

    Andser

    Joined:
    Jan 25, 2011
    Messages:
    56
    Resources:
    1
    Maps:
    1
    Resources:
    1
    Good

    This is a good map :goblin_boom:
    • //TESH.scrollpos=0
    • //TESH.alwaysfold=0
    • function Trig_Melee_Initialization_Actions takes nothing returns nothing
      • call FogEnable(false)
      • call FogMaskEnable(false)
    • endfunction
    • //===========================================================================
    • function InitTrig_Melee_Initialization takes nothing returns nothing
      • set gg_trg_Melee_Initialization = CreateTrigger( )
      • call TriggerAddAction( gg_trg_Melee_Initialization, function Trig_Melee_Initialization_Actions )
    • endfunction
    :spell_breaker: :infl_thumbs_up: