GOM 引擎传奇架设:物品触发称号时间到取消的脚本配置方法

来源: 作者: 点击:
在 GOM 引擎传奇架设中,通过物品触发临时称号(如 “神力 1.7 倍”)时,若仅添加称号设置与 Buff 命令,会出现 “时间到后称号不取消、颜色不恢复” 的问题。核心解决方案是在物品使用脚本中添加 “定时检测任务”,绑定 Buff 时长(600 秒),到期自动执行取消命令。以下为完整脚本配置步骤、命令说明及操作要点。
一、现有脚本的缺陷与核心需求
用户现有物品触发脚本(以 “怒气神符” 为例)仅实现 “添加称号、改颜色、加攻击力 Buff”,缺少 “600 秒后取消称号、恢复名字颜色” 的逻辑:
#if
#act
SETRANKLEVELNAME 神力1.7倍 ; 设置称号
CHANGENAMECOLOR 250 ; 名字与称号改为250色(通常为红色)
POWERRATE 170 600 ; 攻击力1.7倍,持续600秒
SENDMSG 0 [<$USERNAME>]使用了“怒气神符”,10分钟内攻击力为1.7倍…… ; 全服提示

需补充的核心功能:
同步 Buff 时长(600 秒),设置 “定时触发取消操作”;
取消称号:使用 GOM 引擎专属的 “清除称号命令”;
恢复颜色:需明确玩家原名字颜色,执行对应恢复命令;
避免重复触发:确保同一物品多次使用时,定时任务不冲突。
二、完整脚本配置:添加定时取消逻辑
1. 核心思路
在物品使用脚本的#ACT段中,新增 “添加定时任务” 命令(ADDTIMER),设置 600 秒后调用 “取消称号与恢复颜色” 的子脚本;同时记录玩家原名字颜色,避免恢复时颜色错误。
2. 完整脚本示例(含取消逻辑)
#if
; 条件:判断玩家是否已使用该物品(避免重复叠加定时任务,可选)
CheckNotTimer ClearTitle_<$USERNAME> ; 检查是否已有“ClearTitle_玩家名”的定时任务
#act
; 1. 记录玩家原名字颜色(关键:避免恢复时颜色错误)
GetNameColor <OldColor> ; 将当前玩家名字颜色存入变量<OldColor>
; 2. 原有功能:设置称号、改颜色、加Buff、发提示
SETRANKLEVELNAME 神力1.7倍
CHANGENAMECOLOR 250
POWERRATE 170 600
SENDMSG 0 [<$USERNAME>]使用了“怒气神符”,10分钟内攻击力为1.7倍……
; 3. 新增:添加600秒定时任务,触发取消逻辑(任务名含玩家名,避免多玩家冲突)
ADDTIMER 600 "ClearTitle_<$USERNAME>" ; 600秒后执行名为“ClearTitle_玩家名”的任务
; 4. 定义定时任务的执行内容(取消称号、恢复颜色)
#TIMER ClearTitle_<$USERNAME>
#ACT
; 取消称号(GOM引擎专属命令,需与SETRANKLEVELNAME对应)
CLEARANKLEVELNAME ; 清除当前玩家的称号
; 恢复原名字颜色(使用第一步记录的<OldColor>变量)
CHANGENAMECOLOR <OldColor>
; 可选:发送到期提示给玩家
SENDMSG 6 您的“怒气神符”效果已结束,称号与名字颜色已恢复正常!
; 可选:清除定时任务标记(避免残留)
DelTimer ClearTitle_<$USERNAME>

3. 关键命令说明
命令
作用
注意事项
GetNameColor <OldColor>
读取玩家当前名字颜色,存入变量<OldColor>
必须在改颜色前执行,否则变量会存新颜色
ADDTIMER 600 "ClearTitle_<$USERNAME>"
设置 600 秒后触发名为 “ClearTitle_玩家名” 的定时任务
任务名含<$USERNAME>(玩家名),防止多玩家使用时任务冲突
#TIMER ClearTitle_<$USERNAME>
定义定时任务的执行脚本段
需与ADDTIMER的任务名完全一致(含玩家名变量)
CLEARANKLEVELNAME
清除玩家当前称号
GOM 引擎专用命令,仅对SETRANKLEVELNAME设置的称号生效
CHANGENAMECOLOR <OldColor>
将名字颜色恢复为使用物品前的颜色
依赖<OldColor>变量,若省略此步,颜色会一直保持 250 色
DelTimer ClearTitle_<$USERNAME>
执行完取消操作后,删除定时任务标记
避免任务残留,影响下次使用物品

