No stunning and No Freezing

Windwalk

New Member
Reaction score
8
JASS:
function Trig_FrostPath_JASS_Conditions takes nothing returns boolean
    return GetSpellAbilityId() == 'A003'
endfunction

function frostpathboolean takes nothing returns boolean
    return IsUnitEnemy(GetEnumUnit(), GetOwningPlayer(GetTriggerUnit())) and IsUnitType(GetFilterUnit(), UNIT_TYPE_STRUCTURE) == false and GetEnumUnit() != GetTriggerUnit()
endfunction

globals
    unit sub1
    unit dummy
    real damage
endglobals

function groupdamage takes nothing returns nothing
    call IssueTargetOrder(dummy, "frostnova", GetEnumUnit())
    call IssueTargetOrder(dummy, "thunderbolt", GetEnumUnit())
    call UnitDamageTargetBJ(sub1, GetEnumUnit(), damage, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL )
endfunction

function Trig_FrostPath_JASS_Actions takes nothing returns nothing
    local unit sub = GetTriggerUnit()
    local location subloc = GetUnitLoc(sub)
    local location spellloc = GetSpellTargetLoc()
    local real angle = AngleBetweenPoints(subloc, spellloc)
    local integer level = GetUnitAbilityLevel(sub, 'A003')
    local real ofcount = -90.00
    local integer frostpathloops = 1
    local location offset
    local location dummyloc
    local group gg
    local unit caster
    local real spireangle = angle - 180.00
    set sub1 = GetTriggerUnit()
    set spellloc = null
    set damage = ( I2R(GetHeroStatBJ(bj_HEROSTAT_AGI, sub, true)) * I2R(level) )
    call RemoveLocation(spellloc)
    call TriggerSleepAction( 0.05 )
    call SetUnitAnimation(sub, "attack swim" )
    loop
        exitwhen frostpathloops >= 9
        set frostpathloops = frostpathloops + 1
        set ofcount = ( ofcount + 110.00 )
        set offset = PolarProjectionBJ(subloc, ofcount, angle)
        call CreateUnitAtLoc(GetOwningPlayer(sub), 'h006', offset, spireangle)
        call UnitApplyTimedLife(GetLastCreatedUnit(), 'BTLF', 1.00 )
        set dummyloc = GetUnitLoc(GetLastCreatedUnit())
        call CreateUnitAtLoc(GetOwningPlayer(sub), 'h007', offset, angle)
        call UnitApplyTimedLife(GetLastCreatedUnit(), 'BTLF', 1.00 )
        set gg = GetUnitsInRangeOfLocMatching(175.00, offset, Condition(function frostpathboolean))
        call CreateUnitAtLoc(GetOwningPlayer(sub), 'h00A', dummyloc, angle )
        call UnitAddAbility(GetLastCreatedUnit(), 'A001')
        call SetUnitAbilityLevel(GetLastCreatedUnit(), 'A001', level)
        call UnitAddAbility(GetLastCreatedUnit(), 'A004')
        call SetUnitAbilityLevel(GetLastCreatedUnit(), 'A004', level)
        set dummy = GetLastCreatedUnit()
        call UnitApplyTimedLife(dummy, 'BTLF', 1.00 )
        call ForGroup(gg, function groupdamage )
        call TriggerSleepAction( 0.03 )
        set offset = null
        set dummyloc = null
        set gg = null
        set dummy = null
        call RemoveLocation (offset)
        call DestroyGroup (gg)
    endloop
    set sub = null
    set subloc = null
    call RemoveLocation (subloc)
endfunction

