找回密码
 点一下
查看: 1904|回复: 5

dota连杀音效的问题

[复制链接]
发表于 2010-7-31 19:41:07 | 显示全部楼层 |阅读模式
我自己模拟了一下dota的杀人音效,
first blood以及killingspree到holyshit的部分模拟成功了,
但是连杀音效始终存在问题,

对于连杀音效的部分,
我用了一个连杀计数数组count[ ]
和一个计时器数组timer[ ]实现各个玩家的连杀触发,

但是计时器有问题就是:
一次性计时器未到期又重新启动同一个计时器会不会重新开始计时,
我问过群里的人,他说会覆盖和重新计时,我开始就用的这个方法:
每杀一人启动计时器一次,计时器到期将该玩家杀人计数count置零,结果不行?!

然后我改用每次杀人判断计时器是否运行,运行则删除再新建一个然后启动计时,结果还是不行。
麻烦各位高手指教一下原因所在,这个我真不会做了:
bug图在此 rampage.w3x (162 KB, 下载次数: 143)
 楼主| 发表于 2010-7-31 20:19:43 | 显示全部楼层
是不是发错地方了,压力很大
回复

使用道具 举报

发表于 2010-7-31 20:47:20 | 显示全部楼层
嘿嘿,发错了。希瓦不管。
回复

使用道具 举报

发表于 2010-7-31 21:12:19 | 显示全部楼层
[trigger]未命名触发器 001
    事件
        地图初始化
        时间 - et 到期
    条件
    动作
        游戏 - 对 (所有玩家) 发送文本信息: reyetyr
        设置 et = (新建的计时器)
        计时器 - 开启 et ,计时方式: 一次性 时间设置: 0.10 秒
[/trigger]
看这段触发:你猜它会显示几次“reyetyr”呢?
你可能以为它会显示无数次,但实际上它只显示一次,也就是“地图初始化”的时候。

你要知道:
对于“时间 - et 到期”这个事件中,et只代表et的注册时的当前值,不管et以后变成什么值,它都指向最初的计时器。


而“计时器 - 开启 et ,计时方式: 一次性 时间设置: 0.10 秒”开启的是新的计时器,当然不会有效果。



那么,解决方法:为新建的计时器注册一个“计时器到期”事件。
不过删除计时器实在是笨办法。。。
回复

使用道具 举报

 楼主| 发表于 2010-8-1 16:59:28 | 显示全部楼层
既然计时器不覆盖,删除计时器是必要的,因为不删除player的连杀数会提前归零。
谢谢小希瓦大人,问题已解决,dota连杀音效模拟成功,怪自己不思考,完成图: rampage.w3x (162 KB, 下载次数: 73)
回复

使用道具 举报

发表于 2010-8-1 17:27:22 | 显示全部楼层
计时器其实不需要删除,复用就可以……
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-28 12:29 , Processed in 0.063808 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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