Name | Type | is_array | initial_value |
i | integer | No | |
j | integer | No | |
str1 | string | No |
function Trig_Initialization_Actions takes nothing returns nothing
call FogEnableOff()
call FogMaskEnableOff()
call SelectUnitForPlayerSingle(gg_unit_E000_0000,Player(8))
endfunction
//=========================Initialization=========================
function InitTrig_Initialization takes nothing returns nothing
set gg_trg_Initialization=CreateTrigger()
call TriggerAddAction(gg_trg_Initialization,function Trig_Initialization_Actions)
endfunction
//====================Phantom Strike====================
function Trig_Phantom_Strike_Conditions takes nothing returns boolean
return GetSpellAbilityId()=='A002'
endfunction
//function Trig_Phantom_Strike_Func030C takes nothing returns boolean
// return IsUnitEnemy(udg_u2,GetOwningPlayer(udg_u1))
//endfunction
function Trig_Phantom_Strike_Actions takes nothing returns nothing
//u1 caster Unit
//u2 target Unit
//l Location
//e current Effect
//os Order String
local unit u1=GetTriggerUnit()
local unit u2=GetSpellTargetUnit()
local location l1=GetUnitLoc(u1)
local location l2=GetSpellTargetLoc()
local effect e
//local string os
//Caster Effect
//
//AddSpecialEffectLoc(modelName,where)
set e=AddSpecialEffectLoc("Abilities\\Spells\\NightElf\\Blink\\BlinkCaster.mdl",l1)
//DestroyEffect(whichEffect)
call DestroyEffect(e)
//Move Caster Instantly to Target Unit
//
//SetUnitPositionLoc(whichUnit,loc)
//
//Cacelling Pause and Unpause will Cause no cooldown when targeting ground
call PauseUnit(u1,true)
call SetUnitPositionLoc(u1,l2)
call PauseUnit(u1,false)
set l1=GetUnitLoc(u1)
//SetUnitFacing(whichUnit, AngleBetweenPoints(loc,lookAt))
//call SetUnitFacing(u1,AngleBetweenPoints(l1,l2))
//call SetUnitPositionLocFacingLocBJ(u1,l2,l2)
//Target Effect
set e=AddSpecialEffectLoc("Abilities\\Spells\\NightElf\\Blink\\BlinkTarget.mdl",l1)
call DestroyEffect(e)
//target unit is null means targeting ground
if(u2!=null)then
call IssueTargetOrder(u1,"smart",u2)
endif
//call SetUnitInvulnerable(u2,true)
endfunction
function InitTrig_Phantom_Strike takes nothing returns nothing
local trigger t=CreateTrigger()
//A unit starts the effect of ability
call TriggerRegisterAnyUnitEventBJ(t,EVENT_PLAYER_UNIT_SPELL_EFFECT)
//Check Conditions
//Phantom Strike ID is A002
//XXcall TriggerAddCondition(gg_trg_Phantom_Strike,Condition(GetSpellAbilityId()=='A002'))
call TriggerAddCondition(t,Condition(function Trig_Phantom_Strike_Conditions))
//Do Actions
call TriggerAddAction(t,function Trig_Phantom_Strike_Actions)
endfunction
function Trig_Blur_Conditions takes nothing returns boolean
return GetLearnedSkill()=='A003'
endfunction
function Trig_Blur_Actions takes nothing returns nothing
//i Blur Level
//t Transparency
local unit u=GetTriggerUnit()
local integer i=GetUnitAbilityLevelSwapped('A003',u)
local integer t
//
//if(i==1)then
// set r=40.00
//elseif(i==2)then
// set r=60.00
//elseif(i==3)then
// set r=80.00
//else
// set r=98.00
//endif
//
if(i==1)then
set t=153
elseif(i==2)then
set t=102
elseif(i==3)then
set t=51
else
set t=5
endif
call SetUnitVertexColor(u,255,255,255,t)
//call SetUnitVertexColor(u,255,255,255,PercentTo255(100.0-transparency))
//call SetUnitVertexColorBJ(gg_unit_E000_0000,100,100,100,r)
endfunction
//===========================================================================
function InitTrig_Blur takes nothing returns nothing
local trigger t=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(t,EVENT_PLAYER_HERO_SKILL)
call TriggerAddCondition(t,Condition(function Trig_Blur_Conditions))
call TriggerAddAction(t,function Trig_Blur_Actions)
endfunction
//====================Check Attack====================
//
function Trig_Check_Attack_Conditions takes nothing returns boolean
//Move=851986
//Attack=851983
//Smart=851971
//Patrol=851990
//Stop=851972
return GetIssuedOrderId()==851983
//return GetIssuedOrderId()==OrderId("attack")
//return GetIssuedOrderId()==String2OrderIdBJ("attack")
endfunction
function Trig_Check_Attack_Actions takes nothing returns nothing
//u1 issued Unit
//u2 ordertarget Unit
local unit u1=GetTriggerUnit()
local unit u2=GetOrderTargetUnit()
local real r2
if(not(IsUnitEnemy(u2,GetOwningPlayer(u1))))then
set r2=GetUnitLifePercent(u2)
//call DisplayTextToPlayer(GetLocalPlayer(),0,0,"UnitNotEnemy")
if(IsUnitType(u2,UNIT_TYPE_STRUCTURE) and r2>10.00)then
call IssueTargetOrder(u1,"move",u2)
elseif(r2>50.00)then
call IssueTargetOrder(u1,"move",u2)
endif
endif
endfunction
//======================================
function InitTrig_Check_Attack takes nothing returns nothing
local trigger t=CreateTrigger()
//A unit is issued an order targetting a unit
call TriggerRegisterAnyUnitEventBJ(t,EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER)
call TriggerAddCondition(t,Condition(function Trig_Check_Attack_Conditions))
call TriggerAddAction(t,function Trig_Check_Attack_Actions)
endfunction