找回密码
 点一下
楼主: DeadFish

连锁法力燃烧

  [复制链接]
发表于 2006-5-24 21:55:18 | 显示全部楼层
哟荷  死鱼同志什么时候开始研究技能了


如果没有猜错的话原理应该和我以前做的差不多
function Trig_ShengWuDianChi_2_Conditions takes nothing returns boolean
    if ( not ( GetUnitTypeId(GetAttacker()) == \'e013\' ) ) then
        return false
    endif
    if ( not ( GetTriggerUnit() == udg_Spell_ShengWuDianChi_Unit_B ) ) then
        return false
    endif
    return true
endfunction

function Trig_ShengWuDianChi_2_Func002001 takes nothing returns boolean
    return ( UnitHasBuffBJ(udg_Spell_ShengWuDianChi_Unit_B, \'B00M\') == true )
endfunction

function Trig_ShengWuDianChi_2_Func005C takes nothing returns boolean
    if ( not ( IsUnitAlly(udg_Spell_ShengWuDianChi_Unit_B, GetOwningPlayer(udg_Spell_ShengWuDianChi_Unit_A)) == true ) ) then
        return false
    endif
    return true
endfunction

function Trig_ShengWuDianChi_2_Func007Func002002001003001 takes nothing returns boolean
    return ( IsUnitType(GetFilterUnit(), UNIT_TYPE_STRUCTURE) == false )
endfunction

function Trig_ShengWuDianChi_2_Func007Func002002001003002001 takes nothing returns boolean
    return ( IsUnitType(GetFilterUnit(), UNIT_TYPE_MECHANICAL) == false )
endfunction

function Trig_ShengWuDianChi_2_Func007Func002002001003002002001 takes nothing returns boolean
    return ( IsUnitInGroup(GetFilterUnit(), udg_Spell_ShengWuDianChi_Group) == false )
endfunction

function Trig_ShengWuDianChi_2_Func007Func002002001003002002002001 takes nothing returns boolean
    return ( IsUnitType(GetFilterUnit(), UNIT_TYPE_MAGIC_IMMUNE) == false )
endfunction

function Trig_ShengWuDianChi_2_Func007Func002002001003002002002002 takes nothing returns boolean
    return ( IsUnitDeadBJ(GetFilterUnit()) == false )
endfunction

function Trig_ShengWuDianChi_2_Func007Func002002001003002002002 takes nothing returns boolean
    return GetBooleanAnd( Trig_ShengWuDianChi_2_Func007Func002002001003002002002001(), Trig_ShengWuDianChi_2_Func007Func002002001003002002002002() )
endfunction

function Trig_ShengWuDianChi_2_Func007Func002002001003002002 takes nothing returns boolean
    return GetBooleanAnd( Trig_ShengWuDianChi_2_Func007Func002002001003002002001(), Trig_ShengWuDianChi_2_Func007Func002002001003002002002() )
endfunction

function Trig_ShengWuDianChi_2_Func007Func002002001003002 takes nothing returns boolean
    return GetBooleanAnd( Trig_ShengWuDianChi_2_Func007Func002002001003002001(), Trig_ShengWuDianChi_2_Func007Func002002001003002002() )
endfunction

function Trig_ShengWuDianChi_2_Func007Func002002001003 takes nothing returns boolean
    return GetBooleanAnd( Trig_ShengWuDianChi_2_Func007Func002002001003001(), Trig_ShengWuDianChi_2_Func007Func002002001003002() )
endfunction

function Trig_ShengWuDianChi_2_Func007Func003C takes nothing returns boolean
    if ( not ( udg_Spell_ShengWuDianChi_Unit_B == null ) ) then
        return false
    endif
    return true
endfunction

function Trig_ShengWuDianChi_2_Func007C takes nothing returns boolean
    if ( not ( udg_Spell_ShengWuDianChi_Integer_A < ( 2 + ( 1 * udg_Spell_ShengWuDianChi_Integer_B ) ) ) ) then
        return false
    endif
    return true
endfunction

function Trig_ShengWuDianChi_2_Actions takes nothing returns nothing
    set udg_Spell_ShengWuDianChi_Unit_A = GetAttacker()
    loop
        exitwhen ( Trig_ShengWuDianChi_2_Func002001() )
        call TriggerSleepAction(RMaxBJ(bj_WAIT_FOR_COND_MIN_INTERVAL, 0.10))
    endloop
    set udg_Spell_ShengWuDianChi_Integer_A = ( udg_Spell_ShengWuDianChi_Integer_A + 1 )
    call GroupAddUnitSimple( udg_Spell_ShengWuDianChi_Unit_B, udg_Spell_ShengWuDianChi_Group )
    if ( Trig_ShengWuDianChi_2_Func005C() ) then
        call SetUnitLifeBJ( udg_Spell_ShengWuDianChi_Unit_B, ( GetUnitStateSwap(UNIT_STATE_LIFE, udg_Spell_ShengWuDianChi_Unit_B) + ( 50.00 + ( 100.00 * I2R(udg_Spell_ShengWuDianChi_Integer_B) ) ) ) )
    else
        call UnitDamageTargetBJ( udg_Spell_ShengWuDianChi_Unit_A, udg_Spell_ShengWuDianChi_Unit_B, ( 50.00 + ( 100.00 * I2R(udg_Spell_ShengWuDianChi_Integer_B) ) ), ATTACK_TYPE_NORMAL, DAMAGE_TYPE_LIGHTNING )
    endif
    set udg_Spell_ShengWuDianChi_Point = GetUnitLoc(udg_Spell_ShengWuDianChi_Unit_B)
    if ( Trig_ShengWuDianChi_2_Func007C() ) then
        set udg_Spell_ShengWuDianChi_Unit_B = GroupPickRandomUnit(GetUnitsInRangeOfLocMatching(896.00, udg_Spell_ShengWuDianChi_Point, Condition(function Trig_ShengWuDianChi_2_Func007Func002002001003)))
        if ( Trig_ShengWuDianChi_2_Func007Func003C() ) then
            call DoNothing(  )
        else
            call CreateNUnitsAtLoc( 1, \'e013\', GetOwningPlayer(udg_Spell_ShengWuDianChi_Unit_A), udg_Spell_ShengWuDianChi_Point, bj_UNIT_FACING )
            call GroupAddUnitSimple( GetLastCreatedUnit(), udg_Spell_ShengWuDianChi_Group )
            call SetUnitPositionLoc( GetLastCreatedUnit(), udg_Spell_ShengWuDianChi_Point )
            call SetUnitAbilityLevelSwapped( \'A050\', GetLastCreatedUnit(), udg_Spell_ShengWuDianChi_Integer_B )
            call IssueTargetOrderBJ( GetLastCreatedUnit(), \"attackonce\", udg_Spell_ShengWuDianChi_Unit_B )
            call UnitApplyTimedLifeBJ( 3.00, \'BTLF\', GetLastCreatedUnit() )
            call ShowUnitHide( GetLastCreatedUnit() )
        endif
    else
        call DoNothing(  )
    endif
    call RemoveLocation(udg_Spell_ShengWuDianChi_Point)
endfunction
回复

使用道具 举报

发表于 2006-5-24 21:57:04 | 显示全部楼层
为了满足 老狼和那个谁谁  就这么转化了

我是T做的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-5-13 11:17 , Processed in 0.170697 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表