找回密码
 点一下
查看: 4690|回复: 48

[已解决]这些都是程海的技能,因为我不懂JASS,所以不知道哪个函数对应哪个技能,

[复制链接]
发表于 2008-7-21 15:46:42 | 显示全部楼层 |阅读模式
这些都是程海的技能不懂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]                      (未完待续)
 楼主| 发表于 2008-7-21 15:48:00 | 显示全部楼层
Orb finish:
function Trig_Orb_finish_Conditions takes nothing returns boolean
    if ( not ( GetDyingUnit() == udg_Orb_Effect ) ) then
        return false
    endif
    return true
endfunction

function Trig_Orb_finish_Actions takes nothing returns nothing
    call DisableTrigger( gg_trg_Orb_effect )
    call DisableTrigger( gg_trg_Distance_judgment )
    set bj_forLoopAIndex = 1
    set bj_forLoopAIndexEnd = 2
    loop
        exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
        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
        call TriggerSleepAction( 0.50 )
        set bj_forLoopAIndex = bj_forLoopAIndex + 1
    endloop
    call EnableTrigger( gg_trg_Orb_casting )
endfunction

//===========================================================================
function InitTrig_Orb_finish takes nothing returns nothing
    set gg_trg_Orb_finish = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Orb_finish, EVENT_PLAYER_UNIT_DEATH )
    call TriggerAddCondition( gg_trg_Orb_finish, Condition( function Trig_Orb_finish_Conditions ) )
    call TriggerAddAction( gg_trg_Orb_finish, function Trig_Orb_finish_Actions )
endfunction
回复

使用道具 举报

 楼主| 发表于 2008-7-21 15:49:03 | 显示全部楼层
Bump Distance:(初始关闭的)
function Trig_Bump_Distance_Actions takes nothing returns nothing
    call SetUnitPositionLocFacingBJ( udg_Bump_T_Unit, PolarProjectionBJ(GetUnitLoc(udg_Bump_T_Unit), 30.00, GetUnitFacing(udg_Bump_T_Unit)), GetUnitFacing(udg_Bump_T_Unit) )
    call AddSpecialEffectLocBJ( GetUnitLoc(udg_Bump_T_Unit), "Objects\\\\Spawnmodels\\\\Undead\\\\ImpaleTargetDust\\\\ImpaleTargetDust.mdl" )
    call DestroyEffectBJ( GetLastCreatedEffectBJ() )
endfunction

//===========================================================================
function InitTrig_Bump_Distance takes nothing returns nothing
    set gg_trg_Bump_Distance = CreateTrigger(  )
    call DisableTrigger( gg_trg_Bump_Distance )
    call TriggerRegisterTimerEventPeriodic( gg_trg_Bump_Distance, 0.03 )
    call TriggerAddAction( gg_trg_Bump_Distance, function Trig_Bump_Distance_Actions )
endfunction
回复

使用道具 举报

发表于 2008-7-21 15:49:59 | 显示全部楼层
这些明显都是触发转成jass的………………
回复

使用道具 举报

 楼主| 发表于 2008-7-21 15:50:21 | 显示全部楼层
Bump Damage:(初始关闭的)
function Trig_Bump_Damage_Func001002 takes nothing returns nothing
    call KillDestructable( GetEnumDestructable() )
endfunction

function Trig_Bump_Damage_Actions takes nothing returns nothing
    call EnumDestructablesInRectAll( RectFromCenterSizeBJ(GetUnitLoc(udg_Bump_T_Unit), 300.00, 300.00), function Trig_Bump_Damage_Func001002 )
    call CreateNUnitsAtLoc( 1, 'u007', GetOwningPlayer(udg_Bump_T_Unit), GetUnitLoc(udg_Bump_T_Unit), bj_UNIT_FACING )
    call IssueImmediateOrderBJ( GetLastCreatedUnit(), "stomp" )
    call UnitApplyTimedLifeBJ( 1.00, 'BHwe', GetLastCreatedUnit() )
endfunction

