当前位置 : 145z游戏站 | 热血传奇 | 技术教程 | 

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为自定义颜色值)
CHANGENAMECOLOR250
;3.添加1.7倍攻击Buff,持续600秒(10分钟)
POWERRATE170600
;4.给玩家添加状态标记(关键:用于后续检测和取消)
SetVar神力称号状态1
;5.设置到期定时器(600秒后触发取消操作,与Buff时长一致)
SetOnTimer神力称号到期600
;6.全服提示(原有功能保留)
SENDMSG0[<$USERNAME>]使用了“怒气神符”,10分钟内攻击力为1.7倍!
#ELSE
;重复使用提示
SENDMSG6你已处于神力1.7倍状态,无法重复使用怒气神符!


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

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

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

①确认CHANGENAMECOLOR0中的“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倍
POWERRATE200300

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


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