|
这些都是程海的技能不懂JASS,所以不知道哪个函数对应哪个技能,因为我不懂JASS,所以不知道哪个函数对应哪个技能,就没法研究了。希望大家能帮我指出这些触发器是干什么的,只用说是干什么的就行了。然后我自己研究。 谢谢了
很长,请耐心看:
这是第一个:
[codes=jass]Orb casting:
function Trig_Orb_casting_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A01N' ) ) then
return false
endif
if ( not ( GetUnitTypeId(GetTriggerUnit()) == 'Ulic' ) ) then
return false
endif
return true
endfunction
function Trig_Orb_casting_Actions takes nothing returns nothing
call DisableTrigger( GetTriggeringTrigger() )
call CreateNUnitsAtLoc( 1, 'e007', GetOwningPlayer(GetTriggerUnit()), PolarProjectionBJ(GetUnitLoc(GetTriggerUnit()), 50.00, AngleBetweenPoints(GetUnitLoc(GetTriggerUnit()), GetSpellTargetLoc())), bj_UNIT_FACING )
call IssuePointOrderLocBJ( GetLastCreatedUnit(), "move", PolarProjectionBJ(GetUnitLoc(GetTriggerUnit()), 1500.00, AngleBetweenPoints(GetUnitLoc(GetTriggerUnit()), GetSpellTargetLoc())) )
call UnitApplyTimedLifeBJ( 4.00, 'BHwe', GetLastCreatedUnit() )
set udg_Orb_Effect = GetLastCreatedUnit()
call CreateNUnitsAtLoc( 1, 'e007', GetOwningPlayer(GetTriggerUnit()), GetSpellTargetLoc(), bj_UNIT_FACING )
call ShowUnitHide( GetLastCreatedUnit() )
set udg_Orb_Die = GetLastCreatedUnit()
call EnableTrigger( gg_trg_Orb_effect )
call EnableTrigger( gg_trg_Distance_judgment )
endfunction
//===========================================================================
function InitTrig_Orb_casting takes nothing returns nothing
set gg_trg_Orb_casting = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Orb_casting, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_Orb_casting, Condition( function Trig_Orb_casting_Conditions ) )
call TriggerAddAction( gg_trg_Orb_casting, function Trig_Orb_casting_Actions )
endfunction
Orb effect:(初始关闭)
function Trig_Orb_effect_Actions takes nothing returns nothing
set bj_forLoopBIndex = 1
set bj_forLoopBIndexEnd = 18
loop
exitwhen bj_forLoopBIndex > bj_forLoopBIndexEnd
call CreateNUnitsAtLoc( 1, 'e004', GetOwningPlayer(udg_Orb_Effect), GetUnitLoc(udg_Orb_Effect), ( I2R(GetForLoopIndexB()) * 20.00 ) )
call UnitApplyTimedLifeBJ( 1.00, 'BHwe', GetLastCreatedUnit() )
call IssuePointOrderLocBJ( GetLastCreatedUnit(), "carrionswarm", PolarProjectionBJ(GetUnitLoc(GetLastCreatedUnit()), 100.00, ( GetUnitFacing(GetLastCreatedUnit()) + ( I2R(GetForLoopIndexA()) * 10.00 ) )) )
call ShowUnitHide( GetLastCreatedUnit() )
set bj_forLoopBIndex = bj_forLoopBIndex + 1
endloop
endfunction
//===========================================================================
function InitTrig_Orb_effect takes nothing returns nothing
set gg_trg_Orb_effect = CreateTrigger( )
call DisableTrigger( gg_trg_Orb_effect )
call TriggerRegisterTimerEventPeriodic( gg_trg_Orb_effect, 0.50 )
call TriggerAddAction( gg_trg_Orb_effect, function Trig_Orb_effect_Actions )
endfunction
Distance judgment:(初始关闭)
function Trig_Distance_judgment_Conditions takes nothing returns boolean
if ( not ( DistanceBetweenPoints(GetUnitLoc(udg_Orb_Effect), GetUnitLoc(udg_Orb_Die)) <= 100.00 ) ) then
return false
endif
return true
endfunction
function Trig_Distance_judgment_Actions takes nothing returns nothing
call KillUnit( udg_Orb_Die )
call KillUnit( udg_Orb_Effect )
endfunction
//===========================================================================
function InitTrig_Distance_judgment takes nothing returns nothing
set gg_trg_Distance_judgment = CreateTrigger( )
call DisableTrigger( gg_trg_Distance_judgment )
call TriggerRegisterTimerEventPeriodic( gg_trg_Distance_judgment, 0.25 )
call TriggerAddCondition( gg_trg_Distance_judgment, Condition( function Trig_Distance_judgment_Conditions ) )
call TriggerAddAction( gg_trg_Distance_judgment, function Trig_Distance_judgment_Actions )
endfunction[/codes] (未完待续) |
|