//===========================================================================
function InitTrig_FrostPath_JASS takes nothing returns nothing
    local trigger FrostPath_JASS = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( FrostPath_JASS, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( FrostPath_JASS, Condition( function Trig_FrostPath_JASS_Conditions ) )
    call TriggerAddAction( FrostPath_JASS, function Trig_FrostPath_JASS_Actions )
endfunction


Okay well this creates a path of "Frost" and it stuns and freezes anyone thats comes in the Path.

Anywho The dummy isn't Stunning :S and not freezing the enenmy

+REP for help :S

and if u find a leak thats cool too

plus when u do

Location = null do u have to do call RemoveLocation (udg_Location) as well?
 

Windwalk

New Member
Reaction score
8
oh i never knew that :S thanks ill try that right now

But it still didnt freeze/storm bolt :S and it didn't damage

JASS:
function Trig_FrostPath_JASS_Conditions takes nothing returns boolean
    return GetSpellAbilityId() == 'A003'
endfunction

function frostpathboolean takes nothing returns boolean
    return IsUnitEnemy(GetFilterUnit(), GetOwningPlayer(GetTriggerUnit())) and IsUnitType(GetFilterUnit(), UNIT_TYPE_STRUCTURE) == false and GetFilterUnit() != GetTriggerUnit()
endfunction

globals
    unit sub1
    unit dummy
    real damage
endglobals

function groupdamage takes nothing returns nothing
    call IssueTargetOrder(GetLastCreatedUnit(), "frostnova", GetEnumUnit())
    call IssueTargetOrder(GetLastCreatedUnit(), "thunderbolt", GetEnumUnit())
    call UnitDamageTargetBJ(sub1, GetEnumUnit(), damage, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL )
endfunction

function Trig_FrostPath_JASS_Actions takes nothing returns nothing
    local unit sub = GetTriggerUnit()
    local location subloc = GetUnitLoc(sub)
    local location spellloc = GetSpellTargetLoc()
    local real angle = AngleBetweenPoints(subloc, spellloc)
    local integer level = GetUnitAbilityLevel(sub, 'A003')
    local real ofcount = -90.00
    local integer frostpathloops = 1
    local location offset
    local location dummyloc
    local group gg = CreateGroup()
    local unit caster
    local real spireangle = angle - 180.00
    set sub1 = GetTriggerUnit()
    set spellloc = null
    set damage = ( I2R(GetHeroStatBJ(bj_HEROSTAT_AGI, sub, true)) * I2R(level) )
    call RemoveLocation(spellloc)
    call TriggerSleepAction( 0.05 )
    call SetUnitAnimation(sub, "attack swim" )
    loop
        exitwhen frostpathloops >= 9
        set frostpathloops = frostpathloops + 1
        set ofcount = ( ofcount + 110.00 )
        set offset = PolarProjectionBJ(subloc, ofcount, angle)
        call CreateUnitAtLoc(GetOwningPlayer(sub), 'h006', offset, spireangle)
        call UnitApplyTimedLife(GetLastCreatedUnit(), 'BTLF', 1.00 )
        set dummyloc = GetUnitLoc(GetLastCreatedUnit())
        call CreateUnitAtLoc(GetOwningPlayer(sub), 'h007', offset, angle)
        call UnitApplyTimedLife(GetLastCreatedUnit(), 'BTLF', 1.00 )
        set gg = GetUnitsInRangeOfLocMatching(175.00, offset, Condition(function frostpathboolean))
        set dummy = CreateUnitAtLoc(GetOwningPlayer(sub), 'h00A', dummyloc, angle )
        call UnitAddAbility(GetLastCreatedUnit(), 'A001')
        call SetUnitAbilityLevel(GetLastCreatedUnit(), 'A001', level)
        call UnitAddAbility(GetLastCreatedUnit(), 'A004')
        call SetUnitAbilityLevel(GetLastCreatedUnit(), 'A004', level)
        call UnitApplyTimedLife(dummy, 'BTLF', 1.00 )
        call ForGroup(gg, function groupdamage )
        call TriggerSleepAction( 0.03 )
        set offset = null
        set dummyloc = null
        set gg = null
        set dummy = null
        call RemoveLocation (offset)
        call DestroyGroup (gg)
    endloop
    set sub = null
    set subloc = null
    call RemoveLocation (subloc)
endfunction

//===========================================================================
function InitTrig_FrostPath_JASS takes nothing returns nothing
    local trigger FrostPath_JASS = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( FrostPath_JASS, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( FrostPath_JASS, Condition( function Trig_FrostPath_JASS_Conditions ) )
    call TriggerAddAction( FrostPath_JASS, function Trig_FrostPath_JASS_Actions )
endfunction
 

The Undaddy

Creating with the power of rage
Reaction score
55

saw792

Is known to say things. That is all.
Reaction score
280
You also leak a group there (at least). First you create a group, then you set the same variable to a function that creates another group, leaving the first group floating out in space forever. Remove the '... = CreateGroup()' part to stop that (at least before you optimize the code).
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top