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(), 039;B00U039;) > 0
endfunction
private function A1 takes nothing returns nothing
call UnitAddAbility(GetOrderedUnit(), 039;A02J039;)
call SetPlayerAbilityAvailable(GetOwningPlayer(GetOrderedUnit()), 039;A02J039;, false)
endfunction
private function A2 takes nothing returns nothing
call UnitRemoveAbility(GetOrderedUnit(), 039;A02J039;)
endfunction
private function A3 takes nothing returns nothing
local integer i = 0
local real x
local real y
local unit u
call UnitRemoveAbility(GetTriggerUnit(), 039;B00U039;)
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 When I manually turn it off, or they fire once (and immolation turned off, spellbook removed), lag goes away...
I have no idea :nuts: