Inline question

Faust

You can change this now in User CP.
Reaction score
123
Can I make

JASS:
private function A1 takes nothing returns nothing
    set udg_Player = GetOwningPlayer(GetTriggerUnit())
    call GroupEnumUnitsInRange(G, GetUnitX(GetTriggerUnit()), GetUnitY(GetTriggerUnit()), 800, Condition(function IsUnitAnEnemy))
    loop
     set bj_lastCreatedUnit = FirstOfGroup(G)
    exitwhen bj_lastCreatedUnit == null
     call UnitDamageTarget(GetTriggerUnit(), bj_lastCreatedUnit, GetHeroAgi(GetTriggerUnit(), true) * 15, false, true, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL, WEAPON_TYPE_WHOKNOWS)
     call GroupRemoveUnit(G, bj_lastCreatedUnit)
    endloop
    call GroupClear(G)
endfunction


into

JASS:
private function A1 takes nothing returns nothing
    set udg_Player = GetOwningPlayer(GetTriggerUnit())
    call GroupEnumUnitsInRange(G, GetUnitX(GetTriggerUnit()), GetUnitY(GetTriggerUnit()), 800, Condition(function IsUnitAnEnemy))
    loop
    exitwhen FirstOfGroup(G) == null
     call UnitDamageTarget(GetTriggerUnit(), FirstOfGroup(G), GetHeroAgi(GetTriggerUnit(), true) * 15, false, true, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL, WEAPON_TYPE_WHOKNOWS)
     call GroupRemoveUnit(G, FirstOfGroup(G))
    endloop
    call GroupClear(G)
endfunction


?
Or will it do something bad like blow up the planet?
 

Tom_Kazansky

--- wraith it ! ---
Reaction score
157
I think you will waste too much call of FirstOfGroup(G) if you inline like that

also for the GetTriggerUnit(), you should put it in a local unit.

JASS:
private function A1 takes nothing returns nothing
    local unit u = GetTriggerUnit()
    set udg_Player = GetOwningPlayer(u)
    call GroupEnumUnitsInRange(G, GetUnitX(u), GetUnitY(u), 800, Condition(function IsUnitAnEnemy))
    loop
     set bj_lastCreatedUnit = FirstOfGroup(G)
    exitwhen bj_lastCreatedUnit == null
     call UnitDamageTarget(u, bj_lastCreatedUnit, GetHeroAgi(u, true) * 15, false, true, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL, WEAPON_TYPE_WHOKNOWS)
     call GroupRemoveUnit(G, bj_lastCreatedUnit)
    endloop
    call GroupClear(G)
    set u = null //don't forget to null the local unit
endfunction


---
and if you inline like that, the planet is NOT gonna blow up :p
 
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