三、架设操作要点:确保脚本生效
1. 脚本存放路径
将上述完整脚本添加到 GOM 引擎的 “物品触发脚本文件” 中,路径为:
服务端/Mir200/Envir/QuestDiary/物品触发/怒气神符.txt(若无 “物品触发” 文件夹,手动创建;文件名需与物品名称对应)。
2. 开启 GOM 定时任务支持
打开 GOM 引擎核心程序M2Server.exe,按以下步骤设置:
进入「选项设置 — 功能设置」,勾选 “启用定时任务脚本”(默认关闭,需手动开启);
进入「脚本管理 — 定时任务脚本」,确认 “自动加载物品触发中的定时任务” 已勾选;
点击 “保存设置”,重启 M2Server(不重启则定时任务不生效)。
3. 测试验证步骤
启动服务端与客户端,创建测试角色,记录初始名字颜色(如默认 255 色,白色);
使用 “怒气神符”,确认:
名字颜色变为 250 色,头顶显示 “神力 1.7 倍” 称号;
打开 M2「日志管理 — 定时任务日志」,查看 “ClearTitle_测试角色名” 任务已添加,倒计时 600 秒;
等待 600 秒后,检查:
称号消失,名字颜色恢复为初始 255 色;
玩家收到 “效果已结束” 的系统提示(6 号颜色,黄色);
定时任务日志显示 “ClearTitle_测试角色名” 任务已执行并删除。
四、常见问题与解决方案
问题 1:600 秒后称号不取消,无任何反应
原因 1:M2 未开启 “定时任务支持”,或未重启 M2;
解决:重新检查 M2「功能设置」中 “启用定时任务脚本” 是否勾选,保存后重启 M2。
原因 2:定时任务名不一致,如ADDTIMER用 “ClearTitle”,#TIMER用 “Clear_Title”;
解决:确保ADDTIMER后的任务名与#TIMER后的任务名完全一致(含<$USERNAME>变量)。
问题 2:颜色恢复错误(如恢复为黑色,非初始颜色)
原因:GetNameColor <OldColor>命令位置错误,放在了CHANGENAMECOLOR 250之后,导致变量存的是新颜色;
解决:调整脚本顺序,确保GetNameColor在CHANGENAMECOLOR 250之前执行(参考完整脚本示例的顺序)。
问题 3:多次使用物品,称号重复叠加或取消混乱
原因:未添加 “CheckNotTimer” 条件,导致多次使用时创建多个相同定时任务;
解决:在#IF段中添加CheckNotTimer ClearTitle_<$USERNAME>,确保同一玩家同一时间仅存在一个取消任务。
问题 4:CLEARANKLEVELNAME 命令无效,称号仍存在
原因:使用了其他命令设置的称号(如SETRANKNAME,非SETRANKLEVELNAME),CLEARANKLEVELNAME 仅对后者生效;
解决:确认设置称号时用的是SETRANKLEVELNAME,若用SETRANKNAME,取消命令需改为CLEARANKNAME。
五、扩展:不同 Buff 时长的适配
若物品 Buff 时长不是 600 秒(如 300 秒,5 分钟),仅需修改ADDTIMER后的时间参数,保持与POWERRATE的时长一致即可,示例:
POWERRATE 150 300(攻击力 1.5 倍,300 秒)→ ADDTIMER 300 "ClearTitle_<$USERNAME>"(300 秒后取消)。
通过 “记录原颜色 + 定时任务 + 对应取消命令” 的组合,可彻底解决 GOM 引擎下物品触发称号 “时间到不取消” 的问题,确保玩法逻辑闭环,提升玩家体验。