找回密码
 点一下
查看: 2226|回复: 39

1.23b补丁变化说明,给看不明白的同学

[复制链接]
发表于 2009-6-11 09:22:43 | 显示全部楼层 |阅读模式
http://forums.battle.net/thread.html?topicId=17730193178

上面的东西没什么不好理解的。

请把StringHash、GetHandleId这两个函数跟那个Hashtable孤立看待。

StringHash就是获得字符串的的唯一标识,GetHandleId就是获得handle对象的唯一标识

然后其实他这个地方写错了,S2I这个函数其实是把字符串转换为整数的函数……也就是说把字符串“A124”转换成124~~这跟“获得该字符串的唯一Integer标识”可是两回事情。

然后,你只要知道StringHash和GetHandleId返回的都是指定对象的游戏内唯一标识就可以了(你可以把它当作直接取对象handle值的函数,虽然这里的唯一标识不一定得跟handle值一样)之所以把String和Handle分开纯粹是因为本来它们就位于互相独立的两表里。这点war3里一直是如此。


然后那个新对象Hashtable,它和handle表是一点关系都没有的,请把它当作新表来理解。你是无法通过操作这个hashtable来访问handle表的。比如如果我事先知道某单位的handle值是12345,那么在新系统中,你是无法用12345来获得那个单位的。除非你把这个单位放进hashtable中,然后用12345来做他的key。这样才可以用LoadUnitHanlde 参数12345来取出那个单位。Hashtable不唯一,可以创建多个,你可以把它简单地理解为效率更高更安全的GameCache。

而且这个hashtable是类型安全的,比如12345表位如果其实存的是个单位,那么你用LoadPlayerHandle12345取出来的是null,而不像以前的Return Bug一样可以不分青红皂白地取。

至于变量连接数问题,这又是比gamecache高级的地方。(gamecache这玩意儿话说这年头还真有人用阿?效率又慢又bug百出的。)就是你在hashtable里存取东西的时候会影响变量连接数。避免出现gamecache里那种指向混乱。
发表于 2009-6-11 09:33:33 | 显示全部楼层
好像新加的函数里那些SaveXHandle.. 没有参数是handle的的.. 都是需要unit,,force之类的..
回复

使用道具 举报

 楼主| 发表于 2009-6-11 09:43:26 | 显示全部楼层
因为他要求类型安全嘛~~所以不让直接用hanlde了
回复

使用道具 举报

发表于 2009-6-11 09:46:29 | 显示全部楼层
我还是hanlde%8192 用全局变量得了
回复

使用道具 举报

 楼主| 发表于 2009-6-11 09:56:28 | 显示全部楼层
这东西看起来已经跟全局变量数组差不多了。除了类型方面限得很死
回复

使用道具 举报

发表于 2009-6-11 10:19:36 | 显示全部楼层
不知道hashtable的容量是多少内
回复

使用道具 举报

发表于 2009-6-11 10:23:49 | 显示全部楼层
继续DataSystem...
回复

使用道具 举报

发表于 2009-6-11 10:25:00 | 显示全部楼层
你的更难理解..难道就不能用T说明?
非要用J?
回复

使用道具 举报

发表于 2009-6-11 10:28:43 | 显示全部楼层
如果放不下GetHandleId的值就不好用了...


ps..to7楼, 现在这些还没有T ..
回复

使用道具 举报

发表于 2009-6-11 10:37:55 | 显示全部楼层
8好意思,正式版本还没出,T应该是会有的,不过没人知道T里面什么名字。

另外:对头目要使用敬语,出现敏感词汇以及有歧义语言会导致砍头。
回复

使用道具 举报

发表于 2009-6-11 10:45:03 | 显示全部楼层
对头目要使用敬语,出现敏感词汇以及有歧义语言会导致砍头。
回复

使用道具 举报

发表于 2009-6-11 10:57:15 | 显示全部楼层
拜。
论坛允许一个字的回复吗。
回复

使用道具 举报

发表于 2009-6-11 12:17:03 | 显示全部楼层
显然是要打补丁的
回复

使用道具 举报

发表于 2009-6-11 12:24:17 | 显示全部楼层
不懂啊啊啊
回复

使用道具 举报

发表于 2009-6-11 12:32:14 | 显示全部楼层
水一个。。。新的WE做出来的地图以前版本的WAR3能运行吗?
回复

使用道具 举报

发表于 2009-6-11 12:35:21 | 显示全部楼层
用了新的函数自然就不行了

关键是,暴雪会在未来某个版本添加H2I本地函数,那样的话旧版本的地图中含有H2I的地图,新版本的魔兽也不能运行了
回复

使用道具 举报

发表于 2009-6-11 12:43:21 | 显示全部楼层
国内还是1.20的天下~
回复

使用道具 举报

发表于 2009-6-11 12:51:53 | 显示全部楼层
貌似很多地方都已经升级了额,反正我从来都是自娱自乐……
回复

使用道具 举报

发表于 2009-6-11 12:53:07 | 显示全部楼层
我们学校的战网已经是1.23的了
回复

使用道具 举报

发表于 2009-6-11 12:53:21 | 显示全部楼层
………………………………看来不用再争论用什么HashTable、DataSystem,既然BLZ给我们这么好用的数据存储系统~~那就好好用吧~~~~~~
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-30 01:26 , Processed in 0.072367 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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