GOM传奇引擎物品触发限时称号教程(含到期自动取消)

来源: 作者: 点击:
本文针对GOM引擎物品触发限时称号需求,解决“称号添加后到期不取消”问题,以“怒气神符触发10分钟神力1.7倍称号”为例,提供完整脚本代码,重点说明时间检测逻辑、称号取消命令及变色恢复方法,新手可直接照搬配置。

一、原有脚本核心问题分析

你提供的原有脚本仅实现了称号添加、颜色修改和攻击Buff添加,未设置“限时标记”和“到期检测机制”,导致POWERRATE命令的600秒(10分钟)Buff到期后,称号和颜色无法自动恢复。核心缺失点:

1. 无限时状态标记:未给使用物品的玩家添加专属限时标记,引擎无法识别哪些玩家需要到期取消称号;

2. 无到期检测定时器:缺少循环检测Buff是否到期的逻辑,无法触发后续取消操作;

3. 无称号/颜色恢复命令:未配置取消称号和恢复默认名字颜色的对应命令。

二、完整解决方案:添加限时标记+到期自动取消脚本

核心思路:使用物品时,除原有效果外,给玩家添加“限时称号状态标记”和“到期定时器”,定时器到期后,自动清除标记、取消称号、恢复名字颜色。完整脚本需分两部分写入GOM引擎对应文件。

1. 第一部分:物品触发脚本(写入物品功能文件)

找到GOM服务端\Mirserver\Mir200\Envir\Items.txt文件(物品配置文件),定位“怒气神符”对应的物品条目,在其功能脚本处添加以下代码(替换原有不完整脚本):

;怒气神符触发限时称号脚本
#if
;判定玩家未处于该限时称号状态(避免重复使用叠加)
CheckNotVar 神力称号状态 1
#act
;1. 添加称号
SETRANKLEVELNAME 神力1.7倍
;2. 名字和称号变色(250为自定义颜色值)
CHANGENAMECOLOR 250
;3. 添加1.7倍攻击Buff,持续600秒(10分钟)
POWERRATE 170 600
;4. 给玩家添加状态标记(关键:用于后续检测和取消)
SetVar 神力称号状态 1
;5. 设置到期定时器(600秒后触发取消操作,与Buff时长一致)
SetOnTimer 神力称号到期 600
;6. 全服提示(原有功能保留)
SENDMSG 0 [<$USERNAME>]使用了“怒气神符”,10分钟内攻击力为1.7倍!
#ELSE
;重复使用提示
SENDMSG 6 你已处于神力1.7倍状态,无法重复使用怒气神符!


2. 第二部分:到期取消脚本(写入QF文件)

打开GOM服务端\Mirserver\Mir200\Envir\QuestDiary\QuestFunc.txt(简称QF文件),在文件末尾添加以下到期检测与取消脚本:

;神力称号到期自动取消脚本
(@OnTimer_神力称号到期)
#IF
;判定玩家仍处于该限时称号状态(避免重复取消)
CheckVar 神力称号状态 1
#ACT
;1. 取消称号(关键命令:清空当前称号)
SETRANKLEVELNAME ""
;2. 恢复名字默认颜色(关键命令:0为默认颜色,GOM引擎通用)
CHANGENAMECOLOR 0
;3. 清除状态标记(避免后续误触发)
DelVar 神力称号状态
;4. 清除到期定时器(释放引擎资源)
DelOnTimer 神力称号到期
;5. 给玩家发送到期提示
SENDMSG 6 你的神力1.7倍状态已到期,称号已取消,名字颜色已恢复!
Return

三、核心命令说明(解决到期取消关键)

脚本中新增的3个关键命令,是实现到期自动取消的核心,具体作用如下:

1. 状态标记相关命令

(1)SetVar 神力称号状态 1:给使用物品的玩家添加一个名为“神力称号状态”的变量,值设为1,用于标记玩家处于限时称号状态,方便后续定时器精准识别需要取消的对象;

(2)CheckVar 神力称号状态 1:检测玩家是否带有该状态标记,确保只有处于状态中的玩家才会执行取消操作;

(3)DelVar 神力称号状态:取消称号后,删除该状态标记,避免玩家再次使用物品时被判定为“重复状态”,同时释放变量资源。

2. 定时器相关命令

(1)SetOnTimer 神力称号到期 600:设置一个名为“神力称号到期”的定时器,600秒后自动触发对应的(@OnTimer_神力称号到期)段落脚本,时长需与POWERRATE的Buff时长保持一致;

