- ◆ 游戏版本
- 1.21.1
- ◆ 服务端核心
- Arclight
- ◆ 模组加载器
- Fabric
- NeoForge
QueNPC —— 方可梦训练师|虚拟NPC|可对战/双打|原生对话框
给你的方可梦服务器添加NPC!
QueNPC(鹊之虚拟 NPC) 是面向 Cobblemon 的免费 NPC 插件。
插件有什么功能?
NPC 不是实体
NPC 完全由发给客户端的数据包构成,不进世界的实体列表。
- 不参与 tick,不算碰撞,不占实体计数
- 不写进区块,存档不会因此变大
- 不出现在 Tab 列表和
/list里 - 同一个 NPC 可以被很多人同时挑战
训练师允许太晶化
队伍里写上太晶属性,再打开开关:
/qnpc battle 石英馆主 team add garchomp level=50 tera_type=dragon
/qnpc battle 石英馆主 gimmick add tera
图形编辑器
/qnpc menu 打开,点「新建 NPC」,一路点下去。
名字、皮肤、姿势、发光颜色、体型、装备、动作、可见条件、队伍、AI 强度、奖励、特殊机制都在界面里,改完立刻生效。
可见条件
每个 NPC 可以配可见条件,全部满足才对那个玩家显示。
visible-if:
- "caught-count >= 50" # 图鉴收满 50 只才出现
- "defeated 石英馆主" # 打赢上一个馆主才出现
- "not-defeated 冠军" # 打赢冠军之后他就消失
- "time night" # 只在夜里出没
| 条件 | 说明 |
|---|---|
permission / not-permission |
有 / 没有某个权限 |
world <世界名> |
在指定世界 |
gamemode <模式> |
处于指定游戏模式 |
time day|night |
游戏内白天 / 夜晚 |
chance <0-100> |
按百分比随机 |
has-item <物品ID> [数量] |
背包里有足够数量 |
party-has <宝可梦> |
队伍里有这只 |
party-size <比较> <数量> |
队伍规模比较 |
caught / seen <宝可梦> |
图鉴已捕获 / 见过 |
caught-count <比较> <数量> |
图鉴捕获总数比较 |
defeated / not-defeated <编号> |
战胜过 / 没战胜过某个 NPC |
placeholder <左> <比较> <右> |
PlaceholderAPI 变量比较 |
比较符支持 == != > >= < <=。判定是逐玩家的,条件一满足下一轮刷新就出现,不用重载。
对话走原生界面
对话用 Cobblemon 自带的对话框,有 NPC 头像和选项按钮,和原版 NPC 观感一致。玩家形象的 NPC 用自己的皮肤当头像,宝可梦形象的按种族渲染。
文字逐个打出来,点一下立刻全显示,再点才翻页。不想要这个效果可以在 config.yml 里关掉。
start: 开场
nodes:
开场:
lines:
- "欢迎来到石英道馆,%player%。"
goto: 问话
问话:
options:
- text: "我要挑战!"
goto: 应战
- text: "听说你私藏了好东西……"
goto: 密室
visible-if:
- "defeated 石英馆主" # 赢过之后才看得到
应战:
lines:
- "别留手了。"
actions:
- "delay 20"
- "battle"
选项的 visible-if 和 NPC 的可见条件是同一套写法,每次展示都重新判定。
两种外观
玩家皮肤:填一个玩家名。
宝可梦:直接写属性串,闪光、地区形态、等级都支持。
/qnpc skin 石英馆主 pokemon pikachu shiny=true
两种都能配姿势(站 / 潜行 / 睡 / 趴 / 滑翔)、发光描边与颜色、体型倍率。
对战设定
- 队伍池:一个 NPC 可以配好几套队伍,每次挑战随机挑一套
- 等级跟随:固定等级、跟随挑战者最高等级、跟随平均等级
- 不掉血:默认用挑战者队伍的副本对战,真实队伍不掉血不消耗道具,输了也不用跑医院
- 单打 / 双打:
set doubles true切双打 - 冷却与胜场:每个 NPC 单独记,跨重启保留
- 三档奖励:胜利 / 失败 / 首胜,首胜那档一位玩家只给一次
- 战斗音乐:可以给每个 NPC 指定音效 ID
怎么用
插件装上后不带任何 NPC,全靠你自己建。第一次用推荐走图形菜单。
用菜单建第一个 NPC(推荐)
- 站到你想放 NPC 的地方,打
/qnpc menu,点「新建 NPC」,在聊天栏输入一个编号(比如石英馆主)。NPC 就出现在你脚下了。 - 点进它的编辑面板,逐项点:
- 皮肤:填个玩家名,或改成宝可梦外观
- 名字:头顶显示的文字,支持颜色和
\n换行 - 右键动作 → 添加 →
dialogue 示例对话,把插件自带的那段对话挂上 - 对战:加几只宝可梦、开启对战,按需勾上太晶化和奖励
- 每一步改完立刻生效,不用重载。位置想调就点「位置」,左键把 NPC 挪到你身边。
一个能对话、能开战的 NPC 就成了。嫌点菜单慢,下面是同一件事的纯指令版。
纯指令版
习惯打指令的话,下面是做一个道馆馆主的完整流程。
一、创建
站到你想放 NPC 的位置:
/qnpc create 石英馆主
/qnpc name 石英馆主 &6&l石英道馆馆主\n&7右键挑战
/qnpc skin 石英馆主 player Notch
名字用 \n 换行,第一行显示在最上面。
二、配队伍
/qnpc battle 石英馆主 team add garchomp level=50 tera_type=dragon
/qnpc battle 石英馆主 team add charizard level=50
/qnpc battle 石英馆主 team add metagross level=50
三、开启战斗,允许太晶化
/qnpc battle 石英馆主 enable
/qnpc battle 石英馆主 set skill 4
/qnpc battle 石英馆主 gimmick add tera
skill 是 AI 强度,0 到 5。
四、添加奖励
/qnpc battle 石英馆主 reward win add message &a干得漂亮!
/qnpc battle 石英馆主 reward first-win add command eco give %player% 5000
first-win 只在第一次赢时执行,适合发徽章。它和 win 是叠加的,两个奖励都会执行。
五、添加对话
/qnpc action 石英馆主 right add dialogue 示例对话
/qnpc battle 石英馆主 test
插件自带一份示例对话,改一改就能用。test 不吃冷却。
动作
右键动作、左键动作、对战奖励、对话节点用的是同一套写法,按顺序执行。
| 写法 | 说明 |
|---|---|
message <文本> |
发聊天消息 |
actionbar <文本> |
发物品栏上方提示 |
title <主标题>|<副标题> |
发标题 |
command <指令> |
以控制台身份执行 |
player-command <指令> |
以玩家身份执行 |
sound <音效> [音量] [音调] |
播放音效 |
give <物品ID> [数量] |
给予物品,背包满了掉在脚下 |
teleport <x> <y> <z> [世界] |
传送玩家 |
heal |
治疗玩家队伍 |
battle [NPC 编号] |
发起对战,省略编号就是挑战当前这位 |
dialogue <对话编号> |
打开一段对话 |
close |
结束当前对话 |
delay <刻> |
等若干刻再继续执行剩下的动作 |
文本里能用 %player%、%npc%,装了 PlaceholderAPI 的话 PAPI 占位符也能用。
颜色统一用 &:&a 传统色码、&#ffaa00 十六进制色、&l &o &n &m &k 样式、&r 重置。
配置文件
plugins/QueNPC/
├── config.yml # 字段说明写在注释里
├── messages.yml # 玩家能看到的所有文本,随便改
├── npcs/ # 每个 NPC 一个文件,文件名即编号
├── dialogues/ # 每段对话一个文件,文件名即编号
├── skins.yml # 皮肤材质缓存
└── battle-data.yml # 挑战记录
常用命令与权限
所有指令需要 quenpc.admin,默认仅 OP。别名 /qnpc。右键 NPC、对话、对战不需要任何权限。
| 命令 | 用途 |
|---|---|
/qnpc menu |
打开图形编辑器(推荐) |
/qnpc create <编号> |
在你脚下创建 |
/qnpc remove <编号> |
删除 |
/qnpc clone <编号> <新编号> |
复制一个到你脚下,全部设定带走 |
/qnpc list / /qnpc info <编号> |
列表 / 查看全部设定 |
/qnpc tp <编号> / /qnpc move <编号> |
传送过去 / 把它挪到你这里 |
/qnpc name <编号> <文本> |
头顶名称,\n 换行,填 - 去掉 |
/qnpc skin <编号> player|pokemon <内容> |
换外观 |
/qnpc set <编号> <键> <值> |
姿势、发光、体型、可见距离等 |
/qnpc action <编号> right|left add|clear|list [动作] |
交互动作 |
/qnpc condition <编号> add|clear|list [条件] |
可见条件 |
/qnpc battle <编号> ... |
队伍、AI、奖励、特殊机制、试打 |
/qnpc reload |
重载配置、消息与对话 |
PAPI变量
| 占位符 | 说明 |
|---|---|
%quenpc_wins_<编号>% |
对该 NPC 的累计胜场 |
%quenpc_defeated_<编号>% |
是否战胜过,输出「是 / 否」 |
%quenpc_cooldown_<编号>% |
距离下次可挑战还剩多少秒 |
%quenpc_cooldown_fmt_<编号>% |
同上,输出「3 分 20 秒」 |
%quenpc_total_wins% |
对所有 NPC 的胜场合计 |
%quenpc_count% |
当前载入的 NPC 数量 |
常见问题
NPC 会被玩家打掉、被清怪指令清掉吗?
不会。它不在实体列表里,/kill @e 找不到它。
宝可梦外观的 NPC 能被捕捉吗?
不能。它不是真的宝可梦实体,扔球扔不到,也不计入生成上限。
反馈
遇到问题欢迎在帖子下反馈:服务端类型与版本、加载器、Cobblemon 版本、插件版本、复现步骤和相关报错日志。NPC 相关的问题可以附上对应的 npcs/<编号>.yml。
推荐加入 QQ 群直接反馈,论坛消息不一定能看到。