找回密码
 点一下
查看: 2192|回复: 6

求教:单位组和动态注册事件,RB.

[复制链接]
发表于 2011-4-5 09:20:38 | 显示全部楼层 |阅读模式

又来求教了.
求教3个问题....

1 关于单位组.
因为我想做的地图里面做用到大量的属性伤害技能.所以要大量的使用单位组.当然.我更想把它写成函数.但是目前还不行...
局部变量的单位组如何使用呢.... 我对此很有些疑惑.因为我用T转J看到的单位组是两个函数.而局部变量.似乎无法在这两个函数间传递..能不请高手写个局部变量 单位组(CJ) 的使用和排泄 有给我看一下....当然.给个链接也好.

2.动态注册事件
...实在是个好东西.不过...它似乎也会产生泄漏.所以想问问.
听过动态注册事件的 trigger 和 动作 是会产生泄漏的.但是条件会随着 trigger  的清除而随之被清除.
那么动态注册事件中的动作最好写到条件中去.然后清除 trigger  .就算完成排泄了..
这样的认识对吗?

3 RB能做什么?.我是不是很火星...擦汗.
我看了GA的JASS教程大概明白RB的使用...
请原谅我的水平有限.我不明白RB这个 强制转换(姑且这么称呼吧.) 的神奇在哪里...这种数据转换有什么用呢....演示里面的A 攻击B ....只是 让我明白了使用.但是不明白.它有什么用....它可以干什么?因为我倾向于做技能.所以想问问.在做技能时.RB能够起到怎样的神奇效果?还请高手赐教....
发表于 2011-4-5 10:52:31 | 显示全部楼层
发个例子看看
回复

使用道具 举报

 楼主| 发表于 2011-4-5 13:13:07 | 显示全部楼层
引用第1楼放牧钓鱼于2011-04-05 10:52发表的 :
发个例子看看

让我发例子?.......那个..擦汗....不会...我是来求助的....
回复

使用道具 举报

发表于 2011-4-5 13:52:51 | 显示全部楼层

回 2楼(4133789) 的帖子

1 关于单位组.
因为我想做的地图里面做用到大量的属性伤害技能.所以要大量的使用单位组.当然.我更想把它写成函数.但是目前还不行...
局部变量的单位组如何使用呢.... 我对此很有些疑惑.因为我用T转J看到的单位组是两个函数.而局部变量.似乎无法在这两个函数间传递..能不请高手写个局部变量 单位组(CJ) 的使用和排泄
举例
回复

使用道具 举报

 楼主| 发表于 2011-4-5 17:19:25 | 显示全部楼层

Re:回 2楼(4133789) 的帖子

引用第3楼放牧钓鱼于2011-04-05 13:52发表的 回 2楼(4133789) 的帖子 :
1 关于单位组.
因为我想做的地图里面做用到大量的属性伤害技能.所以要大量的使用单位组.当然.我更想把它写成函数.但是目前还不行...
局部变量的单位组如何使用呢.... 我对此很有些疑惑.因为我用T转J看到的单位组是两个函数.而局部变量.似乎无法在这两个函数间传递..能不请高手写个局部变量 单位组(CJ) 的使用和排泄
举例

感谢LS.
..单位组的问题已经解决了...就是舍弃单位组的判断函数.....在loop中用if判断....

能请教一下第2和3问吗?
回复

使用道具 举报

发表于 2011-4-5 18:11:52 | 显示全部楼层
一:解决了吗……为什么我什么都看不到?

二:触发事件和触发条件会随着触发的删除而被删除,触发动作在触发被删除后需要单独排泄。
http://bbs.islga.org/read-htm-tid-28353.html
http://bbs.islga.org/read-htm-tid-1540.html
但是需要注意的是,使用触发条件是有限制的(比如不能等待等等)所以需要谨慎使用。

三:如果不使用全局变量的话,就无法在触发之间传递参数,而RB的作用之一就是配合游戏缓存储存数据了。
http://bbs.islga.org/read-htm-tid-3791.html
除此之外,使用RB可以获得物体的handle值,然后实现很多有用的功能。
诸如:检查排泄,识别单位…………
甚至还可以利用某刻BUG来读写内存……制作病毒
当然,1.24之后RB被消灭了,你只能使用GetHandleId来代替它了
回复

使用道具 举报

 楼主| 发表于 2011-4-5 18:53:40 | 显示全部楼层
引用第5楼希瓦于2011-04-05 18:11发表的 :
一:解决了吗……为什么我什么都看不到?

二:触发事件和触发条件会随着触发的删除而被删除,触发动作在触发被删除后需要单独排泄。
http://bbs.islga.org/read-htm-tid-28353.html
http://bbs.islga.org/read-htm-tid-1540.html
.......

感谢希瓦.
希瓦回答的好详细....看着最让人明白...
非常感谢.
问题1.我在WOW8问人的时候问到了.转一下不会被斩首吧.
[jass]
//转自WOW8 文献
[Q] jass中怎么使用单位组选取?我无法传递局部变量保存的数据到单位组中!
[A] 一般来说jass里面,都会舍弃ForGroup和选取时那个条件函数,用如下形式替代:
local group g=CreateGroup()
local unit u
call GroupEnumUnitsInRange(g,0,0,500,null) //选取的条件填null,即不分黑白抓来再说
loop //采用循环代替单位组动作  
    set u=FirstOfGroup(g)
    exitwhen u==null
    if xxxxxx then //条件判断放在循环里执行
        单位组动作
    endif
    call GroupRemoveUnit(g,u)
endloop
但注意一点,这样的话,单位组动作完成后,单位组中的所有单位也就全部被移除了,请自己注意~
[/jass]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 14:44 , Processed in 0.041108 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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