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

问:使用J建立触发器是否都要以 ★InitTrig_★为开头函数

[复制链接]
发表于 2008-1-17 10:52:46 | 显示全部楼层 |阅读模式
弱弱的问一下:

我现在正在学习使用纯Jass写触发, everguo 大哥写的教程已经看的差不多了(写的很实在,并且很贴切 谢谢了。)
在我自己编程的时候有一个问题,首先还是先说一下目前我是怎么写Jass的。
先打开WE——创建一个触发器——给那个触发器改名字——将其转化为文本格式——开始写Jass。这样写的话,测试是可以通过的。不过我用Master打开那个地图文件的化,看到里面还是声明了一个全局变量,即使我没有使用到它。ex: 我创建了一个名为test的触发器。在打开地图后就会看见里面声明了一个gg_trg_test的全局触发器变量,并将其值赋予了null。可是其实在触发器里面我是用local声明的局部变量。所以相当于这个变量是没有用的。
还有,我在写Jass的时候,最后we总会提示我 里面的写的函数需要包括 InitTrig_xxxx 。我觉得也就相当与main函数那个意思吧。

所以 我想问一下 我这种写Jass的方法是否正确呢?还是应该有别的写纯Jass的方法。那个全局变量的问题怎么解决? 希望知道的告诉我一下好了 谢谢了。
发表于 2008-1-17 11:48:30 | 显示全部楼层
貌似………………全局变量的触发器必须要有InitTrig_变量名的函数,刚才试着把一个此类函数名和后续改了,结果报错了………………
回复

使用道具 举报

 楼主| 发表于 2008-1-17 12:20:01 | 显示全部楼层
全局变量的触发器? 不是很明白楼上的意思。你是说触发器还是局部变量的么? 那在什么地方用呢。

还有,那个声明全局变量的触发器类型的变量是否没法不注册呢。就是我说的那个gg_trg_test变量。
回复

使用道具 举报

发表于 2008-1-17 12:59:59 | 显示全部楼层
可以申明一个空的InitTrig_test方法的

局部变量触发用的地方很多,貌似everguo大人的教程里也是有涉及的哦
回复

使用道具 举报

 楼主| 发表于 2008-1-17 13:11:42 | 显示全部楼层
空的InitTrig_test方法 这个还是不是很明白。。。。是什么意思?
就是直接写

[codes=jass]function InitTrig_test takes nothing returns nothing
endfunction[/codes]

那然后 整个触发器怎样才能触发呢? 谢拉 谢拉
回复

使用道具 举报

发表于 2008-1-17 14:31:07 | 显示全部楼层
TriggerAddCondition添加条件
TriggerAddAction添加动作
TriggerRegisterXXX注册事件
回复

使用道具 举报

发表于 2008-1-17 21:47:48 | 显示全部楼层
在游戏初始化的时候会根据触发器名字自动生成变量,然后在游戏开始的时候执行一次。

比如你建立了一个叫做Test的Trigger(在触发器编辑器里面做的)

就会自动生成一个叫做InitTrig_Test的函数和一个叫做gg_Test_trg的变量,并且在游戏开始的时候调用一次,如果把名字改了会导致找不到函数而出错。

自己写的函数不用考虑这个。
回复

使用道具 举报

发表于 2008-1-18 12:14:55 | 显示全部楼层
WE自动生成的. 因此只要你用WE建立了一个触发, 就必须对应一个InitTrg_XXX函数. 不过这个函数是可以任意放在任何位置的. 因此你可以利用这点来让自己的触发更加有条例.
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-22 17:52 , Processed in 0.040193 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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