//===========================================================================
function InitTrig_Bump_Damage takes nothing returns nothing
    set gg_trg_Bump_Damage = CreateTrigger(  )
    call DisableTrigger( gg_trg_Bump_Damage )
    call TriggerRegisterTimerEventPeriodic( gg_trg_Bump_Damage, 0.05 )
    call TriggerAddAction( gg_trg_Bump_Damage, function Trig_Bump_Damage_Actions )
endfunction
回复

使用道具 举报

 楼主| 发表于 2008-7-21 15:52:45 | 显示全部楼层
我不知道,我是从别的图上导出来的。
我还没贴完类。
VoodooCast:
function Trig_VoodooCast_Conditions takes nothing returns boolean
    if ( not ( GetSpellAbilityId() == 'AOvd' ) ) then
        return false
    endif
    if ( not ( GetUnitTypeId(GetTriggerUnit()) == 'Oshd' ) ) then
        return false
    endif
    return true
endfunction

function Trig_VoodooCast_Actions takes nothing returns nothing
    set bj_forLoopAIndex = 1
    set bj_forLoopAIndexEnd = 12
    loop
        exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
        call CreateNUnitsAtLocFacingLocBJ( 1, 'zmar', GetOwningPlayer(GetTriggerUnit()), PolarProjectionBJ(GetUnitLoc(GetTriggerUnit()), 150.00, ( I2R(GetForLoopIndexA()) * 30.00 )), PolarProjectionBJ(GetUnitLoc(GetTriggerUnit()), 500.00, ( I2R(GetForLoopIndexA()) * 30.00 )) )
        set udg_VoodooUnit[GetForLoopIndexA()] = GetLastCreatedUnit()
        set bj_forLoopAIndex = bj_forLoopAIndex + 1
    endloop
endfunction

//===========================================================================
function InitTrig_VoodooCast takes nothing returns nothing
    set gg_trg_VoodooCast = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_VoodooCast, EVENT_PLAYER_UNIT_SPELL_CAST )
    call TriggerAddCondition( gg_trg_VoodooCast, Condition( function Trig_VoodooCast_Conditions ) )
    call TriggerAddAction( gg_trg_VoodooCast, function Trig_VoodooCast_Actions )
endfunction
回复

使用道具 举报

 楼主| 发表于 2008-7-21 15:54:05 | 显示全部楼层
VoodooEnd:
function Trig_VoodooEnd_Conditions takes nothing returns boolean
    if ( not ( GetSpellAbilityId() == 'AOvd' ) ) then
        return false
    endif
    if ( not ( GetUnitTypeId(GetTriggerUnit()) == 'Oshd' ) ) then
        return false
    endif
    return true
endfunction

function Trig_VoodooEnd_Actions takes nothing returns nothing
    set bj_forLoopAIndex = 1
    set bj_forLoopAIndexEnd = 12
    loop
        exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
        call RemoveUnit( udg_VoodooUnit[GetForLoopIndexA()] )
        set bj_forLoopAIndex = bj_forLoopAIndex + 1
    endloop
endfunction

//===========================================================================
function InitTrig_VoodooEnd takes nothing returns nothing
    set gg_trg_VoodooEnd = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_VoodooEnd, EVENT_PLAYER_UNIT_SPELL_ENDCAST )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_VoodooEnd, EVENT_PLAYER_UNIT_SPELL_FINISH )
    call TriggerAddCondition( gg_trg_VoodooEnd, Condition( function Trig_VoodooEnd_Conditions ) )
    call TriggerAddAction( gg_trg_VoodooEnd, function Trig_VoodooEnd_Actions )
endfunction
回复

使用道具 举报

发表于 2008-7-21 15:54:47 | 显示全部楼层
呵呵,很显然阿,都是bj函数、全局变量,而且函数命名都是WE默认的那种………………
回复

使用道具 举报

 楼主| 发表于 2008-7-21 15:54:58 | 显示全部楼层
Image:
function Trig_Image_Conditions takes nothing returns boolean
    if ( not ( GetSpellAbilityId() == 'AOmi' ) ) then
        return false
    endif
    if ( not ( GetUnitTypeId(GetTriggerUnit()) == 'Obla' ) ) then
        return false
    endif
    return true
endfunction

