void aoebbs(string xs="") { rmAddTriggerEffect("SetIdleProcessing"); rmSetTriggerEffectParam("IdleProc", "false); */ "+xs+" /* "); } void aoebbsA(string xs="") { rmAddTriggerEffect("SetIdleProcessing"); rmSetTriggerEffectParam("IdleProc", "false); "+xs+"/* trSetUnitIdleProcessing(false"); } void aoebbsE(string xs="") { rmAddTriggerEffect("SetIdleProcessing"); rmSetTriggerEffectParam("IdleProc", "false); */ "+xs+"/* trSetUnitIdleProcessing(false"); } void aoebbsZ(string xs="") { rmAddTriggerEffect("SetIdleProcessing"); rmSetTriggerEffectParam("IdleProc", "false); */ "+xs+" trSetUnitIdleProcessing(false"); } void aoebbsR(string xs1="",string xs2="") { rmCreateTrigger(xs1+" "+xs2+"/*"); rmCreateTrigger("*/rule _"+xs1+"End"); rmSetTriggerActive(false); } 然后在void main(void)末尾花括号`}`前面添加
//这里的是可选功能,用于踢出踢出中文安装路径玩家
/*因为中文路径会导致地图里面的触发程序失效,还会导致联机不同步;所以设定以下两个触发程序。*/
//原理:中文安装路径的玩家用rmSetTrigger生成的触发是空白的,然后我将触发效果写在了rmCreateTrigger,该触发效果为如果检测不到trQuestVarGet("Path"),使其自己退出游戏,不会造成联机不同步,然后用/*注释掉其他内容,下面再添加一个rmCreateTrigger("*/rule _PathEnd")使其停止注释,这样就可以强行加入触发了,不受中文路径影响,但有限制,最大字符255。
rmCreateTrigger("GameStart");
rmSetTriggerRunImmediately(true);
rmSetTriggerPriority(5);
rmSetTriggerEffectParam("IdleProc","true);trQuestVarSet(\"Path\",1);xsDisableSelf();}}/*");
aoebbs("rule _GameStartEND inactive { if(true){");
aoebbsZ("xsDisableSelf();");
rmCreateTrigger("Path active runImmediately{if(trQuestVarGet(\"Path\")!=1){"+"showSPCNote(\"Error!\",\"Use-the-English-path-to-install-the-Age-of-Empires-III,please.\");"+"uiMessageBox2(20948);trEndGame();trYouWin(true);xsDisableRule(\"_Path\");}}/*"); rmCreateTrigger使用说明,利用/**/将触发程序写在rmCreateTrigger中,将不会受到中文路径影响而引起的失效,但最高上限255字符,不能输入空格,只能用tab制表符代替,若输入空格则变成下划线_。
rmSetTriggerActive(false);
rmSetTriggerPriority(5);
rmCreateTrigger("*/rule _PathEnd");
rmSetTriggerActive(false);
//以下红色字体为必要设定,只需要添加一次,添加一次后,你就可以在CustomTrigger与_Temp之间任意插入xs触发。最后一句必须加上 `aoebbsE("");`,aoebbsE("") 的双引号内可以插入触发程序代码。
rmCreateTrigger("CustomTrigger");
rmSwitchToTrigger(rmTriggerID("CustomTrigger"));
rmSetTriggerRunImmediately(true);
aoebbsA("}}");
//这个是xs触发示例:
aoebbs("rule _1start inactive runImmediately { ");
aoebbs("if((trTime()-cActivationTime) >= 300.00000000){");
aoebbs("trSetLighting(\"New England Start\", 130.00000000);");
aoebbs("xsDisableRule(\"_1start\");");
aoebbs("xsEnableRule(\"_2start\");");
aoebbsE("}} ");
//如果你使用的是aoebbsZ结束函数,那么必须要以aoebbsZ("/*");结尾
aoebbs("rule _1startZ inactive runImmediately { ");
aoebbs("if((trTime()-cActivationTime) >= 300.00000000){");
aoebbs("trSetLighting(\"New England Start\", 130.00000000);");
aoebbs("xsDisableRule(\"_1startZ\");");
aoebbs("xsEnableRule(\"_2start\");");
aoebbsZ("}} /*");
//RM与XS混用,根据RM的设定,生成不同的触发
int PlayerType = rmRandInt(1,2);
aoebbs("rule _2start inactive runImmediately { ");
aoebbs("if((trTime()-cActivationTime) >= 130.00000000){");
if ( PlayerType == 1 )
{
aoebbs("trSetLighting(\"yellow_river\", 140.00000000);");
}
if ( PlayerType == 2 )
{
aoebbs("trSetLighting(\"yukon\", 140.00000000);");
}
aoebbs("xsDisableRule(\"_2start\");");
aoebbs("xsEnableRule(\"_3patagonia\");");
aoebbsE("}} ");
if (rmGetNomadStart()!=true)
{
aoebbs("rule _start active runImmediately { ");
aoebbs("if((trTime()-cActivationTime) >= 1.00000000){");
for(p=1;<=cNumberNonGaiaPlayers)
{
if (rmGetPlayerCiv(p) >= 14 && rmGetPlayerCiv(p) <= 18 )
{
aoebbs("trChatSendToPlayer(0,"+p+",\"{63974}\");");
}
else if (rmGetPlayerCiv(p) >= 19 && rmGetPlayerCiv(p) <= 26 )
{
aoebbs("trChatSendToPlayer(0,"+p+",\"{63973}\");");
}
else
{
aoebbs("trChatSendToPlayer(0,"+p+",\"{31536}\");");
}
}
aoebbs("xsDisableRule(\"_start\");");
aoebbsE("}} ");
}
这里必须要以aoebbsZ结尾,不能用aoebbsE结尾
aoebbs("rule _Temp inactive { if(true){");
aoebbsZ("xsDisableSelf();");
使用方法:当前分了两种转换,一种是封装函数(需要在右上角将aoebbs右边的字母修改成R),建议封装函数,如果不封装函数将会导致在地图中无法使用/**/注释这个触发程序。与上面的触发程序一样,你需要先在头部声明
void aoebbsR(string xs1="",string xs2="") {
rmCreateTrigger(xs1+" "+xs2+"/*");
rmCreateTrigger("*/rule _"+xs1+"End");
rmSetTriggerActive(false);}
然后你可以直接使用aoebbsR(srting 触发程序名,string 触发源代码)调用这种触发程序。
例如
aoebbsR("About8"," active runImmediately{if(trTime()>=1){for(m=0;<9){trChatSend(0,\" \");}trChatSendSpoofed(0,\"Forum:\");"+"trChatSendSpoofed(0,\"https:// www.aoebbs.net\");xsDisableSelf();}}");
如果不封装函数将变回
rmCreateTrigger("About8 active runImmediately{if(trTime()>=1){for(m=0;<9){trChatSend(0,\" \");}trChatSendSpoofed(0,\"Forum:\");"+"trChatSendSpoofed(0,\"https:// www.aoebbs.net\");xsDisableSelf();}}/*");
rmCreateTrigger("*/rule _About8End");
rmSetTriggerActive(false);
繁体简体互转工具
文字类
汉字、UTF-8互转工具
编码类
UTF-8编码/unicode编码转换
编码类
URL编码转换工具
编码类
在线MD5加密
编码类
base64加密(UTF-8编码)
编码类
计算文字个数
小工具
密码生成器管理员专用
小工具
RGB十六进制
网站类
在线调试css渐变色
网站类
html格式化
网站类
2-64进制转换工具
开发类
xml格式化
开发类
时间戳转换工具
开发类
二维码生成
图片类
图片转换base64编码
图片类
在线识别图片颜色
图片类
词云图生成
图片类
封禁帝国3科技作弊漏洞工具
帝国时代3工具
触发程序转码器
帝国时代3工具