宠物文件
每种宠物写在 plugins/CloudPet/pets/ 里的一个 .yml,改完执行 /cp admin reload(召唤中的宠物会马上换成新的设置)。
- 可以有子文件夹、可以用中文文件名。
- 文件名就是宠物编号(
小狐狸.yml→ 编号小狐狸)。两个文件同名时,在其中一个写id: 另一个编号。编号不能有空格、逗号、分号。 - 一个文件也可以写好几只:顶层没有
entity/name/model/icon时,每个顶层段落算一只(段落名称就是编号)。 - 写错的地方开服和重载时在后台逐条说明,并先用默认值继续。
数值的三种写法
标了「数值」的键,都可以用下面三种方式写:
| 写法 | 例子 | 说明 |
|---|---|---|
| 数字 | health: 20 | 每一级都一样 |
| 算式 | health: '20 + level * 2' | 变量 level 是宠物目前的等级;记得加引号 |
| 每级一个值 | health: [20, 24, 28, 35] | 第 1 个是 1 级;超过清单长度用最后一个 |
算式支持 + - * / % ^、括号,以及 min、max、floor、ceil、round、sqrt、abs、log。例如 'min(40, level)'、'80 + 30 * (level - 1) ^ 1.3'、'floor(level / 10)'。
物品图示的写法
icon、皮肤的 icon、signal-stick、foods.yml 的 item 都用同一种写法:
icon: BONE # 材质
icon: PAPER:10001 # 材质:custom_model_data
icon: ce:命名空间:编号 # CraftEngine 物品
icon: ia:命名空间:编号 # ItemsAdder 物品
icon: # 分段写
material: PAPER
model-data: 10001 # 也可以写 custom-model-data
item-model: 'myserver:fox_icon' # 1.21.4+ 的 item_model
name: '&6小狐狸'
lore:
- '&7说明'
glow: true
texture: 'eyJ0ZXh0dXJl...' # 玩家头颅材质(Base64),写了材质默认是 PLAYER_HEAD
item: 'ce:命名空间:编号' # 其他插件的物品
基本信息
| 键 | 默认 | 说明 |
|---|---|---|
id | 文件名 | 宠物编号 |
name | 编号 | 显示名称(支持颜色) |
description | 空 | 菜单上的说明(清单) |
category | 空 | 放进哪个分类(categories.yml 的键),见 分类 |
sort | 0 | 同一分类里的顺序,越小越前面 |
icon | BONE | 菜单图示,写法见 上面 |
permission | cloudpet.pet.<编号> | 有这个权限就自动拥有(config.yml 的 pets.permission-unlock)。写 '' = 不靠权限取得 |
price | 0 | 用金币购买的价格,0 = 不能买(需要 Vault + 经济插件) |
buy-permission | 空 | 购买需要的权限 |
hidden | false | true = 还没拥有时不在菜单显示(进化后的形态、活动宠物) |
身体 entity
entity:
type: FOX # 原版生物
mythicmobs: '' # MythicMobs 怪物编号(写了就用它当身体,type 不使用)
mythicmobs-level: 1
baby: false
scale: 1.0
silent: true
invisible: false
glow: ''
looks:
fox-type: RED
| 键 | 默认 | 说明 |
|---|---|---|
type | WOLF | 原版生物名称,要用会动的生物(WOLF、FOX、PARROT、HORSE、CAT……);末影龙与凋灵不能当宠物 |
mythicmobs | 空 | MythicMobs 怪物编号(大小写要一样),见 模型与 MythicMobs 身体 |
mythicmobs-level | 1 | 生成 MythicMobs 怪物的等级 |
baby | false | 幼年(会长大的生物;年龄锁住,不会长大) |
scale | 1.0 | 身体大小(1.20.5+),会影响碰撞箱与骑乘高度 |
silent | true | 不发出叫声 |
invisible | 不写 | true = 身体隐身(只想显示名牌或粒子时用);有模型时身体由模型插件自动隐藏,不用写 |
glow | 空 | 写了任何值(例如 true)就会发光 |
looks | 空 | 原版外型:颜色、品种……,见下面 |
原版外型 looks
looks 的每个键会对应到那种生物的 set 方法:把键里的 - / _ 去掉、每段开头改大写、前面加 set。值会自动换成方法要的类型(数字、true / false、枚举名称或原版注册名)。
| 写法 | 对应的方法 | 适用 |
|---|---|---|
fox-type: SNOW | setFoxType | 狐狸 |
collar-color: LIGHT_BLUE | setCollarColor | 狼、猫 |
variant: BLUE | setVariant | 鹦鹉、美西螈等有 variant 的生物 |
color: WHITE / style: WHITE_DOTS | setColor / setStyle | 马 |
cat-type: BLACK | setCatType | 猫 |
color: RED | setColor | 羊 |
这种生物没有那个方法(或值不对)时会略过;开启 debug: true 可以在后台看到是哪一项没生效。
模型 model
model:
id: fox_model
engine: auto # auto / cloudmodel / modelengine
scale: 1.0
# 也可以只写一行:model: fox_model
| 键 | 默认 | 说明 |
|---|---|---|
model.id | 空 | 云模型 CloudModel 或 ModelEngine 的模型编号;有写就把身体藏起来改显示模型 |
model.engine | auto | auto = 先找云模型、再找 ModelEngine;也可以指定 cloudmodel / modelengine |
model.scale | 1.0 | 模型大小 |
找不到模型时先用原版外型显示,后台会提示。见 模型与 MythicMobs 身体。
名牌 nametag
| 键 | 默认 | 说明 |
|---|---|---|
nametag.enabled | true | 显示名牌 |
nametag.text | 空 = 用 config.yml 的 pets.nametag | 可用 {name} 名字、{level} 等级、{level_name} 等级名称、{owner} 主人、{health}、{max_health} |
nametag.height | 0 | 在 config.yml 的 pets.nametag-height 之上再往上加几格(大模型调高) |
移动 movement
| 键 | 默认 | 说明 |
|---|---|---|
movement.speed | 1.2 | 跟随速度(原版寻路速度的倍数) |
movement.follow-distance | 3 | 超过这个距离开始跟上(最小 1.5) |
movement.teleport-distance | 24 | 超过这个距离直接传送到主人身边(至少比 follow-distance 多 4);卡住 3 秒也会传送 |
movement.flying | false | true = 在主人肩膀旁边飘(鹦鹉、蜜蜂、悦灵) |
movement.fly-height | 1.6 | 飞行宠物离主人脚下多高 |
movement.idle-sit | true | 主人站着不动一阵子就坐下(会坐的生物:狼、猫、狐狸……) |
骑乘 mount
| 键 | 默认 | 说明 |
|---|---|---|
mount.enabled | 写了 mount 段就是 true | 能不能骑 |
mount.type | walk | walk 地面 / fly 飞行 |
mount.speed | 0.32 | 骑乘速度(数值) |
mount.jump | 0.55 | 地面坐骑的跳跃力 |
mount.permission | 空 | 骑这只需要的额外权限 |
mount.auto | false | 召唤后自动骑上去 |
mount.despawn-on-dismount | false | 下坐骑时顺便收回宠物 |
mount.controller | 空 | ModelEngine 模型的坐骑控制器(例如 walking、flying、walking_force),空 = 依 type |
详细见 骑乘。
数值 stats
全部是数值,可以随等级成长。
| 键 | 默认 | 说明 |
|---|---|---|
stats.health | 20 | 最大血量 |
stats.damage | 3 | 每次攻击的伤害 |
stats.attack-speed | 1 | 每秒攻击几次 |
stats.attack-range | 2.6 | 攻击距离(格) |
stats.regen | 0.5 | 每秒回复的血量 |
stats.defense | 0 | 减伤百分比(0–95) |
stats.power | 1 | 威力:施放 MythicMobs 技能时的 power,也是 <cloudpet.power> 变量 |
等级 levels 与进化 evolutions
| 键 | 默认 | 说明 |
|---|---|---|
levels.max | 30 | 最高等级 |
levels.exp | '100 + 40 * (level - 1) ^ 1.4' | 从这一级升到下一级要的经验(数值) |
levels.names | 空 | 每一级的名称(第 1 个 = 1 级),没写的等级显示 Lv.N |
levels.messages | 空 | 升到某一级的消息,title: / actionbar: / chat: 开头 |
levels.rewards | 空 | 升到某一级执行的指令 |
evolutions | 空 | 进化清单:to、level、keep-level、keep-name、money、items、auto、delay |
详细见 等级与进化。
战斗 combat
| 键 | 默认 | 说明 |
|---|---|---|
combat.enabled | true | 会不会打架 |
combat.chase-range | 16 | 目标离主人超过这个距离就不追 |
combat.skills | 空 | MythicMobs 技能:skill、trigger、cooldown、chance、target |
详细见 战斗与技能。