|
新手刚刚学习编辑器,发现在用触发器生成函数的时候搞来搞去搞不清楚,而且限制条件比较多。
比如勾选了自定义脚本之后,无法用 int a = 1;之类的创建局部变量。。。
我看了一下他的编译方式,-
- bool gt_Test_Func (bool testConds, bool runActions) {
- // Actions
- if (!runActions) {
- return true;
- }
- TriggerDebugOutput(1, StringExternal("Param/Value/4F56987B"), true);
- int a = 1;
- UIDisplayMessage(PlayerGroupAll(), c_messageAreaChat, StringToText(IntToString(111)));
- //gf_TestFunction2();
- libNtve_gf_TextureDump;
- StructTest();
- return true;
- }
复制代码
他给我的自定义脚本会放在
// Actions
if (!runActions) {
return true;
}
这一段之后,变量申明不在最前面 所以一定编不过。。。
我用MPQEditor打开MapScript.galaxy脚本之后自己改写函数是没有问题的。。。
这样就有新的问题来了。。我希望能自己写头文件,脚本中引用自己写的函数。
将一个testlib.galaxy导入地图的sc2map文件之后,可以正常include,手动改MapScript之后也能正常调用。
但是一打开编辑器,将触发器数据编译之后就全部都被覆盖了。
于是想到改系统的库文件,希望能在触发器中写自定义脚本时可以调用自己写的函数而不会编不过。。
发现触发器被编译后脚本一定会 include "TriggerLibs/NativeLib"
于是在客户端找,发现 Mods\Core.SC2Mod\Base.SC2Data.MPQ 这个文件中包含了此头文件
于是我改了NativeLib.galaxy。。。
加了一行 include "TriggerLibs/testLib"
同时将 testlib.galaxy导入到Mods\Core.SC2Mod\Base.SC2Data.MPQ中。。
结果还是泪流满面的发现不能用。。。。
我要如何才能自己写头文件,并且能在触发器中写脚本时调用头文件中的自定义函数呢。。。。。 |
|