找回密码
 点一下
查看: 1145|回复: 8

为什么两个技能会相互冲突

[复制链接]
发表于 2010-5-24 16:58:17 | 显示全部楼层 |阅读模式
两个技能写着两个触发上面,一个技能正在生效,另一个技能一释放另一个技能就会暂停或者停了,以前用returnbug不会的呀。。。
谔谔,我觉得可能是哈希表问题,还有GetExpiredTimer()这个函数,我两个技能都用到一个叫tm的计时器,不知道是不是两个技能计时器的捕获发生混乱了。。。
发表于 2010-5-24 17:08:01 | 显示全部楼层
变量名不是问题,关键是看你的变量本身是不是同一个
如果不同触发用到了同一个计时器当然会冲突

另外,哈希表不存在任何问题,这个要比return bug安全得多
回复

使用道具 举报

 楼主| 发表于 2010-5-24 17:16:39 | 显示全部楼层
我的timer都是local的,我在函数间传递参数是绑定在timer上的,我在捕获timer的时候使用GetExpiredTimer()这个会导致捕获到另一个函数的计时器吗?就是我的两个技能都是有TimerStart这个函数的,在使用一个技能时没问题,但是这个效果正在实现过程中(就是用timerstart来运行的)释放另一个技能,那么原来的那个技能就会变为“慢动作”虽然煞是好看但是并不是我要得到的,如果是计时器问题,那么timerstart开始的计时器应该怎么捕获而且有不会引起这些问题?诚心求解!
回复

使用道具 举报

 楼主| 发表于 2010-5-24 20:17:59 | 显示全部楼层

一个哈希表不能run两个timerstart吗?

我的技能发生冲突了,用的是timerstart()+哈希表,但是两个技能不能不能共用,共用的话前面绑定在计时器的东西会不见。但是我用两个哈希表就没事了,谁能告诉我怎么回事,那以后我是不是做一个技能就要开一个哈希表啊?
回复

使用道具 举报

发表于 2010-5-24 22:34:46 | 显示全部楼层
你的触发动作,第一句不会是这个吧

call FlushParentHashtable( udg_HT )
set udg_HT = InitHashtable()

好吧,我猜的,不能让我们光靠猜吧
回复

使用道具 举报

 楼主| 发表于 2010-5-24 23:05:43 | 显示全部楼层
回复楼上,我把第一句删了,当第二个技能释放时,第一个技能就会“乱”,如果不把第一句删了,第一个技能就会停。因为你把哈希表东西全搞了,第一个技能无法得到数据所以就会停,而把第一句删掉后,timerstart就会引起混乱,我开始以为是GetExpiredTimer()的问题,于是我设了个全局变量,把计时器绑在上面而不用GetExpiredTimer()但是效果却一样。我每个技能用一个哈希表却没事,所以现在我暂时用哈希表数组,但是好麻烦,求高人解决此类问题。
回复

使用道具 举报

发表于 2010-5-24 23:44:27 | 显示全部楼层
好吧,我记得教程里写得是这两句只在地图初始化时,运行一次就可以了……
回复

使用道具 举报

发表于 2010-5-25 00:16:58 | 显示全部楼层
整个游戏中,这个hashtable只需要初始化一次,就像gamecache只需要初始化一次一样
回复

使用道具 举报

 楼主| 发表于 2010-5-25 11:35:01 | 显示全部楼层
额,怪我没认真看教程。。。。。。。。。。。。。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-2 21:10 , Processed in 0.030747 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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