火山爆发可以捕捉到最后创建的terraindeformation和ubersplat
魔兽地图编辑器吧
全部回复
仅看楼主
level 13
解析不明 楼主
[汗]但为毛只有第一次有效。。。
2012年12月03日 10点12分 1
level 13
解析不明 楼主
而且捕捉到之后GetHandleId得到的居然是0 但是确实是捕捉到了 因为删除有效……
2012年12月03日 10点12分 2
level 14
这个技能完全不了解…
2012年12月03日 10点12分 3
研究下来发现是一个虽然有一定潜力但是无比坑爹不如模拟的技能。。。
2012年12月03日 10点12分
level 15
隐藏起来,供下次使用
2012年12月03日 10点12分 4
?你指的什么?
2012年12月03日 10点12分
回复 解析不明 :可能:第二次使用的是第一次创建的,被隐藏起来的,所以只有第一次有效...也许是这样
2012年12月03日 10点12分
回复 绯弹亚丝娜 :但是第一次我是通过触发删除掉了地面特效
2012年12月03日 10点12分
level 13
解析不明 楼主
globals
terraindeformation array ground
ubersplat array ub
integer gi = 0
integer ubi = 0
endglobals
function a takes nothing returns nothing
local timer t = GetExpiredTimer()
call DestroyUbersplat(ub[ubi])
call TerrainDeformStop(ground[gi],0)
call PauseTimer(t)
call DestroyTimer(t)
set t = null
endfunction
function Trig_removeConditions takes nothing returns boolean
return ((GetSpellAbilityId() == 'A002'))
endfunction
function Trig_removeActions takes nothing returns nothing
local timer t = CreateTimer()
local integer i = 0
loop
if ground[i] == null then
exitwhen true
endif
set i = i+1
endloop
set gi = i
set i = 0
loop
if ub[i] == null then
exitwhen true
endif
set i = i+1
endloop
set ubi = i
set ground[gi] = bj_lastCreatedTerrainDeformation
set ub[ubi] = bj_lastCreatedUbersplat
call TimerStart(t,0,false,function a)
set t = null
endfunction
//===========================================================================
function InitTrig_remove takes nothing returns nothing
set gg_trg_remove = CreateTrigger()
#ifdef DEBUG
call YDWESaveTriggerName(gg_trg_remove, "remove")
#endif
call TriggerRegisterUnitEvent( gg_trg_remove, gg_unit_H000_0001, EVENT_UNIT_SPELL_EFFECT )
call TriggerAddCondition(gg_trg_remove, Condition(function Trig_removeConditions))
call TriggerAddAction(gg_trg_remove, function Trig_removeActions)
endfunction
就像这样@ 绯弹亚丝娜 应该没问题吧?
顺带 如果把TerrainDeformStop(ground[gi],0)换成TerrainDeformStopAll()就没有问题 不过这样不是全部清空了么。。。。
2012年12月03日 10点12分 5
2012年12月03日 10点12分
1