找回密码
 点一下
楼主: 血戮魔动冰

Hashtable教程~

[复制链接]
发表于 2009-10-31 08:22:22 | 显示全部楼层
引用第19楼血戮魔动冰于2009-10-31 08:15发表的  :


真正覆盖的是handle域的问题。
比如SaveUnitHandle。
然后SaveTriggerHandle
.......

原来如此


再话说,一个hashtable如果子链太多会导致索引效率下降,那么声明的多个hashtable之间是不会发生效率干预的吧
回复

使用道具 举报

 楼主| 发表于 2009-10-31 08:29:31 | 显示全部楼层
是的。
子链太多的确会影响效率。
多个hashtable之间是不会发生效率干涉的。
回复

使用道具 举报

发表于 2009-10-31 08:32:49 | 显示全部楼层
引用第18楼血戮魔动冰于2009-10-31 08:13发表的  :


………………正是因为有你们这种人存在我才需要写这教程…………
话说……HT要真是GC双胞胎弟弟那BLZ弄他干嘛……也不好好想想。
嗯,‘H君是G君的弟弟’这个观点在我进这个帖时已经打消了
回复

使用道具 举报

发表于 2009-10-31 10:15:59 | 显示全部楼层
其實用我這套方法就可以實現兼容了

http://bbs.islga.org/read-htm-tid-33557.html

先在1.20e下寫代碼,再導入1.24b版本的bj就可以了- -當然有點限制,只能開一個hashtable,不過以前也基本只用一塊gc,感覺沒啥問題的,現在dota664也只有一塊hashtable
回复

使用道具 举报

发表于 2009-10-31 10:27:52 | 显示全部楼层
GA上用J的基本上无人用bj吧
回复

使用道具 举报

 楼主| 发表于 2009-10-31 10:52:09 | 显示全部楼层
在1.24pjass出来之前我们可以先用这个。
回复

使用道具 举报

发表于 2009-10-31 10:55:21 | 显示全部楼层
VJ非常的土。。非常非常的土。。。
回复

使用道具 举报

发表于 2009-11-1 14:22:32 | 显示全部楼层
124和120的pjass需要的唯一区别就是砍掉returnbug吧。。
回复

使用道具 举报

 楼主| 发表于 2009-11-1 14:33:20 | 显示全部楼层
…………………………你觉得不需要加上hashtable吗?
回复

使用道具 举报

发表于 2009-11-1 16:50:19 | 显示全部楼层
需要加啥?hashtable增加了什么额外语法么。。。
回复

使用道具 举报

发表于 2009-11-1 17:12:55 | 显示全部楼层
似乎是没有的。。
回复

使用道具 举报

发表于 2009-11-1 18:46:12 | 显示全部楼层
我那个是反问句…你的头…
回复

使用道具 举报

发表于 2009-11-1 23:18:19 | 显示全部楼层
用vj只是觉得任意处声明全局变量和library的封装满好用的,某E不要现在见到人就像个怨灵一样”VJ很土…VJ很土…”,要我召唤伊澄出来恶灵退散么……= =

总之我的所有图,包括成品、半成品、演示图、研究图、测试图……都属于报废状态,因为大部分都是globals到处插……
回复

使用道具 举报

发表于 2009-11-1 23:22:29 | 显示全部楼层
所以还是正常好了……
用原汁原味的
回复

使用道具 举报

发表于 2009-11-2 09:35:37 | 显示全部楼层
感谢各位大大 上次说得有个教程 现在还真有了~
现在Hashtable GC共存中 = =
另外请大家注意一定要1.24B BBBB  (上次用了个1.24a 各种BUG 悲剧了一晚上  = =)
回复

使用道具 举报

发表于 2009-11-2 17:47:20 | 显示全部楼层

回 23楼(小药) 的帖子

其实兼容的话...这个办法更方便..(貌似不少地图这样用了)
1.20[jass]
function h2i takes handle h returns integer
return h
return 9
endfunction

function i2u takes integer i returns unit
return i
return null
endfunction [/jass]
1.24
[jass]
globals
hashtable udg_HT = InitHashtable()
endglobals

function h2i takes agent h returns integer
local integer i = GetHandleId(h)
call SaveAgentHandle (udg_HT,174,i,h)
return i
endfunction


function i2u takes integer i returns unit
return LoadUnitHandle(udg_HT,174,i)
endfunction [/jass]

其他的以此类推。。性能其实也少不了多少
回复

使用道具 举报

 楼主| 发表于 2009-11-2 17:53:14 | 显示全部楼层
……悲剧啊……只能支持agent。
回复

使用道具 举报

发表于 2009-11-2 18:12:11 | 显示全部楼层
其他的还需要 X2I么。。
那些有单位什么的。。基本都是 agent的子类型
回复

使用道具 举报

 楼主| 发表于 2009-11-2 18:13:04 | 显示全部楼层
嗯。
也够用了。
话说没想到这个点子。
回复

使用道具 举报

发表于 2009-11-2 18:20:13 | 显示全部楼层
你没提到么?
悲剧啊
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 16:40 , Processed in 0.064152 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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