常用数据权威发布
称号称谓设置
汇总称号物品(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填的是该文件里的起始索引。
相关资源
- 蓝海数据库编辑器 — 改物品数据前自动备份,改错也能回滚
