找回密码
 点一下
查看: 1843|回复: 7

初来贵地求助,1.24b下怎么传递unit 类

[复制链接]
发表于 2010-6-5 13:33:57 | 显示全部楼层 |阅读模式
昨天使用wareditor编译器,在自定义脚本里写H2I编译报错
我找了些帖子,发现1.24下已经不能用return bug了,请问我该怎么传递unit 这类变量,我现在打算用全局unit变量,不知道弊端在哪。

我看过的方法有hash表,除了这个还有什么方法方便一点,拜托各位帮帮忙。
问题整理下:
1.全局unit,还有什么location等等类的弊端在哪里,耗内存还是存取慢
2.还有啥好方法可以存储全局调用的变量,除了return bug还有什么take bug(刚在论坛里看到的),我觉得这些bug迟早会被修复,用不得
3.写在触发里的函数怎么才能全局调用,不写在自定义脚本里


大家知道多少就说多少吧,谢谢~
发表于 2010-6-5 14:56:09 | 显示全部楼层
1,全局变量的读取是比局部变量慢,但是这无关紧要。前者在即用即删的情况下与局部变量分别不大,但是如果触发中有等待之类的动作时,很容易出现变量的混乱。如果只是初始赋值以后就不再变动,那么全局变量还是值得用的。

2,1.24b有GetHandleId、HashTable、StringHash,如果你熟悉了缓存的用法,在1.24b下使用它们也没什么困难。

3,刚看的帖子,比如你的触发名为“cisha”,那么可能会存在3个函数,InitTrig_cisha、Trig_cisha_Conditions、Trig_cisha_Actions,调用就是了。
  或者使用
call ExecuteFunc(string FuncationName)。
回复

使用道具 举报

发表于 2010-6-5 15:35:13 | 显示全部楼层
全局变量也不是不行嘛
回复

使用道具 举报

 楼主| 发表于 2010-6-6 00:52:34 | 显示全部楼层
2楼谢谢你啊,呵呵,这玩意儿真破不好玩了
回复

使用道具 举报

发表于 2010-6-6 01:17:13 | 显示全部楼层
hashtable使用上与return bug+gamecache差不多,应该说更方便些
全局和局部变量取舍主要还是在是否冲突上,如果触发会发生冲突,那么全局就不适用了,存取速度并不是问题所在吧
函数的话,jass严格要求声明要在调用前,所以只要满足这点,无论写在自定义脚本里还是触发里都能被后面的其他函数调用
回复

使用道具 举报

发表于 2010-6-6 18:42:28 | 显示全部楼层
引用第4楼zhuzeitou于2010-06-06 01:17发表的  :
hashtable使用上与return bug+gamecache差不多,应该说更方便些
全局和局部变量取舍主要还是在是否冲突上,如果触发会发生冲突,那么全局就不适用了,存取速度并不是问题所在吧
函数的话,jass严格要求声明要在调用前,所以只要满足这点,无论写在自定义脚本里还是触发里都能被后面的其他函数调用
回复

使用道具 举报

 楼主| 发表于 2010-6-6 19:56:22 | 显示全部楼层
原来这样啊,编译顺序跟c有点像,这个弄懂了
还有那个数组申请比如string array xx,是不是跟容器(stl)一样会动态调整,上限不需要设置?
接下来是PolledWait(),同时用n个他们是在一个线程运行吗,因为我听人说用多个会有影响

呵呵,谢谢5楼啊
回复

使用道具 举报

发表于 2010-6-6 23:16:30 | 显示全部楼层
数组大小固定为8192
至于PolledWait……这个基本不使用,精度低下,且容易造成变量冲突
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-4 16:31 , Processed in 0.055645 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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