- ◆ 支持核心
- Arclight
- ◆ 插件前置
- Cobblemon PlaceholderAPI
- ◆ 游戏版本
- 1.21.1
介绍
CobbleVirtualNPC 是一个 Minecraft 插件项目,旨在创建和管理虚拟 NPC 角色,提供与玩家的宝可梦对战功能,可高度自定义玩家的基础设置、条款规则、条件限制、冷却时间等,可高度自定义训练师宝可梦队伍 AI强度!
能无限对打哦 如(玩家队伍)6只宝可梦 vs (训练家)20只宝可梦
懒得写了 看截图吧

视频演示
https://www.bilibili.com/video/BV1soHGzEEwE/?spm_id_from=333.1387.homepage.video_card.click
游戏截图

使用rctAi的效果


作者很听劝!遇到问题尽管说!
注意:
CobbleVirtualNPC 是一个 Minecraft 插件项目,旨在创建和管理虚拟 NPC 角色,提供与玩家的宝可梦对战功能,可高度自定义玩家的基础设置、条款规则、条件限制、冷却时间等,可高度自定义训练师宝可梦队伍 AI强度!
能无限对打哦 如(玩家队伍)6只宝可梦 vs (训练家)20只宝可梦
指令列表
| 指令 | 权限要求 | 含义 |
|---|---|---|
| /cvnpc help | cobblevirtualnpc.help | 帮助指令 |
| /cvnpc startbattle <npc> [玩家id] | cobblevirtualnpc.startbattle | 与某个npc配置进行对战 |
| /cvnpc reload | cobblevirtualnpc.reload | 重载配置文件 |

