- Joined
- Aug 19, 2007
- Messages
- 1,380
Hi, I want to make an ability which offers jobs to the target village, increasing it's population growth rate. I need a dummy unit to cast the custom spell (which uses "Aerial Shackles" as a base and has the same "order string - use/turn on" -> "magicleash). Now the problem, whenever I use the following trigger it does nothing, what am I doing wrong? Thanks for taking the time, here is the not working trigger in gui:
-
Offersciencejob
-
Events
-
Unit - A unit Starts the effect of an ability
-
-
Conditions
-
(Ability being cast) Equal to (==) Offers a Job (scientist)
-
-
Actions
-
Set ScienceJobCaster = (Casting unit)
-
Set ScienceJobTarget = (Target unit of ability being cast)
-
Unit - Order (Casting unit) to Stop
-
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
(ScienceJobTarget is A town-hall-type unit) Equal to (==) True
-
-
Then - Actions
-
Unit Group - Pick every unit in (Units within 100.00 of (Position of ScienceJobCaster) matching ((Unit-type of (Matching unit)) Equal to (==) dummy science job)) and do (Actions)
-
Loop - Actions
-
Unit - Order (Picked unit) to Human Dragonhawk Rider - Aerial Shackles ScienceJobTarget
-
-
-
-
Else - Actions
-
-
-
-
JASS:
function Trig_Offersciencejob_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A00V' ) ) then
return false
endif
return true
endfunction
function Trig_Offersciencejob_Func004Func002001003 takes nothing returns boolean
return ( GetUnitTypeId(GetFilterUnit()) == 'n001' )
endfunction
function Trig_Offersciencejob_Func004Func002A takes nothing returns nothing
call IssueTargetOrder( GetEnumUnit(), "magicleash", udg_ScienceJobTarget )
endfunction
function Trig_Offersciencejob_Func004C takes nothing returns boolean
if ( not ( IsUnitType(udg_ScienceJobTarget, UNIT_TYPE_TOWNHALL) == true ) ) then
return false
endif
return true
endfunction
function Trig_Offersciencejob_Actions takes nothing returns nothing
set udg_ScienceJobCaster = GetSpellAbilityUnit()
set udg_ScienceJobTarget = GetSpellTargetUnit()
call IssueImmediateOrder( GetSpellAbilityUnit(), "stop" )
if ( Trig_Offersciencejob_Func004C() ) then
call ForGroupBJ( GetUnitsInRangeOfLocMatching(100.00, GetUnitLoc(udg_ScienceJobCaster), Condition(function Trig_Offersciencejob_Func004Func002001003)), function Trig_Offersciencejob_Func004Func002A )
else
endif
endfunction
//===========================================================================
function InitTrig_Offersciencejob takes nothing returns nothing
set gg_trg_Offersciencejob = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Offersciencejob, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_Offersciencejob, Condition( function Trig_Offersciencejob_Conditions ) )
call TriggerAddAction( gg_trg_Offersciencejob, function Trig_Offersciencejob_Actions )
endfunction
Code:
function Trig_Offersciencejob_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A00V' ) ) then
return false
endif
return true
endfunction
function Trig_Offersciencejob_Func004Func002001003 takes nothing returns boolean
return ( GetUnitTypeId(GetFilterUnit()) == 'n001' )
endfunction
function Trig_Offersciencejob_Func004Func002A takes nothing returns nothing
call IssueTargetOrder( GetEnumUnit(), "magicleash", udg_ScienceJobTarget )
endfunction
function Trig_Offersciencejob_Func004C takes nothing returns boolean
if ( not ( IsUnitType(udg_ScienceJobTarget, UNIT_TYPE_TOWNHALL) == true ) ) then
return false
endif
return true
endfunction
function Trig_Offersciencejob_Actions takes nothing returns nothing
set udg_ScienceJobCaster = GetSpellAbilityUnit()
set udg_ScienceJobTarget = GetSpellTargetUnit()
call IssueImmediateOrder( GetSpellAbilityUnit(), "stop" )
if ( Trig_Offersciencejob_Func004C() ) then
call ForGroupBJ( GetUnitsInRangeOfLocMatching(100.00, GetUnitLoc(udg_ScienceJobCaster), Condition(function Trig_Offersciencejob_Func004Func002001003)), function Trig_Offersciencejob_Func004Func002A )
else
endif
endfunction
//===========================================================================
function InitTrig_Offersciencejob takes nothing returns nothing
set gg_trg_Offersciencejob = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Offersciencejob, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_Offersciencejob, Condition( function Trig_Offersciencejob_Conditions ) )
call TriggerAddAction( gg_trg_Offersciencejob, function Trig_Offersciencejob_Actions )
endfunction
Last edited by a moderator: