找回密码
 点一下
楼主: 希瓦

马甲技能BUG

[复制链接]
发表于 2010-3-25 07:07:39 | 显示全部楼层
全部新建的默认图里。
2个先知(学闪电链),3个玩家2的农民。

一个触发:
[trigger]
Test
    事件
        单位 - A unit 开始一种持续性技能
    环境
        (Triggering unit) 等于 先知 0000 <情报>
    动作
        Custom script:   call BJDebugMsg( I2S( GetSpellAbilityId() ) )
        单位 - Order 先知 0002 <情报> to 兽族先知 - 闪电链 (Target unit of ability being cast)
        Custom script:   call BJDebugMsg( I2S( GetSpellAbilityId() ) )

[/trigger]
先知0000释放闪电链,输出:
1095721836
0
(开始一种持续性机能就是开始施法的Channel那个事件了)

顺便说下,转身速率设为0的确可以解决施法时转身的问题,学习了~

----------- 帖子于 07:07 更新 --------- 之前内容发布于 07:05 ------------

顺便说下,沙发的演示用了SetUnitAbilityLevel这个功能,你转成自定义代码,要不我看不到…………
回复

使用道具 举报

发表于 2010-3-26 06:44:17 | 显示全部楼层
奇怪了……
原本用Hero1,Hero2触发不了Bug。
换成常量先知0001和先知0002就触发了Bug。
再换成Hero1和Hero2又触发了Bug………………
中间除了改这些变量以外也没动什么地方啊……
回复

使用道具 举报

发表于 2010-3-26 06:55:37 | 显示全部楼层
上面貌似也不对…………

也许是测试的时候两个先知的动作还是没有太同步的缘故。
换成山丘也触发Bug。
先有一个打印函数:
[jass]
function Print takes nothing returns nothing
    call BJDebugMsg( "SpellAbilityId: " + I2S( GetSpellAbilityId() ) )
    call BJDebugMsg( "SpellAbilityTarget(Unit): " + GetUnitName( GetSpellTargetUnit() ) )
    call BJDebugMsg( "SpellAbilityUnit: " + GetUnitName( GetSpellAbilityUnit() ) )
    call BJDebugMsg( "SpellAbilityTarget(X): " + R2S( GetSpellTargetX() ) )
    call BJDebugMsg( "SpellAbilityTarget(Y): " + R2S( GetSpellTargetY() ) )
    call BJDebugMsg( "-------------------" )
endfunction
[/jass]
触发:
[trigger]
Print
    事件
        单位 - A unit 开始一种持续性技能
    环境
        (Triggering unit) 等于 Hero1
    动作
        Custom script:   call Print()
        单位 - Order Hero2 to 人族山丘之王 - 风暴之锤 (Target unit of ability being cast)
        Wait 2.00 seconds
        Custom script:   call Print()

[/trigger]
测试的打印内容:
SpellAbilityId: 1095267426
SpellAbilityTarget(Unit): 农民
SpellAbilityUnit: 山丘之王
SpellAbilityTarget(X): 119.922
SpellAbilityTarget(Y): 189.246
-------------------
SpellAbilityId: 0
SpellAbilityTarget(Unit):
SpellAbilityUnit:
SpellAbilityTarget(X): 0.000
SpellAbilityTarget(Y): 0.000
-------------------
可以发现和SpellAbility有关的参数全被清空了……
但是打印TriggerUnit()却还是有效的。

----------- 帖子于 06:55 更新 --------- 之前内容发布于 06:54 ------------

————————————————————————
不小心3连了……猪头大人对不起~~
回复

使用道具 举报

发表于 2010-3-26 10:34:03 | 显示全部楼层
汗,这个是沙发那个的图。
看了一下图,这个bug貌似是因为你在只创建了一个单位,然后命令单位后立即使用cooldown归零,但是实际上cooldown开始时间是在单位施放技能结束后,因此cd回零没有起作用!

建议解决办法,对每一个敌人创建一个马甲。
---------------------------------------------------------------------------

楼顶的图,和血魔大人的测试一样,貌似是wc3的bug?用了命令就会把 GetSpellAbilityId() 的妖术清除。
建议解决办法,创建一个全局变量,在枚举前记录SpellAbilityId,在枚举中用变量代替GetSpellAbilityId()
回复

使用道具 举报

发表于 2010-3-27 09:00:13 | 显示全部楼层
这问题大了…………

发布命令居然也会有这样的Bug。
[trigger]
death
    事件
        单位 - A unit 发布一个无目标的指令
    环境
        (Triggering unit) 等于 血魔法师 0001 <情报>
    动作
        Custom script:   call BJDebugMsg( I2S( GetIssuedOrderId() ) )
        单位 - Order 血魔法师 0004 <情报> to 停止
        Wait 1.00 seconds
        Custom script:   call BJDebugMsg( I2S( GetIssuedOrderId() ) )

[/trigger]
游戏开始后,血魔法师0000按s(stop)。
打印的第一条信息正确,第二条信息为0。

----------- 帖子于 09:00 更新 --------- 之前内容发布于 08:59 ------------

不过单位被杀,获得物品这两个测试发现没有Bug。
其余还未检测。
回复

使用道具 举报

 楼主| 发表于 2010-3-27 16:02:21 | 显示全部楼层
引用第26楼血戮魔动冰于2010-03-27 09:00发表的  :
这问题大了…………

发布命令居然也会有这样的Bug。
[trigger]
death
.......
是啊,以前都没发现这样的问题。
而且,我发现以前能完成的演示,现在竟然完成不了了。



o(︶︿︶)o 唉,来个总结吧:
     用变量来存放数据比直接调用魔兽函数效率要高,而且不容易出现BUG,大家以后记得要这样哦。
下面是无BUG版的群体技能模版,大家需要的话下来用吧。。。

test.w3x

15 KB, 下载次数: 122

回复

使用道具 举报

发表于 2010-8-24 13:43:46 | 显示全部楼层
哎....  没遇到希瓦说的BUG,XX英雄释放技能,创建马甲单位在触发单位位置,命令马甲对XX附近1000X1000敌军 释放山丘的锤子,结果放花一样,全中....  该马甲移动为1  释放动画回复点0...视野10000 主动攻击范围0.01 攻击为空  MP:100  技能需要MP:0 技能释放的单位动作:无   都很正常的,咋没出BUG呢?
回复

使用道具 举报

 楼主| 发表于 2010-8-26 18:32:25 | 显示全部楼层
你又挖坟了。

至于你说的“没有遇到”,有可能是你的“移动速度”和“转身速度”不都为0.
也有可能是你的RP不够。
回复

使用道具 举报

发表于 2012-7-21 19:54:37 | 显示全部楼层
今天因为这个问题纠结了一下午。。。
现在终于解决了

虽然挖坟不好,可我还是要顶一下。
内牛满面啊。。。
回复

使用道具 举报

发表于 2012-7-28 19:34:34 | 显示全部楼层

回 破伤风_ 的帖子

破伤风_:今天因为这个问题纠结了一下午。。。
现在终于解决了

虽然挖坟不好,可我还是要顶一下。
内牛满面啊。。。 (2012-07-21 19:54)
无意义地挖坟只会给别人带来麻烦。
回复

使用道具 举报

发表于 2012-8-7 18:28:22 | 显示全部楼层
一般对多个目标施法就创建多个马甲,用一个马甲对多个单位同时施法貌似不可行
回复

使用道具 举报

发表于 2012-8-7 19:07:34 | 显示全部楼层

回 evenxn007 的帖子

evenxn007:一般对多个目标施法就创建多个马甲,用一个马甲对多个单位同时施法貌似不可行(2012-08-07 18:28)嬀/color]
乱讲些什么

你挖坟是为了发表错误言论来误导他人的吗?

请你先自己试试再这样说吧
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-24 08:28 , Processed in 0.086799 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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