|
*] Trigger 是一个数据类型
*] SC2 的 AI 环境和 SCRIPT 环境是相同的(猜的)
- 在 AI 环境中是可以调用 SCRIPT 的接口和功能的
- WAR3 中并没有这么自由
*] 一个简单的 Trigger 的创建至少由以下两部分代码构成:
- Action 定义部分: 函数名则是 Trigger 的名字, 函数体的内容则是 Action 的处理部分, 这个名字在后面创建 Trigger 的时候有用
- 其中两个约定的参数一次是条件判断和是否执行处理的标志, 用法如下例: -
- bool TriggernActionName_Func (bool checkConds, bool doActions) {
- UIDisplayMessage(PlayerGroupAll(), 4, StringToText("TestTrigger Start ......"));
- //目前还没有发现 Wait 函数的具体使用方法, 应该是native声明的时候返回和参数表错了
- //Wait(5);
- if (checkConds && doActions) {
- UIDisplayMessage(PlayerGroupAll(), 4, StringToText("TestTrigger Progress ......"));
- }
- UIDisplayMessage(PlayerGroupAll(), 4, StringToText("TestTrigger End ......"));
- return true;
- }
复制代码
- 创建 Trigger 部分-
- void TestTriggerInit () {
- trigger t;
- // 创建一个 Trigger, 参数是一个函数名, 这个函数名就是上面定义的那个函数的名字: TriggernActionName_Func.
- t = TriggerCreate("TriggernActionName_Func");
- // 不同的事件(Event)是由不同的接口来挂接的, 多个不同的Trigger 可以同时被挂接在不同的事件(Event)下面
- // 下面这个例子是当玩家输入一个字符串的时候触发
- // t 表示这个事件(Event)所挂接的Trigger(Action), 第二个参数应该是频道(没测试), 而第三个参数"hahaha"这个字符串则是聊天频道中玩家需要输入的字符串, 最后一个参数 false 的时候表示包含则触发, true 的时候是全匹配才触发.
- TriggerAddEventChatMessage(t, 1, "hahaha", false);
- }
复制代码
- 在任何地方调用 TestTriggerInit () 这个 Trigger 就创建好了, 聊天频道输入字符串就可以工作了. |
|