Spellpack Icy Spell Pack

Blackrage

Ultra Cool Member
Reaction score
25
I liked the Frost Arrow Spell the most for some reason :p

So I edited it into a vJASS version (requires Cohadars ABC system)

JASS:
scope FrostArrow

    globals
        constant integer FA_ArrowUnitRaw = 'n005' 
        constant integer FA_Raw = 'A00Q'
        constant integer FA_FNRaw = 'A00S'
        constant integer FA_DummyRaw = 'e003'
        constant real FA_Delay = 0.25
        constant real FA_DmgConst = 25.
        constant real FA_DmgLvl = 75.
    endglobals
        
        struct Arrow
            unit arr
            unit t
            unit u
        endstruct

function FA_Arrow takes nothing returns nothing
    local timer tim = GetExpiredTimer()
    local unit d
    local real dist
    local Arrow Data = GetTimerStructA(tim)
    set dist = SquareRoot((GetUnitX(Data.t) - GetUnitX(Data.arr)) * (GetUnitX(Data.t) - GetUnitX(Data.arr)) + (GetUnitY(Data.t) - GetUnitY(Data.arr)) * (GetUnitY(Data.t) - GetUnitY(Data.arr)))
    if dist >= 125 and (GetUnitState(Data.t, UNIT_STATE_LIFE) > .405) then
        set d = CreateUnit(GetOwningPlayer(Data.arr), FA_DummyRaw, GetUnitX(Data.arr), GetUnitY(Data.arr), 270)
        call UnitApplyTimedLife(d, 'BTLF', 0.5)
        call UnitAddAbility(d, FA_FNRaw)
        call SetUnitAbilityLevel(d, FA_FNRaw, GetUnitAbilityLevel(Data.u, FA_Raw))
        call IssueTargetOrder(d, "frostnova", d)
    else
        call UnitDamageTarget(Data.arr, Data.t, (FA_DmgLvl + FA_DmgConst * GetUnitAbilityLevel(Data.u, FA_Raw)), true, false, ATTACK_TYPE_MAGIC, DAMAGE_TYPE_COLD, WEAPON_TYPE_WHOKNOWS)
        call RemoveUnit(Data.arr)
        call ClearTimerStructA(tim)
        call PauseTimer(GetExpiredTimer())
        call DestroyTimer(GetExpiredTimer())
    endif
    set d = null 
    set tim = null
endfunction

function FA_Conds takes nothing returns boolean
    return GetSpellAbilityId() == FA_Raw
endfunction

function FA_Acts takes nothing returns nothing
    local Arrow Data = Arrow.create()
    local location p
    local location tp
    local timer tim
    set Data.t = GetSpellTargetUnit()
    set Data.u = GetTriggerUnit()
    set p = GetUnitLoc(Data.u)
    set tp = GetUnitLoc(Data.t)
    set Data.arr = CreateUnit(GetOwningPlayer(Data.u), FA_ArrowUnitRaw, GetLocationX(p), GetLocationY(p), AngleBetweenPoints( p, tp))
    set tim = CreateTimer()
    
    call IssueTargetOrder(Data.arr, "attack", Data.t)
    
    call SetTimerStructA(tim, Data)
    
    call TimerStart(tim, 0.25, true, function FA_Arrow)
    
    call RemoveLocation(p)
    call RemoveLocation(tp)
endfunction
endscope

function InitTrig_FrostArrow takes nothing returns nothing
    set gg_trg_FrostArrow = CreateTrigger()
    call TriggerRegisterAnyUnitEventBJ( gg_trg_FrostArrow, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition(gg_trg_FrostArrow, Condition(function FA_Conds))
    call TriggerAddAction(gg_trg_FrostArrow, function FA_Acts)
endfunction


Im planning to use this spell in my map for frost ranger (In Dawn of Corruption) :)
 

T.s.e

Wish I was old and a little sentimental
Reaction score
133
Nice spells, some quite original and looks good. That vJass confuses me a lot though.
 

Mike889

New Member
Reaction score
15
Wow, they're very cool =D +rep, i love ice pics ^^
Well, make more ice spells =P What about a Storm Gust spell that freezes everyone?
 

Nappe

New Member
Reaction score
5
After casting the Frost Arrow a few times, it appeared to get stuck on the single point and keep making frost novas at that position, and that lasted like 10 seconds and then it vanished. It happened to me 2 times when I was trying it.
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • jonas jonas:
    That sounds like fun!
    +1
  • The Helper The Helper:
    it was a blast!
  • The Helper The Helper:
    I am going to post the Youtube of the investigation in the forums when it is ready
    +1
  • jonas jonas:
    cool!
  • vypur85 vypur85:
    Sounds cool TH.
  • tom_mai78101 tom_mai78101:
    I was on a Legend of Zelda marathon...
  • tom_mai78101 tom_mai78101:
    Am still doing it now
    +1
  • jonas jonas:
    which one(s) are you playing?
  • jonas jonas:
    I played a little bit of the switch title two weeks ago and found it quite boring
  • The Helper The Helper:
    just got back from San Antonio this weekend had the best Buffalo Chicken Cheesesteak sandwhich in Universal City, TX - place was called Yous Guys freaking awesome! Hope everyone had a fantastic weekend!
    +1
  • The Helper The Helper:
    Happy Tuesday!
  • The Helper The Helper:
    We have been getting crazy numbers reported by the forum of people online the bots are going crazy on us I think it is AI training bots going at it at least that is what it looks like to me.
  • The Helper The Helper:
    Most legit traffic is tracked on multiple Analytics and we have Cloud Flare setup to block a ton of stuff but still there is large amount of bots that seem to escape detection and show up in the user list of the forum. I have been watching this bullshit for a year and still cannot figure it out it is drving me crazy lol.
    +1
  • Ghan Ghan:
    Beep boop
    +1
  • The Helper The Helper:
    hears robot sounds while 250 bots are on the forum lol
  • The Helper The Helper:
    Happy Saturday!
    +1
  • The Helper The Helper:
    and then it was Thursday...
    +2
  • tom_mai78101 tom_mai78101:
    And then Monday
    +1
  • The Helper The Helper:
    I got the day off today!
    +1
  • tom_mai78101 tom_mai78101:
    How...? (T-T)
  • The Helper The Helper:
    I took the day off. I work for myself so I can do that.
    +1
  • Varine Varine:
    Well I'm already over summer
  • jonas jonas:
    varine! good to see you
  • jonas jonas:
    what's going on, what's got you going
  • The Helper The Helper:
    good to see you varine hope you are well my friend

    The Helper Discord

    Members online

    No members online now.

    Affiliates

    Hive Workshop NUON Dome World Editor Tutorials

    Network Sponsors

    Apex Steel Pipe - Buys and sells Steel Pipe.
    Top