找回密码
 点一下
查看: 1145|回复: 2

怎样为某个自定义触发器注册啊。

[复制链接]
发表于 2011-4-15 00:30:00 | 显示全部楼层 |阅读模式
刚刚接触GE,希望会的人指点一下迷津。我创建自定义的脚本,但是怎样为这个自定义里面的触发器变量注册为触发器呢,我试着模仿脚本检测里面的函数的样子但是它就是不行,请给个创建自定义脚本并创建触发器的完整代码。。。
发表于 2011-4-15 09:08:05 | 显示全部楼层
  1. trigger gtPlayerKeyDown;
  2. bool gtPlayerKeyDownFunc (bool testConds, bool runActions) {
  3. // Conditions
  4. int nEventPlayer = 0;
  5. int nEventKeyPressed = 0;
  6. nEventPlayer = EventPlayer();
  7. nEventKeyPressed = EventKeyPressed();
  8. gf_Output("player[" + IntToString(nEventPlayer) + "] press a key down:" + IntToString(nEventKeyPressed));
  9. return true;
  10. }
复制代码


申明一个出发器,写一个触发器对应的函数。那个gf_Output函数是我自己写的一个触发器函数。
你可以换成    UIDisplayMessage(PlayerGroupAll(),
        c_messageAreaChat,
        StringToText("player[" + IntToString(nEventPlayer) + "] press a key down:" + IntToString(nEventKeyPressed))
    );
之类的;
  1. void gtPlayerControlInit () {
  2. gtPlayerKeyDown = TriggerCreate("gtPlayerKeyDownFunc");
  3. TriggerAddEventKeyPressed(gtPlayerKeyDown, c_playerAny, c_keyNone, true, c_keyModifierStateIgnore, c_keyModifierStateIgnore, c_keyModifierStateIgnore);
  4. }
复制代码


再写一个函数创建触发器,并为触发器写上触发条件,这个是有任意键被往下按。



最后在随便一个什么地方调用这个gtPlayerControlInit 函数,比如可以建一个函数TriggerON,类型为动作-自定义脚本。
然后在自定义脚本中对这个函数进行调用。再把这个动作挂到地图初始化里面去之类的
回复

使用道具 举报

 楼主| 发表于 2011-4-15 09:30:22 | 显示全部楼层
那么多个自定义的触发都需要用一个触发初始化?好像不方便哦,we就可以在自己的触发里面注册到了,不过楼上的解答很详细,谢谢洛,试了下直接创建的动作时不会被执行的,需要在一个全局的触发里面运行这个全局的动作才行,不过我真的觉得不是太方便哦,不过可以用这个触发注册所有自定义的触发了,。。。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 12:32 , Processed in 0.029351 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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