传奇里“行会封号”原本只是行会面板里的职务名称,比如会长、护法、精英,不会直接显示在头顶。要把它显示到头顶,需要区分两种需求:一种是把行会职务名称显示到头顶,另一种是把自定义称号、封号、身份标识显示到头顶。不同引擎实现方式不同,3K、GOM、GEE、LEG、996 等引擎命令差异较大,下面按通用思路整理可直接套用的配置方法。
一、使用 SETRANKLEVELNAME 显示头顶封号
老版本和部分 3K、GOM、GEE 引擎常用 SETRANKLEVELNAME 命令,把文字显示到角色头顶。这个命令不是行会系统自带功能,而是通过脚本给角色设置一个头顶标识。
示例:
[@Login]
IF
CHECKGUILDNAME 沙巴克
ACT
SETRANKLEVELNAME %s【沙巴克精英】
SETRANKLEVELNAME 后面的 %s 表示玩家名字,反斜杠后面就是头顶显示的文字。这样玩家头顶会显示类似“玩家名【沙巴克精英】”的效果。不同引擎对分隔符和显示格式支持不同,部分版本可能只显示文字,不显示名字。
如果希望根据行会职务显示不同封号,可以配合行会检测命令:
[@Login]
IF
CHECKISGUILDMASTER
ACT
SETRANKLEVELNAME %s【行会会长】
BREAK
IF
CHECKGUILDPOSITION 护法
ACT
SETRANKLEVELNAME %s【行会护法】
BREAK
IF
CHECKGUILDPOSITION 精英
ACT
SETRANKLEVELNAME %s【行会精英】
BREAK
CHECKISGUILDMASTER 用于检测是否为行会掌门。CHECKGUILDPOSITION 用于检测行会职务名称,具体命令名称需要以当前引擎说明为准。部分引擎可能不支持直接检测职务名称,这种情况下只能通过自定义变量记录职务。
二、通过行会职务变量显示封号
如果引擎不支持直接检测行会职务,可以在玩家加入行会、变更职务时写入变量。
示例:
[@加入行会]
IF
ACT
SET [1] 1
MOV S10 普通成员
SETRANKLEVELNAME %s【<STR(S10)>】
[@变更职务为护法]
IF
ACT
MOV S10 护法
SETRANKLEVELNAME %s【<STR(S10)>】
[@变更职务为精英]
IF
ACT
MOV S10 精英
SETRANKLEVELNAME %s【<$STR(S10)>】
S10 是字符串变量,用于保存职务名称。SETRANKLEVELNAME 每次调用时读取变量内容,更新头顶显示。玩家退出行会时需要清除变量和头顶封号。
[@退出行会]
IF
ACT
SET [1] 0
MOV S10
SETRANKLEVELNAME %s\
三、使用引擎称号系统显示封号
较新的 GOM、GEE、LEG 等引擎通常使用称号系统实现头顶显示。称号需要在物品数据库中添加,并通过脚本给予玩家。
物品数据库设置:
名称:沙巴克精英
StdMode:根据引擎填写
Shape:称号编号,例如 50
Looks:称号图片起始位置
Reserved:控制是否显示数据库名称
DuraMax:称号持续时间
脚本给予称号:
ADDTITLE 沙巴克精英
删除称号:
DELTITLE 沙巴克精英
检测称号:
CHECKTITLE 沙巴克精英 > 0
称号显示到头顶后,可以配合行会职务判断给予不同称号:
[@登录更新封号]
IF
CHECKISGUILDMASTER
ACT
DELTITLEALL
ADDTITLE 行会会长
BREAK
IF
CHECKGUILDPOSITION 护法
ACT
DELTITLEALL
ADDTITLE 行会护法
BREAK
IF
CHECKGUILDPOSITION 精英
ACT
DELTITLEALL
ADDTITLE 行会精英
BREAK
ADDTITLE 和 DELTITLEALL 命令名称可能因引擎不同而不同,部分引擎使用 ADDTITLE、DELTITLE,部分使用其他命令,需要对照当前引擎 M2 帮助确认。
四、行会封号自动同步到头顶
行会职务变化后,头顶封号不会自动更新,需要通过脚本刷新。可以在行会职务变更触发处调用更新脚本。
示例:
[@行会职务变更]
IF
ACT
CALL [行会封号更新.txt] @更新头顶封号
[@更新头顶封号]
IF
CHECKISGUILDMASTER
ACT
SETRANKLEVELNAME %s【会长】
BREAK
IF
CHECKGUILDPOSITION 长老
ACT
SETRANKLEVELNAME %s【长老】
BREAK
IF
CHECKGUILDPOSITION 精英
ACT
SETRANKLEVELNAME %s【精英】
BREAK
IF
CHECKGUILDNAME
ACT
SETRANKLEVELNAME %s\
如果引擎没有行会职务变更触发标签,可以在玩家登录、进入地图、使用行会命令时重新刷新头顶封号。
五、登录时刷新头顶封号
玩家每次登录时,需要在 QManage.txt 的 [@Login] 中刷新头顶显示,避免重启后封号消失。
示例:
[@Login]
IF
CHECKGUILDNAME
ACT
CALL [行会封号更新.txt] @更新头顶封号
ELSEACT
SETRANKLEVELNAME %s\
如果使用称号系统,登录时需要检测玩家当前职务并重新给予称号:
[@Login]
IF
CHECKISGUILDMASTER
ACT
ADDTITLE 行会会长
ELSEACT
DELTITLE 行会会长
六、隐藏称号与显示冲突处理
部分引擎客户端内挂或 M2 设置中可以隐藏称号。如果头顶封号不显示,需要检查以下位置:
客户端内挂是否勾选了隐藏称号。M2 中称号素材读取设置是否配置正确。称号图片编号是否与客户端资源一致。SETRANKLEVELNAME 是否被其他脚本覆盖。玩家是否同时拥有多个称号,导致优先级冲突。
GOM 类引擎需要在 M2 中设置称号素材读取路径,通常位于选项、功能设置、其他控制中的称号素材读取设置。称号图片一般放在客户端 PAK 或 WZL 文件中,每个称号需要对应一组图片资源。
七、不同引擎适配差异
3K 引擎多使用 SETRANKLEVELNAME 实现头顶文字显示,适合显示行会封号、职务、身份标识。GOM、GEE 引擎既支持 SETRANKLEVELNAME,也支持称号系统。LEG 引擎称号功能相对简化,部分版本只支持静态图片称号。996 引擎通常使用称号和顶戴花翎系统,称号显示在角色信息栏,顶戴显示在头顶,两者需要分开配置。
如果只需要显示行会封号文字,优先使用 SETRANKLEVELNAME。如果需要图标、特效、颜色、多套封号切换,优先使用称号系统。行会封号本身不会自动变成头顶显示,必须通过脚本把职务名称写入头顶标识或称号。
八、调试顺序
修改脚本后,在 M2 控制台重新加载脚本或重启服务端。调试时按以下顺序检查:
玩家是否属于行会
行会职务名称是否正确
SETRANKLEVELNAME 是否生效
称号是否成功给予
客户端是否隐藏称号
登录时是否重新刷新头顶封号
退出行会后封号是否清除
如果头顶不显示,先确认引擎是否支持当前命令,再确认客户端资源是否完整。SETRANKLEVELNAME 修改后通常需要玩家重新登录或重新执行脚本才能刷新。称号类显示需要确保数据库 Shape、Looks、Reserved 等字段配置正确。
传奇行会封号显示到头顶:SETRANKLEVELNAME、行会职务与称号系统实战配置
来源:
作者:
点击:

