yftheone 发表于 2018-7-29 16:05:23

关于触发器,自定义函数

自定义函数的参数可以使用数组吗,直接定义的参数无法设定成数组,感觉很不方便。
如果是c的语法的话应该是可以传指针或者地址来代表数组的吧

yxxiaobin 发表于 2018-7-29 18:49:30

使用指针的话,可以用数组传参,只是目前触发器的UI还不支持数组参数,如果你愿意写代码的话就没问题了。
指针的用法,头目有详细教程,我就不再写一遍了。

隐匿的大神 发表于 2018-7-29 19:44:04

用数据表传参,用完再删掉或者不做处理。
仅需使用“局部”类型的数据表就行了。

yxxiaobin 发表于 2018-7-29 23:53:43

隐匿的大神 发表于 2018-7-29 19:44
用数据表传参,用完再删掉或者不做处理。
仅需使用“局部”类型的数据表就行了。

数据表是个好动洗,我在自己的mod中也是大量使用了数据表。
不过有一个问题我一直有所顾虑:在频繁运算时,使用数据表比起使用变量是不是会拖慢效率呢?从理论上来将,数据表是一种储存结构,比起直接使用变量肯定会慢,但是如果数据表的效率够高,对于当今的电脑就不会有什么压力。一直没有证实过这种猜测。
我设计了队友头像UI,里边带有行为展示,因为每个玩家都有好几个实例,每局游戏多名玩家,每个玩家都展示最多7个行为,乘在一起还是很客观的。而且头像的更新周期不宜过长,两个周期已经是极限了,再大就会影响用户体验。一般我都是用数据表,只有这里,为了以防万一,传参用了数组变量。

隐匿的大神 发表于 2018-7-30 07:08:40

yxxiaobin 发表于 2018-7-29 23:53
数据表是个好动洗,我在自己的mod中也是大量使用了数据表。
不过有一个问题我一直有所顾虑:在频繁运算 ...

就算你一个周期更新一次数据对当今电脑都没什么影响,你这个每秒最多才执行22.4次,而用户界面是单独线程处理的,根本不可能对机器造成什么影响。
数据表应该是哈希表一类的东西,效率很高,放心使用,而且某次更新前星际2一直用数据表来传“最后创建的XXX”(参看内建库>替换单位)。

yxxiaobin 发表于 2018-7-30 22:54:38

隐匿的大神 发表于 2018-7-30 07:08
就算你一个周期更新一次数据对当今电脑都没什么影响,你这个每秒最多才执行22.4次,而用户界面是单独线程 ...

感谢解答,这样我就可以放心使用了。

elik720 发表于 2019-1-3 21:37:49

yxxiaobin 发表于 2018-7-29 18:49
使用指针的话,可以用数组传参,只是目前触发器的UI还不支持数组参数,如果你愿意写代码的话就没问题了。
...

求教下,星际2编辑器能实现魔兽编辑器里的这种功能吗?

魔兽3 里面 有哈希表    然后 用 gethandedid() 来获取 单位 或 各种单位的   ID   然后来实现数据的保存   用这个可以做各种延迟功能

比如2秒后 删除某个单位 或 3秒后删除某个特效什么的   星际2 有这功能吗各大佬给指点下贝

priceles 发表于 2019-1-3 23:27:50

elik720 发表于 2019-1-3 21:37
求教下,星际2编辑器能实现魔兽编辑器里的这种功能吗?

魔兽3 里面 有哈希表    然后 用 gethandedid()...

有 单位标签 这个函数,返回一个整数。
哈希表在星际2叫数据表。

yxxiaobin 发表于 2019-1-4 19:11:48

elik720 发表于 2019-1-3 21:37
求教下,星际2编辑器能实现魔兽编辑器里的这种功能吗?

魔兽3 里面 有哈希表    然后 用 gethandedid()...
星际2的数据表比那玩意好用多了,最起码编程思路更简单。数据表的基本思路和魔兽里的缓存类似。
页: [1]
查看完整版本: 关于触发器,自定义函数