|
本帖最后由 yxxiaobin 于 2016-1-7 09:54 编辑
目前我是这样做的:在需要抛出事件时调用一个“发送常规事件”动作,然后定义一个自定义事件,动作只有一条自定义代码“TriggerAddEventGeneric(t, "***")”,星号指代发送常规事件里指定的字符串名称。然后在需要响应自定事件的触发器里直接使用这一自定事件。倒是能正常响应,但是无法做出与之配合的类似于“进行触发的单位”这样的响应函数。倒是想到了使用普通函数来读取一个全局变量,但这非常不可靠的:因为同一时刻可能有多个触发器实例抛出这一事件,这时该全局变量就会依次被重写,然后才是自定义事件响应,运行后续触发器,这无疑会导致一部分触发器读取到错误的值。请问有没有办法做出这样的“单独配给”的响应函数呢?另外系统的此类函数都能探测事件,从而标定这一函数是否可用(比如你响应玩家聊天事件,就会发现“进行触发的单位”这一函数是灰的,自定义的事件和函数是否也有这样的功能呢?
----------------------------------------------------------------------------------------------
目前想到一个替代方案:在需要抛出事件时,用一个空集合效果命中单位,然后在自定义事件里注册“使用效果”事件,这样实际上自定义事件就转换成了“使用效果”事件,和此事件相关的函数有些是内置的(比如效果的目标,触发玩家等等),有些则可以通过内置函数计算出来(比如目标单位的位置),只要用一个自定义函数包装一下就可以了。但是这只适合与单位有关的事件,其他事件可能不适用。当然在对待和单位无关的事件时,或许也可以用类似的方法来调用内置函数,但是不知道这是否是最优做法。
总之还是期待头目的全面教程。
|
|