常用数据权威发布

称号称谓设置

汇总称号物品(StdMode=51)的数据库字段取值、称号命令、称号变更触发标签,以及旧称号系统的显示写法。

称号(物品库里也常写作“称谓”)是一类特殊物品:物品代码 StdMode=51,玩家使用后名字旁边会显示对应的图片与文字。

配置一件称号要同时改三个地方:物品数据库字段、称号命令与触发标签、以及名字显示相关的设置。下面按这三块分别说明。

物品数据库字段

字段说明
StdMode固定为 51,表示该物品是称号类物品。
Shape称号编号,范围 1~255。增加或减少称号物品时必须保证 Shape 连续递增:第一个称号 Shape=1、第二个 Shape=2、第三个 Shape=3,后续插入要接在最大值之后。如果中间删掉了某个称号,也要把后面的 Shape 重新改成连续的 1、2、3、4。触发标签 [@TitleChanged_XX] 里的 XX 就是这里的 Shape。
weight图片显示方式:0 = 图片和名字左右显示;1 = 图片和名字上下显示。
Source称号颜色:0~5(0=白色、1=绿色、2=蓝色、3=紫色、4=橙色、5=金色)。
Reserved名字显示方式:0 = 显示图片 + 名字文字;1 = 只显示图片。
Looks称号图片在 ui1.wzl 中的起始索引位置。
DuraMax可使用时间,单位小时。
其他字段等同于装备属性,例如 Dc=攻击下限、DcMax=攻击上限、Mc=魔法下限、McMax=魔法上限、Sc=道术下限、ScMax=道术上限。

称号命令

命令说明
CheckTitle检测称号是否存在,小于 1 则给授予称号。
ConFerTitle设置人物称号系统,用于授予称号。
DepriveTitle删除人物称号系统;DepriveTitle ALL 删除所有称号。

称号变更触发

玩家改变使用称号,或刚上线时有使用到称号,会触发 QFunction-0 中的对应标签:

对象触发标签
人物[@TitleChanged_XX]
英雄[@HeroTitleChanged_XX]

XX 代表物品 DB 中的 Shape。

示例

不存在时授予称号

[@CHECKTITLE]
#IF
CheckTitle 传奇之星 < 1
#ACT
ConFerTitle 传奇之星

已存在时删除称号

[@CHECKTITLE]
#IF
CheckTitle 传奇之星 = 1
#ACT
DepriveTitle 传奇之星
#ELSESAY
传奇之星称谓都不存在,你还来删除什么?

变更称号时全服公告

[@TitleChanged_XX]
#IF
IsCastleMaster
#ACT
SendMsg 0 伟大的沙巴克城主<$USERNAME>进入了游戏!

旧称号系统

除了称号物品,引擎还保留了一套基于名字显示格式的旧称号系统,由 !Setup.txt 控制:

ShowRankLevelName=1
; 0 = 不显示脚本个人封号
; 1 = 显示脚本个人封号

该参数默认为 0(关闭)。开启后使用 SetRankLevelName 设置显示内容:

[@NAME]
#ACT
SetRankLevelName %s[称号]
#SAY
你的名字后面已经加上[称号]了。

想让人物名字与称号分行显示,只需在 %s 后面加上 \,例如 %s\称号。

当前称号可用变量 <$CURTITLENAME> 读取。

注意事项

  • Shape 一旦出现断号,[@TitleChanged_XX] 就会对不上物品,修改称号 DB 后要重新检查一遍连续性。
  • CheckTitle 的常见写法是 < 1 表示不存在、= 1 表示存在;DepriveTitle 建议先用 CheckTitle 判断,避免脚本分支与预期不一致。
  • DepriveTitle ALL 会一次性删除该人物的所有称号,使用前要确认调用位置。
  • 旧称号系统与称号物品是两套机制:前者只改名字显示格式,后者依赖物品 DB 与 Shape 触发。
  • 称号图片统一放在客户端的 ui1.wzl 中,Looks 填的是该文件里的起始索引。

相关阅读