找回密码
 点一下
查看: 1656|回复: 7

帮忙看一下这技能里错误的地方

[复制链接]
发表于 2008-9-2 10:07:22 | 显示全部楼层 |阅读模式
研究了好长时间 就是不能实现想要的效果 高手帮忙看看 技能要求:T里有介绍.

火球术(未完).w3x

20 KB, 下载次数: 15

发表于 2008-9-2 10:21:57 | 显示全部楼层
没看懂是什么意思……


//===========================
这样么?
火球术(未完).w3x (20 KB, 下载次数: 10)
回复

使用道具 举报

 楼主| 发表于 2008-9-2 12:02:08 | 显示全部楼层
不是这样的,我说了是立刻冲向技能施放点的,你那样子太慢了,我要的是立即移动单位指令,并设置变量点,来实现立刻移动的快速画面.
象你那样的发布移动命令我是早知道了的,所以你的那个效果并不实现我想要的效果.
回复

使用道具 举报

恶声恶气 该用户已被删除
发表于 2008-9-2 13:38:43 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2008-9-2 13:41:20 | 显示全部楼层
是这样不?

火球术(未完).w3x

20 KB, 下载次数: 17

回复

使用道具 举报

 楼主| 发表于 2008-9-2 14:52:16 | 显示全部楼层
LS的虽然理解了我的意思,不过你做的技能有严重的BUG,就是在冲向中心点的时候,辅助单位冲不到一个点,而且如果把 zs[2]=zs[2]-10 改成 zs[2]=zs[2]-50(或更大),其效果会更明显.
回复

使用道具 举报

发表于 2008-9-2 15:13:57 | 显示全部楼层
小小bug,自己修正不就好了
回复

使用道具 举报

 楼主| 发表于 2008-9-2 15:19:25 | 显示全部楼层
大大的BUG  不会修正
  1. function Trig_hqs_Conditions takes nothing returns boolean
  2.     if ( not ( GetSpellAbilityId() == 'A001' ) ) then
  3.         return false
  4.     endif
  5.     return true
  6. endfunction
  7. function Trig_hqs_Actions takes nothing returns nothing
  8.     set udg_dw[1] = GetTriggerUnit()
  9.     set udg_d[2] = GetSpellTargetLoc()
  10.     set bj_forLoopAIndex = 1
  11.     set bj_forLoopAIndexEnd = 10
  12.     loop
  13.         exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
  14.         set udg_zs[1] = ( GetForLoopIndexA() * 36 )
  15.         call CreateNUnitsAtLocFacingLocBJ( 1, 'e000', GetOwningPlayer(udg_dw[1]), PolarProjectionBJ(udg_d[2], I2R(150), I2R(udg_zs[1])), udg_d[2] )
  16.         set udg_dw[GetForLoopIndexA()] = GetLastCreatedUnit()
  17.         set bj_forLoopAIndex = bj_forLoopAIndex + 1
  18.     endloop
  19.     set udg_brz = false
  20.     call EnableTrigger( gg_trg_hqs1 )
  21. endfunction
  22. //===========================================================================
  23. function InitTrig_hqs takes nothing returns nothing
  24.     set gg_trg_hqs = CreateTrigger(  )
  25.     call TriggerRegisterAnyUnitEventBJ( gg_trg_hqs, EVENT_PLAYER_UNIT_SPELL_EFFECT )
  26.     call TriggerAddCondition( gg_trg_hqs, Condition( function Trig_hqs_Conditions ) )
  27.     call TriggerAddAction( gg_trg_hqs, function Trig_hqs_Actions )
  28. endfunction
复制代码
  1. function Trig_hqs1_Func002Func002C takes nothing returns boolean
  2.     if ( not ( udg_zs[2] >= 400 ) ) then
  3.         return false
  4.     endif
  5.     if ( not ( udg_brz == false ) ) then
  6.         return false
  7.     endif
  8.     return true
  9. endfunction
  10. function Trig_hqs1_Func002Func003Func002C takes nothing returns boolean
  11.     if ( not ( udg_zs[3] <= 0 ) ) then
  12.         return false
  13.     endif
  14.     return true
  15. endfunction
  16. function Trig_hqs1_Func002Func003C takes nothing returns boolean
  17.     if ( not ( udg_brz == true ) ) then
  18.         return false
  19.     endif
  20.     return true
  21. endfunction
  22. function Trig_hqs1_Actions takes nothing returns nothing
  23.     set bj_forLoopAIndex = 1
  24.     set bj_forLoopAIndexEnd = 10
  25.     loop
  26.         exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
  27.         set udg_zs[1] = ( GetForLoopIndexA() * 36 )
  28.         if ( Trig_hqs1_Func002Func002C() ) then
  29.             set udg_brz = true
  30.         else
  31.         endif
  32.         if ( Trig_hqs1_Func002Func003C() ) then
  33.             if ( Trig_hqs1_Func002Func003Func002C() ) then
  34.                 call DisableTrigger( GetTriggeringTrigger() )
  35.                 set udg_brz = false
  36.                 return
  37.             else
  38.             set udg_zs[2] = ( udg_zs[2] - 20 )
  39.             call SetUnitFlyHeight( udg_dw[GetForLoopIndexA()], I2R(50), I2R(2000) )
  40.             endif
  41.         else
  42.             set udg_zs[2] = ( udg_zs[2] + 1 )
  43.             set udg_zs[4] = ( udg_zs[4] + 1 )
  44.             call SetUnitFlyHeight( udg_dw[GetForLoopIndexA()], I2R(500), I2R(200) )
  45.         endif
  46.         set udg_zs[3] = ( udg_zs[2] + 150 )
  47.         set udg_zs[5] = ( udg_zs[1] + udg_zs[4] )
  48.         set udg_d[3] = PolarProjectionBJ(udg_d[2], I2R(udg_zs[3]), I2R(udg_zs[5]))
  49.         call SetUnitPositionLocFacingLocBJ( udg_dw[GetForLoopIndexA()], udg_d[3], udg_d[2] )
  50.         set bj_forLoopAIndex = bj_forLoopAIndex + 1
  51.     endloop
  52. endfunction
  53. //===========================================================================
  54. function InitTrig_hqs1 takes nothing returns nothing
  55.     set gg_trg_hqs1 = CreateTrigger(  )
  56.     call DisableTrigger( gg_trg_hqs1 )
  57.     call TriggerRegisterTimerEventPeriodic( gg_trg_hqs1, 0.06 )
  58.     call TriggerAddAction( gg_trg_hqs1, function Trig_hqs1_Actions )
  59. endfunction
复制代码

只能这样了 不会转编码,不会用触发代码.
set udg_zs[2] = ( udg_zs[2] - 20 )
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 22:50 , Processed in 0.097503 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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