config 主配置
YAML:
# 日志输出
debug: false
# 数据库配置
database:
# 数据库类型: sqlite 或 mysql
type: sqlite
# MySQL数据库配置 (仅当type为mysql时生效)
mysql:
host: localhost
port: 3306
database: CobbleVirtualNpc
username: root
password: password
# 连接参数
properties: "?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai"
# 处于该插件战斗时 禁止使用指令
DisableCommands:
# 是否开启禁止使用指令
# true为开启 false为关闭
enabled: true
# 白名单指令
whitelist: []
tip: "嗯?!想利用指令卡bug?禁止使用的指令!"
# 玩家赢得比赛执行的指令
# command 玩家执行
# op 玩家以 op 执行
# console 玩家以控制台执行
# broadcast 广播信息
# 变量:
# '{p}' 玩家名称
# '{trainer_name}' 训练家名称
playWinCommand:
- '[broadcast]&7玩家 &f{p} &7赢得了比赛!'
- '[broadcast]&7玩家 &f{p} &7击败了训练家 &f{trainer_name}'
# 玩家输掉比赛执行的指令
# command 玩家执行
# op 玩家以 op 执行
# console 玩家以控制台执行
# broadcast 广播信息
# 变量:
# '{p}' 玩家名称
# '{trainer_name}' 训练家名称
playLoseCommand:
- '[broadcast]&7玩家 &f{p} &7输掉了比赛!'
- '[broadcast]&7玩家 &f{p} &7无力击败了训练家 &f{trainer_name}'
# 超进化条款禁止携带的超级进化石
superEvolveStone:
- "mega_showdown:mega_stone"
- "mega_showdown:abomasite"
- "mega_showdown:absolite"
- "mega_showdown:aerodactylite"
- "mega_showdown:aggronite"
- "mega_showdown:alakazite"
- "mega_showdown:altarianite"
- "mega_showdown:ampharosite"
- "mega_showdown:audinite"
- "mega_showdown:banettite"
- "mega_showdown:beedrillite"
- "mega_showdown:blastoisinite"
- "mega_showdown:blazikenite"
- "mega_showdown:cameruptite"
- "mega_showdown:charizardite_x"
- "mega_showdown:charizardite_y"
- "mega_showdown:diancite"
- "mega_showdown:galladite"
- "mega_showdown:garchompite"
- "mega_showdown:gardevoirite"
- "mega_showdown:gengarite"
- "mega_showdown:glalitite"
- "mega_showdown:gyaradosite"
- "mega_showdown:heracronite"
- "mega_showdown:houndoominite"
- "mega_showdown:kangaskhanite"
- "mega_showdown:latiasite"
- "mega_showdown:latiosite"
- "mega_showdown:lopunnite"
- "mega_showdown:lucarionite"
- "mega_showdown:manectite"
- "mega_showdown:mawilite"
- "mega_showdown:medichamite"
- "mega_showdown:metagrossite"
- "mega_showdown:mewtwonite_x"
- "mega_showdown:mewtwonite_y"
- "mega_showdown:pidgeotite"
- "mega_showdown:pinsirite"
- "mega_showdown:sablenite"
- "mega_showdown:salamencite"
- "mega_showdown:scizorite"
- "mega_showdown:sceptilite"
- "mega_showdown:sharpedonite"
- "mega_showdown:slowbronite"
- "mega_showdown:steelixite"
- "mega_showdown:swampertite"
- "mega_showdown:tyranitarite"
- "mega_showdown:venusaurite"
npc/example配置
YAML:
# 战斗配置
battle:
# AI的战斗水平
aiLevel: 0
# 使用 RCT的ai
# 如果使用该AI 则上面的配置无效
rctAi: false
# 是否恢复宝可梦血量
healPokemon: false
# 回合数量限制 达到回合数强制结束
# -1则不受限制
roundLimit: -1
# 回合内多久内没有动作视为挂机, 如果超过这个时间则强制结束战斗
# -1则不受限制
timeOut: -1
# 挑战次数 -1表示不限制 无论是输了和赢了 只要是发起战斗就都算挑战次数
challengeCount: -1
# 调整玩家对战时宝可梦等级 -1表示不调整
# 注意此调整只会调整对战时玩家宝可梦等级
adjustPlayerLevel: -1
# 调整NPC对战时宝可梦等级 -1表示不调整
# 注意此调整只会调整对战时NPC宝可梦等级
adjustNpcLevel: -1
# n只神规则: 只能携带n只传奇宝可梦 -1表示不限制
Legend: -1
# n只究极异兽规则: 只能携带n只究极异兽宝可梦 -1表示不限制
Monster: -1
# n只幻兽规则: 只能携带n只幻兽宝可梦 -1表示不限制
Phantom: -1
# 条款
clause:
# 是否开启条款
enable: true
# 条款
# 一站到底规则:禁止逃跑
forfeitClause: false
# 包包条款:玩家不可以在战斗时使用背包中的道具。
bagClause: false
# 队伍顺序条款: 玩家不可以在战斗时切换宝可梦。
teamOrderClause: false
# 超级进化条款: 禁止携带超级进化石 可以在config里自由删减添加
superEvolutionClause: false
# 神兽条款: 禁止使用传奇宝可梦
legendaryClause: false
# 异兽条款: 禁止使用究极异兽宝可梦
superEvilClause: false
# 幻兽条款: 禁止使用幻兽宝可梦
phantomClause: false
# 种类条款: 队伍中不可存在重复的宝可梦
speciesClause: false
# 击败npc前置条件
frontNpc:
list:
- 'example'
tip: "需要击败{front_npc}NPC,才能进行挑战"
# 玩家配置
player:
# 条件
condition:
list:
# 支持 placeholderapi papi变量
# 内部变量
# {teamNumber} - 玩家队伍数量
# {pokemon_party_slot_1_name} - 玩家宝可梦队伍1号位的宝可梦名称
# {pokemon_party_slot_2_name} - 玩家宝可梦队伍2号位的宝可梦名称
# {pokemon_party_slot_3_name} - 玩家宝可梦队伍3号位的宝可梦名称
# {pokemon_party_slot_4_name} - 玩家宝可梦队伍4号位的宝可梦名称
# {pokemon_party_slot_5_name} - 玩家宝可梦队伍5号位的宝可梦名称
# {pokemon_party_slot_1_localized_name} - 玩家宝可梦队伍1号位的宝可梦本地化名称
# {pokemon_party_slot_2_localized_name} - 玩家宝可梦队伍2号位的宝可梦本地化名称
# {pokemon_party_slot_3_localized_name} - 玩家宝可梦队伍3号位的宝可梦本地化名称
# {pokemon_party_slot_4_localized_name} - 玩家宝可梦队伍4号位的宝可梦本地化名称
# {pokemon_party_slot_5_localized_name} - 玩家宝可梦队伍5号位的宝可梦本地化名称
# {pokemon_party_slot_6_localized_name} - 玩家宝可梦队伍6号位的宝可梦本地化名称
- '{teamNumber} >= 1'
# 不符合条件的提示
tip: "不符合条件!不能进行战斗!"
# 对战冷却
cooldown:
# 冷却时间(秒) -1 表示无限制
time: -1
# 冷却提示
# 变量:
# {time} 显示剩余时间
tip: "对战冷却中!请等待{time}秒后再对战!"
# 禁止的宝可梦配置
# 玩家队伍拥有禁止的宝可梦或者相关属性的宝可梦
# 则禁止使用/cvnpc startbattle <配置文件名称>
banPokemon:
# 有禁止的宝可梦以及宝可梦的相关属性
# 使用/cvnpc startbattle <配置文件名称>的提示
tip: "您队伍拥有禁止的宝可梦或者相关属性的宝可梦!不可对战!"
# 禁止的宝可梦以及宝可梦的相关属性
list:
# 能无限创建禁止宝可梦的配置
# 该配置跟原版指令类似
# 能写原版指令的所有标签包括模组增加的标签
# 如何了解自定义宝可梦的标签
# 可以使用模组原版/pokemonspawn或者/givepokemon
# 然后tab 就可以查看所有宝可梦标签
# 这些标签都可以填写在下面配置中
# 自由度超乎你的想象
# 禁用皮卡丘 等级100 闪光
- "pikachu level=100 s"
# 禁用超梦 所有属性 形态 携带物等
- "mewtwo"
# 禁用所有100级的宝可梦
- "level=100"
# 禁用所有携带物为dragon_fang且闪光宝可梦
- "s helditem=cobblemon:dragon_fang"
# 禁止技能所有为恶意计划、多变光束、大地之力的宝可梦
- "moves=nastyplot,ficklebeam,earthpowe"
# 禁止恶意计划技能
- "moves=nastyplot"
# 禁止多变光束技能
- "moves=ficklebeam"
# 禁止能量吸收技能
- "moves=gigafrain"
# 禁止大地之力技能
- "moves=earthpowe"
# 禁止指定玩家队伍里拥有数量相同的宝可梦或者相同数量属性的宝可梦
banSame:
# 禁止的提示
tip: "您队伍有相同数量的宝可梦或者相同数量属性的宝可梦!不可对战!"
list:
# 能无限创建禁止指定玩家队伍里拥有数量相同的宝可梦或者相同数量属性的宝可梦的配置
# 禁止两只相同的以下宝可梦或者属性的宝可梦
2:
- "pikachu level=100 s"
# 禁止三只
3:
- "mewtwo"
# 禁止五只
5:
- "s"
# 禁止玩家队伍指定几号位的宝可梦配置
banPosition:
# 禁止的提示
tip: "您队伍指定的位置有禁止的宝可梦或者相关属性的宝可梦!不可对战!"
list:
# 一共有6个位置
# 玩家宝可梦队伍1号位
# 禁止玩家队伍1号位的禁止宝可梦或者相关属性的宝可梦
1:
# 能无限创建禁止宝可梦的配置
- "mewtwo"
- "level=100"
- "s helditem=cobblemon:dragon_fang"
# 玩家宝可梦2号位
# 禁止玩家队伍2号位的禁止宝可梦或者相关属性的宝可梦
2:
- "pikachu level=100 s"
# 玩家宝可梦3号位 删除配置或不填则忽略
3: []
# 玩家宝可梦4号位 删除配置或不填则忽略
4: []
# 玩家宝可梦5号位 删除配置或不填则忽略
5: []
# 玩家宝可梦6号位 删除配置或不填则忽略
6: []
# 虚拟训练家配置
npc:
# 训练家名称
name: "虚拟人机"
# 训练家宝可梦队伍
team:
# 能无限创建宝可梦队伍配置
# 20只宝可梦都没问题 照样打!
# 该配置跟原版指令类似
# 能写原版指令的所有标签包括模组增加的标签
# 如何了解自定义宝可梦的标签
# 可以使用模组原版/pokemonspawn或者/givepokemon
# 然后tab 就可以查看所有宝可梦标签
# 这些标签都可以填写在下面配置中
# 宝可梦1号位
# 超梦 等级100 特性为全能变身 maga形态为mega_x 携带物为龙牙
- "mewtwo level=100 s ability=zerotohero mega_evolution=mega_x helditem=cobblemon:dragon_fang"
# 宝可梦2号位
# 皮卡丘 等级 闪光 其他任何属性随机
- "pikachu level=100 s"
# 宝可梦3号位
# 皮卡丘 等级100 闪光 技能为放电 打雷 光墙 十五伏特 特性为再生力
- "pikachu level=100 s moves=discharge,thunder,lightscreen,thunderbolt ability=regenerator"
# 奖励配置
reward:
# 玩家击败该训练师执行的指令
# command 玩家执行
# op 玩家以 op 执行
# console 玩家以控制台执行
# broadcast 广播信息
# tell 发送信息 仅接收者可见
# 变量:
# '{p}' 对话的玩家名称
# '{trainer_name}' 训练家名称
# 支持 placeholderapi papi变量
win:
- '[tell]&7玩家 &f{p} &7你太强了! 击败了训练家 &f{trainer_name}!'
# 玩家击败该训练师首次胜利的指令
# command 玩家执行
# op 玩家以 op 执行
# console 玩家以控制台执行
# broadcast 广播信息
# tell 发送信息 仅接收者可见
# 变量:
# '{p}' 对话的玩家名称
# '{trainer_name}' 训练家名称
# 支持 placeholderapi papi变量
firstWin:
- '[tell]&7玩家 &f{p} &7可以了! 首次击败了训练家 &f{trainer_name}!'
# 玩家输掉该训练师执行的指令
# command 玩家执行
# op 玩家以 op 执行
# console 玩家以控制台执行
# broadcast 广播信息
# tell 发送信息 仅接收者可见
# '{p}' 玩家名称
# '{trainer_name}' 训练家名称
# 支持 placeholderapi papi变量
lose:
- '[tell]&7玩家 &f{p} &7你真是菜鸟! 输给了训练家 &f{trainer_name}!'
# 玩家输掉该训练师首次失败的指令
# command 玩家执行
# op 玩家以 op 执行
# console 玩家以控制台执行
# broadcast 广播信息
# tell 发送信息 仅接收者可见
# 变量:
# '{p}' 对话的玩家名称
# '{trainer_name}' 训练家名称
# 支持 placeholderapi papi变量
firstLose:
- '[tell]&7玩家 &f{p} &7你太强了! 首次输给了训练家 &f{trainer_name}!'
# 宝可梦携带道具相关设置
pokemonItem:
# 是否开启
enable: true
# 携带学习装置道具 cobblemon:exp_share
# 携带该道具的宝可梦在进行战斗时即便不出战,也能获得经验值。
# 获得的经验值取决于出战的宝可梦获得的经验值。
# 获取的经验值相当于参加对战时的1⁄2,获取的基础点数相当于参加对战时的100%
# 若携带该道具的宝可梦在对战中被击败则无法获得。
exp_share: true
# 携带幸运蛋道具 cobblemon:lucky_egg
# 携带该道具的宝可梦击败宝可梦的前提下
# 对战结束后获得的经验值提升50%
lucky_egg: true
# 携带力量护裸道具 cobblemon:power_anklet
# 携带该道具的宝可梦击败宝可梦的前提下
# 对战结束后额外获得 8 点速度基础点数
power_anklet: true
# 携带力量束带道具 cobblemon:power_band
# 携带该道具的宝可梦击败宝可梦的前提下
# 对战结束后额外获得 8 点特防基础点数
power_band: true
# 携带力量腰带道具 cobblemon:power_belt
# 携带该道具的宝可梦击败宝可梦的前提下
# 对战结束后额外获得 8 点防御基础点数
power_belt: true
# 携带力量护腕道具 cobblemon:power_bracer
# 携带该道具的宝可梦击败宝可梦的前提下
# 对战结束后额外获得 8 点攻击基础点数
power_bracer: true
# 携带力量镜道具 cobblemon:power_lens
# 携带该道具的宝可梦击败宝可梦的前提下
# 对战结束后额外获得 8 点特攻基础点数
power_lens: true
# 携带力量负重道具 cobblemon:power_weight
# 携带该道具的宝可梦对战击败宝可梦的前提下
# 结束后额外获得 8 点 HP 基础点数
power_weight: true
# 增加努力值设置
# 无论玩家无论输掉或者击败该训练家都会增加努力值
# 前提是只有玩家上场的宝可梦才会增加努力值
# 且要击败训练家的宝可梦才能增加努力值
# 如果上场了的宝可梦且没有击杀训练家宝可梦则不增加努力值
# 只有上场了的宝可梦且击杀了训练家宝可梦才增加努力值
addEvsConfig:
# 是否启用
enable: false
# 击杀训练师的宝可梦默认增加的努力值
# 支持数学运算
# 支持papi 变量
addEvs:
# 生命
hp: 10
# 攻击
attack: 10
# 防御
defence: 5
# 特殊攻击
special_attack: 10
# 特殊防御
special_defence: 10
# 速度
speed: 1
# 自定义击杀训练师指定宝可梦增加的努力值
# 如果击杀下面指定的宝可梦,那么击杀者宝可梦则会增加下列指定的努力值
designatedPokemon:
# 击杀训练师指定宝可梦
# 可以无限添加不同的宝可梦配置
Pikachu:
hp: 10
attack: 20
defence: 6
special_attack: 2
special_defence: 1
speed: 10
# 增加经验值设置
# 无论玩家无论输掉或者击败该训练家都会增加经验值
# 前提是只有玩家上场的宝可梦才会增加经验值
# 且要击败训练家的宝可梦才能增加经验值
# 如果上场了的宝可梦且没有击杀训练家宝可梦则不增加经验值
# 只有上场了的宝可梦且击杀了训练家宝可梦才增加经验值
addExpConfig:
# 是否启用
enable: false
# 击杀训练师的宝可梦默认增加的经验值
# 支持数学运算
# 支持papi 变量
addExp: 10
# 自定义击杀训练师指定宝可梦增加的经验值
# 如果击杀下面指定的宝可梦,那么击杀者宝可梦则会增加下列指定的经验值
designatedPokemon:
# 击杀训练师指定宝可梦
# 可以无限添加不同的宝可梦配置
Pikachu: 20
language配置
YAML:
# 语言文件
prefix: "§f[§a虚拟对战§f] "
messages:
# 战斗相关消息
battle:
# 回合数量限制 {roundLimit}为设定的回合数量限制
roundLimit: "&c已超过设定的回合数{roundLimit},强制结束!"
# 回合内时间限制 {timeOut}为设定的回合内时间限制
timeOut: "&c已超过设定的回合内时间{timeOut}秒,强制结束!"
# 挑战次数限制提示 {limit}为最大挑战次数 {count}为当前已挑战次数
challengeLimit: "§c挑战次数已达上限!最多挑战{limit}次,当前已挑战{count}次!"
# n只神规则:传奇数量限制提示
legendLimit: "§cn只神规则:只能携带{limit}只传奇宝可梦,当前为{count}只!"
# n只究极异兽规则:异兽数量限制提示
monsterLimit: "§cn只究极异兽规则:只能携带{limit}只究极异兽宝可梦,当前为{count}只!"
# n只幻兽规则:幻兽数量限制提示
phantomLimit: "§cn只幻兽规则:只能携带{limit}只幻兽宝可梦,当前为{count}只!"
# 条款相关消息
clauses:
# 包包条款消息
bag_clause: "§c当前比赛开启了包包条款,禁止使用背包中的道具!"
# 一站到底规则消息
forfeit_clause: "§c当前比赛开启了一站到底规则,禁止逃跑!"
# 队形条款消息
teamOrder_clause: "§c当前比赛开启了队形条款,请勿改变队形!"
# 超进化条款消息
superEvolution_Clause: "§c当前比赛开启了超进化条款,请勿使用超进化!"
# 神兽条款消息
legendaryClause: "§c宝可梦 '{pokemon}' 违反神兽规则,禁止使用传奇宝可梦!"
# 异兽条款消息
superEvilClause: "§c宝可梦 '{pokemon}' 违反异兽规则,禁止使用究极异兽宝可梦!"
# 幻兽条款消息
phantomClause: "§c宝可梦 '{pokemon}' 违反幻兽规则,禁止使用幻兽宝可梦!"
# 种类条款消息
speciesClause: "§c宝可梦 '{pokemon}' 违反种类规则,队伍中不可存在重复的宝可梦!"
视频演示
https://www.bilibili.com/video/BV1soHGzEEwE/?spm_id_from=333.1387.homepage.video_card.click
游戏截图

使用rctAi的效果


结语
感谢使用 CobbleVirtualNpc 插件,我们持续更新更多功能。如果你有任何问题或建议,请加入官方插件交流群:966720491。作者很听劝!遇到问题尽管说!
注意: