天工维度魔兽争霸开发者社区-全国最大的TJ集中营-原提百万联盟

标题: 不用哈希表传参,timer bug研究(搬运) [打印本页]

作者: 雨散云飞    时间: 2020-10-31 15:15
标题: 不用哈希表传参,timer bug研究(搬运)
作者:number47
链接:https://zhuanlan.zhihu.com/p/146521295
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

通常我们使用timer的时候,传递参数是一个很麻烦的事情。
在1.20时代,我们利用了return bug的机制,获取handle的id,存储到gamecache里,然后再次通过return bug,获取id对应的handle,实现参数的传递。
在1.24时代,我们有了GetHandleId与hashtable。通过哈希表存储来传递参数。
下面介绍一种利用timer bug的方法来实现参数传递。
具体这个timer bug是谁发现的就不清楚了,欢迎补充。
原理:在timer运行后pause再次start,会使TimerGetRemaining获取的值锁定为第一次设置的计时器时间,由此来传递参数。

代码缺失部分请自行补全。
这里+0.5的目的是四舍五入,防止实数由于某些可能存在的bug向下取整导致参数错误。
如果需要传递其他参数,可以使用全局变量,这里的参数当作全局变量索引。你使用哈希表也可以,但是这里的目的不就是不使用哈希表来实现嘛。




作者: Oo破破oO    时间: 2020-10-31 17:36
膜拜大佬,利用bug作图- -||
作者: xueyuan1996    时间: 2020-11-3 16:44
学习学习
作者: Aysna    时间: 2020-11-4 15:33
路过看看
作者: dingbo861    时间: 2020-11-20 00:12
楼主发贴辛苦了,谢谢楼主分享!我觉得提百万联盟是注册对了!
作者: dolphin    时间: 2021-1-13 08:47
看一下黑科技技术
作者: 渔阳    时间: 2021-5-2 09:25
路过看看
作者: 哇哩火焰    时间: 2021-5-6 19:13
牛逼Plus
作者: a6313786    时间: 2021-5-19 17:40
感谢分享!~~
作者: 小明同学的同学    时间: 2021-6-14 00:02
学习一下、
作者: 小脑薯胖了胖    时间: 2021-12-17 12:48
继续学习
作者: xianshi    时间: 2022-3-15 13:54
感谢分享~666
作者: a1144110    时间: 2022-5-14 16:09
需要看下是什么

作者: cc4754971    时间: 2022-10-25 21:39
大佬很强大
作者: 老剑。    时间: 2024-7-30 18:04
看一下哦




欢迎光临 天工维度魔兽争霸开发者社区-全国最大的TJ集中营-原提百万联盟 (http://bbs.mvprpg.com/) Powered by Discuz! X3.4