NetherHawk
New Member
- Reaction score
- 26
Ok i know its old - fashioned and out of date to use kattana handle vars but i'm having some problems. My trigger does not fire all the time even if i set the random integer thingy to be 100%.
several stuff i have done to try to find out the problem is, removing the locust thing, removing the AutoFireGroup_Conditions .
JASS:
function AutoFire_Jass_Conditions takes nothing returns boolean
return GetSpellAbilityId() == 039;B00X039; // autofire buff
endfunction
function AutoFire_Attacker takes nothing returns boolean
local trigger tr = GetTriggeringTrigger()
local unit u = GetHandleUnit(tr,"attacker")
return GetAttacker() == u // to check if the attacking unit is still the same? could this be the problem?
endfunction
function AutoFireGroup_Conditions takes nothing returns boolean
local trigger tr = GetTriggeringTrigger()
local unit u = GetHandleUnit(tr,"attacker")
local boolean b1 = IsUnitEnemy(GetFilterUnit(), GetOwningPlayer(u)) == true
local boolean b2 = IsUnitType(GetFilterUnit(), UNIT_TYPE_MAGIC_IMMUNE) == false
local boolean b3 = IsUnitType(GetFilterUnit(), UNIT_TYPE_STRUCTURE) == false
local boolean b4 = IsUnitType(GetFilterUnit(), UNIT_TYPE_DEAD) == false
return b1 and b2 and b3 and b4
endfunction
function AutoFire_Attack takes nothing returns nothing
local trigger tr = GetTriggeringTrigger()
local unit u = GetHandleUnit(tr,"attacker")
local unit ux = GetHandleUnit(tr,"target")
local location ul = GetUnitLoc(u)
local unit d = CreateUnit( GetOwningPlayer(u), 039;n005039;,GetLocationX(ul),GetLocationY(ul), bj_UNIT_FACING ) // create dummy to attack
local group g = CreateGroup()
call SetUnitPathing(d,false)
call SetHandleHandle(tr,"attacker",u)
call SetUnitAbilityLevel(d,039;A01C039;,GetUnitAbilityLevel(u,039;A01D039;) )
set g = GetUnitsInRangeOfLocMatching(600,ul, Condition(function AutoFireGroup_Conditions))
call GetRandomSubGroup(1, g) // i doubt its cuz of no units in the group cuz the map i use has plenty of units surrounding the hero
call UnitApplyTimedLifeBJ( 1.00, 039;BTLF039;, d)
call SetUnitAnimation( u, "spell" )
call IssueTargetOrderBJ( d, "attackonce", ux)
call UnitAddAbility(d, 039;Aloc039;)
call DisableTrigger(tr)
call FlushHandleLocals(tr)
call DestroyTrigger(tr)
call GroupClear(g)
call DestroyGroup(g)
set u = null
set ux = null
call RemoveLocation(ul)
set d = null
endfunction
function AutoFire_Jass_Actions takes nothing returns nothing
local unit u = GetAttacker()
local unit ux = GetAttackedUnitBJ()
local trigger tr = CreateTrigger()
if GetRandomInt(1, 100) <= 100 then // the 100% thing
//if GetRandomInt(1, 100) <= (20 + (5*(GetUnitAbilityLevel(u,'A01D')))) then //A01D spell id
call SetHandleHandle(tr,"attacker",u)
call TriggerRegisterUnitEvent(tr,ux,EVENT_UNIT_DAMAGED) // to get when unit is damaged instead of the abuse attack thing
call TriggerAddCondition(tr, Condition( function AutoFire_Attacker ) )
call TriggerAddAction(tr , function AutoFire_Attack)
call SetHandleHandle(tr,"attacker",u)
call SetHandleHandle(tr,"target",ux)
else
endif
endfunction
//===========================================================================
function InitTrig_Auto_Fire_Jass takes nothing returns nothing
set gg_trg_Auto_Fire_Jass = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Auto_Fire_Jass, EVENT_PLAYER_UNIT_ATTACKED )
call TriggerAddCondition( gg_trg_Auto_Fire_Jass, Condition( function AutoFire_Jass_Conditions ) )
call TriggerAddAction( gg_trg_Auto_Fire_Jass, function AutoFire_Jass_Actions )
endfunction
several stuff i have done to try to find out the problem is, removing the locust thing, removing the AutoFireGroup_Conditions .