|
发表于 2007-10-26 18:47:26
|
显示全部楼层
我在everguo的基础上补充一下吧。
native StoreInteger takes gamecache cache,string missionKey,string key,integer value returns nothing
这是一个Blizzard的默认函数,它的作用是把一个整数存储进一个名为“cache”的游戏缓存里。因为一个缓存可以存储很多东西,为了不混淆,它会给存储的整数加一个文字索引 - missionKey,和一个自定义的字串 - key, 这个missionKey和key就是存储的整数的唯一标识。
本来这个函数只可以保存整数,用途不大。后来有某位高人发现了一个bug,就是著名的return bug,这个bug可以返回游戏中任何一个对象的整数内存地址。大家都知道,内存里放的东西,其整数内存地址都是唯一的,所以正好可以用来做 missionKey。加上这个bug还可以逆运算,通过给出的内存地址,得出该对象,所以只要我们在缓存里保存好所需对象的整数地址,就可以在任何需要的时候再把它拿出来。于是就有了everguo上面说的内容。 |
|