自定义特效物品
示例配置文件
该行配置文件位于服务端
plugins/GermPlugin/item
文件夹内详见此处 >>> 传送门
#在游戏中按 F3+H 然后鼠标放在物品上,可以看真实的物品名和ID
#索引名 无意义随便设置
default_effect_item:
#代表这是一个特效物品
type: 'effect'
# 特效可以来自服务端effect文件夹中的一个配置
# 这里填配置的索引名
effectName: 'CommonTextureEffect'
#也可以直接写一个完整的effect进来
effect:
#直接写特效配置 此处仅为示例
type: texture
width: 5.8
height: 5.8
path: 'textures/misc/logo.png'
offsetY: 0.1
pitch: 90
animations:
魂环旋转:
type: 1
delay: 0
cycle: -1
permanent: true
duration: 16666
rotateZ: 1440
#作为皮肤的一些设置 可删去 删去后将作为一个普通跟随的特效出现
skin:
#与玩家的哪个肢体绑定 可删去 默认为与整个玩家绑定
#目前支持部位有
#head 头部
#body 身体
#leftArm 左大臂
#rightArm 右大臂
#leftForeArm 左小臂
#rightForeArm 右小臂
#leftItem 左手物品
#rightItem 右手物品
#leftLeg 左大腿
#rightLeg 右大腿
#leftForeLeg 左小腿
#rightForeLeg 右小腿
bindLimb: "body"
# 特效物品图标设置
icon:
# 盔甲图标在材质包中时省略路径assets/germmod/
# 盔甲图标在萌芽缓存中省略路径GermCache/
# 允许gif
path: 'textures/misc/logo.png'
#图标在GUI中的 偏移值 设置了可以让图标移动中心位置
offsetX: 0.0
offsetY: 0.0
offsetZ: 0.0
#在GUI中缩放设置 不能小于 0
scale: 1
#在手中大小设置 不能小于 0
size: 1
#匹配的条件
matchCondition:
#匹配该模型的材质要求
#格式 物品名:子ID 或者 物品ID:子ID
type: 'DIAMOND_CHESTPLATE'
# ! 颜色符号请使用§,而不是&
# 当描述或者武器名字含有下方字符串时会替换到设置的模型
match: "测试effect效果"
# ! 颜色符号请使用§,而不是&
# 当装备的名字等于该值的时候匹配模型
name: "测试effect效果"
# 当装备的某行描述等于设定的值时匹配模型
# 格式为:行号<->值 (行号从0开始为第一行)
lore:
- "3<->测试effect效果"
# 当装备的某个nbt等于设定的值时匹配
nbt:
- "nbtKey1<->测试effect效果"
#匹配时需要满足的表达式 更多表达式请看wiki https://wiki.germmc.com/gui/arithmetic.html
expressions:
- "%player_level% > -1"
- "str(%player_name%,%player_name%)"
自定义特效物品演示教程
第一步,配置特效
首先,你需要在特效模块内的编写一个你想要的特效 >>>传送门
在这里,我们以下面的配置为例
Fire_Orb:
#贴图
type: texture
#跟随玩家的yaw 默认为false
followYaw: false
#跟随玩家的pitch 默认为false 当followYaw和followPitch都打开的时候该effect会永远面向玩家
followPitch: false
#宽度 1大约为一格子
width: "1"
#高度
height: "1"
#贴图地址 (省略路径assets/germmod)
path: 'effect/fire_orb.png'
#持续时间 超时后自动删除 单位毫秒 (不写或者填写-1为不限制)
duration: -1
#向X轴的偏移量
offsetX: "-1"
#向Y轴的偏移量
offsetY: "2"
#向Z轴的偏移量
offsetZ: "0"
#pitch 可以理解为史蒂夫上下看
pitch: "0"
#yaw 可以理解为史蒂夫左右看
yaw: "0"
#roll 原版中并没有这一种视角方式 可以想象的理解为史蒂夫歪着头看
roll: "0"
第二步,配置特效物品文件的读取
在服务端plugins/GermPlugin/item
文件夹内按照上方的配置文件进行配置,然后保存配置文件
第三步,添加特效物品槽位
首先,在你想要读取特效物品的自定义GUI界面内,按照下面格式添加特效物品扩展槽位,
#扩展槽位组件
#该索引名(下面第一行的名称)仅为示例,请在正式配置时进行修改,每个组件的索引名均不可重复!!
effect_slot:
type: slot
# 组件开关 (false后关闭任何效果、显示、互动、功能;删除整行后默认为不显示)
# 如果将 enable 后面的 true或false 设置为某个条件 将自动匹配条件开关
# 例如填写 enable: "%player_health% = 100" 当玩家的血量到达100时才会开启该组件
enable: true
#悬浮时候显示的tooltip就跟原版悬浮到道具时显示的lore界面一样(删除整行后默认为不显示)
tooltip:
- '&c我是悬浮的时候被显示出来的那个'
#槽位的宽和高(可以使用 w h) 例如:size: 'w*0.1' 或 size: 'h*0.1' 或 size: ' w / h * 0.1'
size: "36"
#是否是禁止所有状态(不可点击,无声音,无悬浮变化)
invalid: true
#是否允许与该槽位交互(可以点击,有声音,但是无法进行正常交互操作)
interact: true
#为防止槽位的物品混乱 每一个界面内扩展槽位的identity后填写的内容均不可重复!!!
#(如果您是开发者 推荐使用 处理该槽位的插件全名小写_用来逻辑判断的字符)
#建议前缀默认设置为germplugin_effect_
identity: "germplugin_effect_1"
#当槽位内有物品时显示的图片 填gif就可以显示为gif
#建议此处图片为一张全透明图片
#图片的本地材质路径地址格式为 local<->本地路径 或者直接输入 本地路径
#图片的网络材质链接地址格式为 url<->网络链接 例如:url<->https://s1.ax1x.com/2020/06/19/NnqzVK.png
fillPath: 'local<->textures/gui/slot.png'
#当槽位为空的时候显示的图片 填gif就可以显示为gif
#图片可以是透明图片或者槽位背景图 例如原版头盔槽位的头盔标志
#图片的本地材质路径地址格式为 local<->本地路径 或者直接输入 本地路径
#图片的网络材质链接地址格式为 url<->网络链接 例如:url<->https://s1.ax1x.com/2020/06/19/NnqzVK.png
emptyPath: 'local<->textures/gui/slot.png'
hoverSound: 'minecraft:ui.button.click'
clickSound: 'minecraft:ui.button.click'
locationX: "w*0.7"
locationY: "h*0.5"
locationZ: "0"
第四步,注册特效物品槽位identity
设置完identity后,将第三步设置的特效物品槽位的identity填入服务端内的SlotConfig.yml中对应的配置内,对应的配置行如下 😅
#对于槽位组件的特效物品配置
#在下面配置过的identity的槽位内放入特效物品后 才会在玩家身上显示特效
effectSlotSets:
- "germplugin_effect_1"
- "germplugin_effect_2"
第五步,游戏内获取特效物品
此时,进入游戏内,手持任意一个物品,这里我们以 原版物品: 箭 作为例子
接着,我们为这个物品添加lore,这里我们以本节开头的lore 火焰宝珠 为对应的判定lore,
然后,一个特效物品就出现在了你的手上!!
第六步,对应槽位放入特效物品
这里,我们将时装槽位左边那个扩展槽位的identity改为germplugin_effect_1,
并将我们刚刚制作好的特效物品放入槽位内!
噔噔噔!!!尽情欣赏你的特效吧!!!