(2)DelOnTimer 神力称号到期:取消称号后,删除该定时器,避免定时器持续运行占用引擎资源。

3. 称号与颜色恢复命令

(1)SETRANKLEVELNAME "":取消称号的核心命令,通过给称号赋值为空字符串,清空玩家当前的称号,GOM引擎通用;

(2)CHANGENAMECOLOR 0:恢复名字默认颜色的关键命令,GOM引擎中0代表默认文字颜色,可直接覆盖原有250的自定义颜色,实现颜色自动恢复。

四、配置步骤(新手必看)

1. 配置物品触发脚本:

(1)打开Items.txt文件,搜索“怒气神符”,找到其对应的“功能脚本”列;

(2)将“第一部分:物品触发脚本”完整复制,替换该列原有脚本内容,保存文件。

2. 配置到期取消脚本:

(1)打开QF文件(QuestFunc.txt),直接定位到文件末尾;

(2)将“第二部分:到期取消脚本”完整复制粘贴到末尾,确保段落标识(@OnTimer_神力称号到期)不与文件中现有标识重复,重复则修改标识名称(如改为@OnTimer_神力称号到期_01)。

3. 重载脚本生效:

(1)游戏内使用GM指令 @ReloadQF 重载QF文件脚本;

(2)使用GM指令 @ReloadItem 重载物品配置文件;

(3)无需重启服务端,配置完成后即可测试效果。

五、测试与常见问题排查

1. 测试步骤

(1)给测试账号发放“怒气神符”,使用后查看是否添加“神力1.7倍”称号、名字是否变色;

(2)等待10分钟(或直接使用GM指令 @DelOnTimer 神力称号到期 强制触发),查看称号是否自动消失、名字颜色是否恢复默认;

(3)测试重复使用“怒气神符”,查看是否提示“已处于状态”,避免重复叠加。

2. 常见问题排查

(1)到期后仍不取消称号:

① 检查QF文件中(@OnTimer_神力称号到期)段落标识是否正确,确保与SetOnTimer设置的定时器名称一致(大小写敏感);

② 确认玩家使用物品时成功添加状态标记,可通过GM指令 @CheckVar 神力称号状态 查看玩家变量值是否为1;

③ 检查脚本中是否遗漏DelVar 神力称号状态命令,未删除标记可能导致后续无法正常触发。

(2)名字颜色未恢复:

① 确认CHANGENAMECOLOR 0中的“0”未写错,GOM引擎默认颜色代码为0,其他引擎可能不同,但GOM通用;

② 检查是否有其他脚本覆盖了颜色设置,可暂时关闭其他颜色相关脚本,单独测试本脚本。

(3)无法重复使用物品:

① 查看称号到期后是否成功删除状态标记,未删除则使用GM指令 @DelVar 神力称号状态 手动清除;

② 检查物品脚本中CheckNotVar 神力称号状态 1是否正确,确保是“CheckNotVar”(检测无该变量)。

六、通用修改方法(适配其他限时称号)

若需实现其他物品触发限时称号(如“暴击2倍”“防御提升”等),只需修改以下3处参数,即可复用脚本:

1. 状态标记名称:将“神力称号状态”改为对应称号的状态名(如“暴击称号状态”);

2. 定时器名称:将“神力称号到期”改为对应名称(如“暴击称号到期”);

3. 称号名称与时长:修改SETRANKLEVELNAME后的称号文本,调整POWERRATE和SetOnTimer的时长(单位:秒)。

示例(修改为5分钟暴击2倍称号):

;物品触发脚本修改示例
SetVar 暴击称号状态 1
SetOnTimer 暴击称号到期 300
SETRANKLEVELNAME 暴击2倍
POWERRATE 200 300

;到期取消脚本修改示例
(@OnTimer_暴击称号到期)
#IF
CheckVar 暴击称号状态 1
#ACT
SETRANKLEVELNAME ""
CHANGENAMECOLOR 0
DelVar 暴击称号状态
DelOnTimer 暴击称号到期
SENDMSG 6 你的暴击2倍状态已到期,称号已取消!


综上,GOM引擎实现物品触发限时称号并自动取消,核心是“状态标记+定时器+取消命令”的组合。按本文脚本配置后,即可解决原有脚本到期不取消的问题,适配各类限时称号需求,配置过程中需确保脚本标识唯一、命令拼写正确,避免因格式错误导致功能失效。