function Trig_Image_Actions takes nothing returns nothing
    call EnableTrigger( gg_trg_Second_Image )
    call TriggerSleepAction( 1.10 )
    call CreateNUnitsAtLoc( 1, 'h00A', GetOwningPlayer(GetTriggerUnit()), GetUnitLoc(GetTriggerUnit()), bj_UNIT_FACING )
    call IssueTargetOrderBJ( GetLastCreatedUnit(), "attack", GetTriggerUnit() )
    call UnitApplyTimedLifeBJ( 1.00, 'BHwe', GetLastCreatedUnit() )
endfunction

//===========================================================================
function InitTrig_Image takes nothing returns nothing
    set gg_trg_Image = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Image, EVENT_PLAYER_UNIT_SPELL_CAST )
    call TriggerAddCondition( gg_trg_Image, Condition( function Trig_Image_Conditions ) )
    call TriggerAddAction( gg_trg_Image, function Trig_Image_Actions )
endfunction
回复

使用道具 举报

 楼主| 发表于 2008-7-21 16:05:45 | 显示全部楼层
啊,是这样啊,受教了。


啊好累啊,这么多。累死我了
算了,我把触发器的名字帖下来吧,会英语的给我翻译一下。我自己研究吧
Second Image   
Hex   
Shadowstrike   
Thunderbolt   
Entang   
Ensnare   
DemonBreath   
BlackArrow   
ManyArrow  
CycloneCasting
CycloneEnd  
ElementFlutter  
ElementFlutterEnd   
StompTarget
StompEffect   
StompSound   
Explode Body  
LightningSelectTarget
啊  写名字都这么长 饿 [s:186]
帮我翻译一下吧 谢谢了
回复

使用道具 举报

发表于 2008-7-21 16:11:28 | 显示全部楼层
话说,这些语句这么长,怎么看怎么像是把T给……出来的……
回复

使用道具 举报

 楼主| 发表于 2008-7-21 16:13:09 | 显示全部楼层
不小心把,技能问题转换为英语问题了。
回复

使用道具 举报

 楼主| 发表于 2008-7-21 16:16:25 | 显示全部楼层
难道程海的技能是拿T作的,然后变成JASS!!
回复

使用道具 举报

发表于 2008-7-21 16:17:25 | 显示全部楼层
Hex是妖术,ShadowStrike是暗影突袭,Thunderbolt是风暴之锤(10万伏特也是这个………………)
DemonBreath恶魔吐息?
Ensnare诱捕
Entang不知道,Entangle是缠绕的意思
Cyclone是飓风
Stomp应该是践踏
Element是元素,Flutter震动??
BlackArrow是黑箭?ManyArrow好多箭??
Explode Body估计是尸体爆炸
LightningSelectTarget闪电选择目标

还有一些很基本的就不解释了,比如Casting、End这种………………
没玩过CH,所以有一些不知道怎么翻好额………………
回复

使用道具 举报

发表于 2008-7-21 16:20:22 | 显示全部楼层
这些jass很明显都是触发做的,函数命名规范和用到的函数都是,如果原本就是用jass写的话,打死我也不会弄出那么多BJ函数和这么高级的函数名(比如Trig_Bump_Damage_Func001002这个)的………………
回复

使用道具 举报

 楼主| 发表于 2008-7-21 16:24:52 | 显示全部楼层
啊,谢谢了
不过我不知道CASTING是什么意思。
是不是意思是START,触发器开始的意思。
回复

使用道具 举报

发表于 2008-7-21 16:28:32 | 显示全部楼层
投掷,可以理解为施法吧
回复

使用道具 举报

发表于 2008-7-21 16:28:32 | 显示全部楼层
……………………T转J……………………………………………………
我知道3C为何没落了。
回复

使用道具 举报

 楼主| 发表于 2008-7-21 16:29:45 | 显示全部楼层
搞了半天,全是T,哎,不研究了
不过谢谢你了,你英语学的真好。
回复

使用道具 举报

发表于 2008-7-21 16:31:40 | 显示全部楼层
其实我知道的大概3/4左右,剩下的有一些是查得………………
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 21:12 , Processed in 0.083824 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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