PAPI 占位符
DM 接上 PlaceholderAPI 以后,可以把副本状态、队伍信息、历史成绩、排行榜数据直接显示到计分板、菜单、全息、聊天格式和其他支持 PAPI 的插件里。
DM 的占位符前缀固定是:
text
%dm_*%启用方式
需要同时满足下面两点:
- 服务器已安装
PlaceholderAPI config.yml里开启集成.PAPI.启用
还有一个很实际的前提:
- DM 这套 PAPI 在没有玩家对象时,会直接返回空文本
- 所以下面这批占位符,更适合放在菜单、计分板、玩家信息面板、玩家全息这类带玩家上下文的位置
- 如果你把它塞进纯服务端轮播、没有玩家上下文的公告链路,看到空文本是正常现象
稳定可用的局内信息
这些键在当前版本源码里能看到明确写入流程,日常使用可以放心接。
| 占位符 | 说明 | 默认值 |
|---|---|---|
%dm_in_dungeon% | 玩家是否在副本中 | false |
%dm_dungeon_id% | 当前副本 ID | 无 |
%dm_dungeon_name% | 当前副本显示名 | 无 |
%dm_dungeon_stage% | 当前阶段 ID | 无 |
%dm_dungeon_time% | 当前副本已进行秒数 | 0 |
%dm_dungeon_time_format% | 当前副本时间,格式 mm:ss | 00:00 |
%dm_party_size% | 当前队伍人数 | 0 |
%dm_dungeon_time_format% 不是单独存的一份数据,它是根据 %dm_dungeon_time% 现场格式化出来的。
队员显示
text
%dm_member_1%
%dm_member_2%
...
%dm_member_20%没有对应队员时会返回空文本,适合做队伍面板、全息列表、旁观信息。
局内货币
格式:
text
%dm_currency_<货币名>%示例:
text
%dm_currency_积分%
%dm_currency_金币%这部分读取的是副本内玩家会话里的货币值,也就是脚本里 货币.给予、货币.扣除、货币.设置 改的那一套数据。
活力值
| 占位符 | 说明 | 默认值 |
|---|---|---|
%dm_vitality_current% | 当前活力值 | 0 |
%dm_vitality_max% | 活力上限 | 0 |
历史成绩
| 占位符 | 说明 | 无记录时 |
|---|---|---|
%dm_clears_<副本ID>% | 当前玩家该副本通关次数 | 0 |
%dm_best_time_<副本ID>% | 当前玩家最佳时间,格式化后显示 | - |
%dm_best_time_ms_<副本ID>% | 当前玩家最佳时间,毫秒值 | 0 |
示例:
text
%dm_clears_shadow_crypt%
%dm_best_time_shadow_crypt%
%dm_best_time_ms_shadow_crypt%每日进入限制
| 占位符 | 说明 | 默认值 |
|---|---|---|
%dm_daily_limit_<副本ID>% | 该副本配置的每日进入上限 | 0 |
%dm_daily_count_<副本ID>% | 当前玩家今天已进入次数 | 0 |
%dm_daily_remaining_<副本ID>% | 当前玩家今天剩余次数 | 0 |
示例:
text
%dm_daily_limit_shadow_crypt%
%dm_daily_count_shadow_crypt%
%dm_daily_remaining_shadow_crypt%这组占位符按副本 ID 查询。
- 副本 ID 写错或副本不存在时,返回
0 - 副本没开每日限制时,
%dm_daily_limit_<副本ID>%返回0 - 副本没开每日限制时,
%dm_daily_remaining_<副本ID>%返回-1 daily_count和daily_remaining都是按当前玩家单独统计的
这组占位符更适合放在菜单、计分板、玩家信息面板这类带玩家上下文的地方。像全服广播、纯服务端轮播这类没有玩家对象的场景,DM 的 PAPI 占位符本身就不会正常返回玩家数据。
排行榜
按名次查询:
text
%dm_lb_name_1_shadow_crypt%
%dm_lb_time_1_shadow_crypt%
%dm_lb_time_ms_1_shadow_crypt%
%dm_lb_date_1_shadow_crypt%支持的名次查询类型:
nametimetime_msdate
查询当前玩家和榜单总览:
text
%dm_lb_rank_shadow_crypt%
%dm_lb_my_time_shadow_crypt%
%dm_lb_my_time_ms_shadow_crypt%
%dm_lb_my_clears_shadow_crypt%
%dm_lb_size_shadow_crypt%
%dm_lb_best_shadow_crypt%
%dm_lb_best_ms_shadow_crypt%支持的总览类型:
rankmy_timemy_time_msmy_clearssizebestbest_ms
已注册但不建议拿来做核心展示的键
下面这些键在当前版本里虽然已经注册进了 PAPI 扩展,但源码里没有看到稳定的持续刷新流程。服上如果长期只显示默认值,不代表你写错了。
| 占位符 | 当前情况 | 默认值 |
|---|---|---|
%dm_dungeon_stage_name% | 已注册,未看到稳定刷新 | 无 |
%dm_dungeon_zone% | 已注册,未看到稳定刷新 | 无 |
%dm_alive_mobs% | 已注册,未看到稳定刷新 | 0 |
%dm_deaths% | 已注册,未看到稳定刷新 | 0 |
这几项更适合先在自己服里实测,再决定要不要挂进正式界面。
使用时的区分
- 在外部插件里展示 DM 数据,用
%dm_*% - 在 DM 自己的脚本里读取任意 PAPI 结果,用
变量.PAPI("%player_name%")
这两套写法不要混着抄。
常见展示示例
计分板:
text
副本: %dm_dungeon_name%
阶段: %dm_dungeon_stage%
时间: %dm_dungeon_time_format%
人数: %dm_party_size%历史信息:
text
通关次数: %dm_clears_shadow_crypt%
个人最佳: %dm_best_time_shadow_crypt%
个人排名: %dm_lb_rank_shadow_crypt%
今日次数: %dm_daily_count_shadow_crypt%
今日剩余: %dm_daily_remaining_shadow_crypt%排行榜全息:
text
第一名: %dm_lb_name_1_shadow_crypt%
最佳时间: %dm_lb_time_1_shadow_crypt%
记录日期: %dm_lb_date_1_shadow_crypt%