Spellbook with disabled passive ability -> lag

Faust

You can change this now in User CP.
Reaction score
123
JASS:
scope StarBurstRockets initializer I


private function C1 takes nothing returns boolean
    return GetIssuedOrderId() == OrderId("immolation")
endfunction

private function C2 takes nothing returns boolean
    return GetIssuedOrderId() == OrderId("unimmolation")
endfunction

private function C3 takes nothing returns boolean
    return GetUnitAbilityLevel(GetTriggerUnit(), 'B00U') > 0
endfunction

private function A1 takes nothing returns nothing
    call UnitAddAbility(GetOrderedUnit(), 'A02J')
    call SetPlayerAbilityAvailable(GetOwningPlayer(GetOrderedUnit()), 'A02J', false)
endfunction

private function A2 takes nothing returns nothing
    call UnitRemoveAbility(GetOrderedUnit(), 'A02J')
endfunction

private function A3 takes nothing returns nothing
    local integer i = 0
    local real x
    local real y
    local unit u
    call UnitRemoveAbility(GetTriggerUnit(), 'B00U')
    call IssueImmediateOrder(GetEventDamageSource(), "unimmolation")
    call ReduceMana(GetEventDamageSource(), 15)
    loop
     set i = i + 1
    exitwhen i > 5
     set x = GetUnitX(GetTriggerUnit()) + GetRandomReal(1, 350) * Cos(GetRandomReal(1, 360) * bj_DEGTORAD)
     set y = GetUnitY(GetTriggerUnit()) + GetRandomReal(1, 350) * Sin(GetRandomReal(1, 360) * bj_DEGTORAD)
     call DestroyEffect(AddSpecialEffect("Abilities\\Weapons\\Mortar\\MortarMissile.mdl", x, y))
    endloop
    set i = 0
    loop
     set i = i + 1
    exitwhen i > 5
     set x = GetUnitX(GetTriggerUnit()) + GetRandomReal(1, 350) * Cos(GetRandomReal(1, 360) * bj_DEGTORAD)
     set y = GetUnitY(GetTriggerUnit()) + GetRandomReal(1, 350) * Sin(GetRandomReal(1, 360) * bj_DEGTORAD)
     call DestroyEffect(AddSpecialEffect("Abilities\\Weapons\\SteamTank\\SteamTankImpact.mdl", x, y))
    endloop
    set udg_Player = GetOwningPlayer(GetEventDamageSource())
    call GroupEnumUnitsInRange(G, GetUnitX(GetTriggerUnit()), GetUnitY(GetTriggerUnit()), 350, Condition(function IsUnitAnEnemy))
    loop
     set u = FirstOfGroup(G)
    exitwhen u == null
     call UnitDamageTarget(GetEventDamageSource(), u, GetEventDamage(), true, false, ATTACK_TYPE_SIEGE, DAMAGE_TYPE_NORMAL, WEAPON_TYPE_WHOKNOWS)
     call GroupRemoveUnit(G, u)
    endloop
endfunction

//===========================================================================
private function I takes nothing returns nothing
    local trigger t = CreateTrigger()
    call TriggerRegisterAnyUnitEvent(t, EVENT_PLAYER_UNIT_ISSUED_ORDER)
    call TriggerAddCondition(t, Condition(function C1))
    call TriggerAddAction(t, function A1)
    set t = CreateTrigger()
    call TriggerRegisterAnyUnitEvent(t, EVENT_PLAYER_UNIT_ISSUED_ORDER)
    call TriggerAddCondition(t, Condition(function C2))
    call TriggerAddAction(t, function A2)
    set t = CreateTrigger()
    call TriggerRegisterAnyUnitDamaged(t)
    call TriggerAddCondition(t, Condition(function C3))
    call TriggerAddAction(t, function A3)
endfunction

endscope


When it's active on 5 or more units, the game starts to lag (more units more lag)...
They don't even fire, no enemies nearby, but it lags o_O When I manually turn it off, or they fire once (and immolation turned off, spellbook removed), lag goes away...
I have no idea :nuts:
 

Frozenhelfir

set Gwypaas = Guhveepaws
Reaction score
56
I didn't read thru the code, but if you think a disabled ability is lagging it, give all of the abilities an extra level. Level 1 does nothing (all fields set to 0). This will effectively disable it, but it'll be active in reality :eek:
 

Faust

You can change this now in User CP.
Reaction score
123
Lol, I disable spellbook to hide the icon of the book and the poison sting based ability. :)
 

Frozenhelfir

set Gwypaas = Guhveepaws
Reaction score
56
Disable it on map init for all players. That happens in my map, 2 units start with it, up to 9 more can be created later with the spellbook before the game ends. No lag.
 

Faust

You can change this now in User CP.
Reaction score
123
Hmm, tried but didn't help.
Edit: I disabled the trigger and it still lags.. hmm must be some bug with immolation. Damit :\
Edit2: Lesson learned: don't make immolation with 0 duration ^^
 

Andrewgosu

The Silent Pandaren Helper
Reaction score
716
Actually, you need to preload the abilities by giving them to a dummy unit on map initialization.
 

Komaqtion

You can change this now in User CP.
Reaction score
469
Well, why use immolation with 0 duration ??? :S

If it's permanent you wanted, just use "Permanent Immolation" :D
 

Faust

You can change this now in User CP.
Reaction score
123
Why not read the goddamn thread before posting something stupid?
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      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