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

传奇登录脚本逻辑解析:CHECKDC判定与SETRANKLEVELNAME实战写法

热度:
[@wachenhao]这段脚本属于典型的人物登录/上线触发脚本,一般挂在QManage.txt或Login.txt里,用于角色进入游戏瞬间做属性判定并自动修改称号。核心逻辑是检测角色破坏力(CHECKDC)是否大于200,达标则通过SETRANKLEVELNAME强制写入【盖世战神】称号并中断后续判断。

一、脚本触发位置与执行顺序
登录脚本优先在QManage.txt中执行,引擎按从上到下顺序逐条读取。[@wachenhao]作为标签,需要在QManage里用#CALL或直接在登录段引用,否则永远不会触发。部分引擎要求登录段标签固定为[@Login]或[@OnLogin],自定义标签必须显式调用。

二、CHECKDC判定机制
CHECKDC>200检测角色当前破坏力数值,破坏力由装备属性、内功、勋章、宝石、BUFF叠加而成。判定符号>表示大于,=表示等于,<表示小于。数值必须为整数,带小数或文本直接报错。判定条件写在#IF下,#ACT下执行通过后的动作。

三、SETRANKLEVELNAME命令详解
SETRANKLEVELNAME%s\【盖世战神】
•%s为变量占位符,代表当前角色名,引擎自动替换为实际名称

•\为分隔符,部分引擎用|或#,需对照命令手册

•【盖世战神】为称号文本,显示在角色头顶、排行榜、聊天前缀

•命令执行后直接覆盖原有称号,不会叠加

•BREAK用于中断后续判断,防止引擎继续向下执行其他#IF段

四、完整标准写法示例
[@wachenhao]
IF

CHECKDC>200
ACT

SETRANKLEVELNAME%s\【盖世战神】
BREAK
ELSEACT

SETRANKLEVELNAME%s\【普通战士】
BREAK

五、常见错误与排查
1.标签未调用:[@wachenhao]写在QManage但无#CALL[文件路径]@wachenhao,登录不触发
2.分隔符错误:部分引擎SETRANKLEVELNAME用|分隔,用\直接失效
3.变量缺失:漏写%s导致称号显示为空或引擎报错
4.编码问题:脚本文件非ANSI编码,中文标签【盖世战神】解析失败
5.BREAK位置错误:BREAK写在#IF段外,导致条件判断后继续执行后续逻辑
6.判定数值溢出:CHECKDC检测值超出引擎上限,判定恒为假

六、引擎差异对照
•GOM/GEE:SETRANKLEVELNAME%s|称号,支持BREAK

•Hero:SETRANKLEVELNAME%s\称号,BREAK有效

•LEG:SETRANKLEVELNAME%s#称号,需配合#ENDIF

•Blue:SETRANKLEVELNAME%s-称号,不支持BREAK,用#EXIT替代

七、调试方法
在#ACT段加入SENDMSG6检测破坏力:%DC%输出当前破坏力数值,确认CHECKDC判定是否生效。用记事本打开脚本,确认编码为ANSI,行尾无隐藏空格。启动M2后观察Log\ScriptError.log是否有语法报错。

八、扩展应用
同类逻辑可用于检测魔法(CHECKMC)、道术(CHECKSC)、等级(CHECKLEVEL)、内功(CHECKINNERLEVEL)、转生(CHECKRELEVEL)。通过多层#IF判定实现阶梯称号:破坏力0-200为战士,201-500为战将,501以上为战神。配合CHECKITEM检测特定装备,实现穿戴专属装备自动获得称号。

登录脚本是服务端最基础的触发机制,CHECKDC与SETRANKLEVELNAME的组合只是冰山一角,引擎说明文档里的每个命令参数都对应实际运行逻辑,对照手册逐条验证才能避免脚本错误。
[顶部]