- 版权类型
- 原创
- 插件中文名称
- 墨强化
- 插件英文名称
- MoStrengthen
- 原帖地址
- #
- 支持的核心(服务端)
- Spigot
- Paper
- 语言支持
- 中文(简体)
- 适配版本(Java)
- 1.21
- 1.20
- 1.19
- 1.18
- 1.17
- 1.16
- 1.15
- 1.14
- 1.13
- 1.12
[MD]
### 🎮 插件交流群
[/MD]
点击加入【墨系列插件交流群】
若无金粒可在群文件中下载
[MD] # MoStrengthen 墨强化 Minecraft 物品属性强化插件,支持多阶段强化、概率成败、物品破损保护、MythicMobs / NeigeItems 物品库联动。 --- ## 功能特性 - **多阶段强化配方**:每个物品可配置多个强化阶段,逐级提升属性 - **概率系统**:自定义成功率与破损率,强化失败可能损坏物品 - **保护符**:专用物品可防止强化失败时物品破损 - **属性增长公式**:支持四则运算与随机数,灵活控制数值平衡 - **新增属性**:强化成功后可为物品随机新增属性 - **新增 Lore**:强化时可动态添加/修改物品描述文本 - **独立成功/失败动作**:成功和失败分别执行不同的属性操作 - **Vault 经济支持**:金币消耗(需 Vault + 经济插件) - **PlayerPoints 支持**:点券消耗 - **MythicMobs 物品库**:`mm:物品ID` 格式获取物品 - **NeigeItems 物品库**:`ni:物品ID` 格式获取物品 - **完全可配置 GUI**:界面布局、装饰、提示语均可自定义 - **多 GUI 支持**:可配置多个 GUI 界面,通过不同命令打开 - **策略文件热重载**:`/ms reload` 即可重载所有配置 --- **前置依赖(可选)**: - Vault + 任意经济插件 → 金币消耗 - PlayerPoints → 点券消耗 - MythicMobs → 物品库联动 - NeigeItems → 物品库联动 --- ## 命令与权限 ### 命令 | 命令 | 说明 | |------|------| | `/ms` | 打开默认强化 GUI | | `/ms gui` | 打开默认强化 GUI | | `/ms <cmd>` | 打开指定命令的 GUI(匹配 gui 配置中的 `cmd` 字段) | | `/ms reload` | 重载所有配置文件 | | `/ms help` | 查看帮助信息 | 别名:`/mq`、`/mostrengthen` ### 权限 | 权限节点 | 说明 | 默认 | |----------|------|------| | `mostrengthen.use` | 使用强化命令 | 所有人 | | `mostrengthen.admin` | 重载配置等管理操作 | OP | --- ## 文件结构 ``` plugins/MoStrengthen/ ├── config.yml # 主配置(插件前缀、物品库开关、保护符等) ├── attribute/ │ └── attribute.yml # 属性类型定义(属性组、检测词、Lore 格式) ├── strategy/ │ ├── example.yml # 示例策略文件 │ └── *.yml # 自定义策略文件(支持多文件) └── gui/ └── default.yml # 默认 GUI 界面配置 └── *.yml # 自定义 GUI 界面(支持多 GUI) ``` **多策略文件**:`strategy/` 目录下所有 `.yml` 文件均会被加载,可将不同装备策略分文件管理。 **多 GUI 界面**:`gui/` 目录下每个 `.yml` 文件对应一个 GUI,通过 `cmd` 字段区分。 --- ## 配置详解 ### config.yml - 主配置 ```yaml # 消息前缀(显示在所有提示消息前) prefix: "&3墨强化 &f>>>" # 调试模式(一般无需开启) debug: false # 属性配置文件路径 attribute-file: "attribute/attribute.yml" # 默认 GUI 配置文件 default-gui: "gui/default.yml" # 物品库配置 item-libraries: mythicmobs: enabled: true # 是否启用 MythicMobs 物品库 prefix: "mm:" # 物品库前缀(策略中使用 mm:物品ID 引用) neigeitems: enabled: true # 是否启用 NeigeItems 物品库 prefix: "ni:" # 物品库前缀(策略中使用 ni:物品ID 引用) # 保护符配置(空则 GUI 中任何物品均可作为保护符) baohu-item: "" ``` ### attribute.yml - 属性类型定义 属性配置文件定义了属性的**类型组**、**检测关键词**和**首次添加格式**。 ```yaml Basics: # 属性组名称(策略中通过此名引用) check: # 检测关键词列表(用于匹配物品 Lore 中的属性) - '物理攻击' - '物理防御' - '生命上限' first: # 首次添加时的 Lore 格式(<n> 会被替换为数值) - '§b§l☩ §a物理攻击§7: <n>' - '§b§l☩ §a物理防御§7: <n>' - '§b§l☩ §a生命上限§7: <n>' ``` **内置属性组**: | 属性组 | 包含属性 | 格式示例 | |--------|----------|----------| | `Basics` | 物理攻击、物理防御、护甲值、生命恢复、生命上限、PVE/PVP攻防 | `§a物理攻击§7: <n>` | | `Probability` | 雷霆几率、闪避几率、暴击几率、燃烧几率、命中几率等 10 种 | `§a暴击几率§7: <n>%` | | `TSProbability` | 吸血几率 | `§a吸血几率§7: <n>%` | | `Percentage` | 暴击伤害、护甲穿透、蓄力加成、箭矢速度等 15 种 | `§a暴击伤害§7: <n>%` | | `TSPercentage` | 吸血倍率、经验倍率、移速加成 | `§a移速加成§7: <n>%` | | `Level` | 装备等级 | `装备等级: <n>` | **自定义属性**:直接修改 `attribute.yml`,添加新的属性组或在现有组中增加属性即可。 > **重要**:属性检测通过 `check` 中的关键词在 Lore 中进行**模糊匹配**,一个属性只会取首个匹配的数值。因此物品 Lore 中同一属性只能出现一次。 ### strategy/*.yml - 强化策略 策略文件是插件的核心,定义了**哪些物品可以强化**以及**如何强化**。 #### 整体结构 ```yaml 策略名称(唯一): match: # 物品匹配规则 - ... detect: # 强化阶段配置 阶段名: config: ... # 前置条件、概率 attribute: # 属性变化 success: ... # 成功时 fail: ... # 失败时 term: ... # 消耗 ``` #### 物品匹配 (`match`) `match` 定义哪些物品可以使用此策略。一个策略下可以有多个匹配方案(列表),**每个方案中的 name、type、lore 各满足一个即匹配成功**。 ```yaml match: - name: # 匹配物品显示名 - "v-[可强化]" # v- 模糊包含 - "p-神话之剑" # p- 精准匹配 - "s-传说" # s- 以...开头 - "e-武器" # e- 以...结尾 type: # 匹配物品材质(可选) - "v-DIAMOND" # 材质名包含 "DIAMOND" lore: # 匹配物品 Lore(可选) - "v-可强化" # v- 任意行模糊包含 - "p-觉醒等级: 未觉醒" # p- 某行精准匹配 - name: # 第二个匹配方案 - "v-[觉醒]" ``` **Lore 匹配模式详解**: | 前缀 | 模式 | 说明 | |------|------|------| | `v-` | 模糊匹配 | 整个 Lore 中任意一行包含即可 | | `p-` | 精准匹配 | 整个 Lore 中某一行完全相等 | | `o-` | 有序精准匹配 | Lore 中有连续几行按顺序精准对应(用 `\n` 分隔多行) | | `f-` | 有序模糊匹配 | Lore 中有连续几行按顺序包含对应内容(用 `\n` 分隔多行) | #### 强化阶段 (`detect`) 每个物品可以有**多个强化阶段**(一觉、二觉、三觉...)。系统会根据物品 Lore 中 `check` 的内容自动确定当前所处的阶段。 **强化阶段匹配逻辑**: 1. 遍历当前阶段的所有配方 2. 检查物品 Lore 中是否有与某个配方的 `check` 完全匹配的行 3. 匹配到 `check` 则该配方为当前可执行配方 4. 强化成功后 `check` 会被替换为 `evolution` ```yaml 一觉: config: check: "&e觉醒等级: 未觉醒" # 前置检查(Lore 中必须精确包含此行) evolution: "&e觉醒等级: 一觉" # 强化成功后替换 check 的内容 success: 0.8 # 成功率(0.0 ~ 1.0) worm: 0.1 # 破损率(0.0 ~ 1.0) attribute: success: # 强化成功时执行的属性操作 ... fail: # 强化失败时执行的属性操作 ... ``` **attrubute 节点说明**: ```yaml success: # 或 fail # 属性增长 random: 3 # 随机增长已有属性的个数(0 或不填 = 全部增长) grow: # 属性增长公式(按属性组引用) Basics: "<n> * 1.2 + 5" # 属性组: "公式" Probability: "<n> * 1.1" # 新增属性 number: 2 # 随机新增属性的个数(0 或不填 = 全部新增) check: "[down]属性" # 新属性插入位置([up]/[down],不填 = Lore 末尾) position: # 新增属性的初始值公式 Basics: "20 + (10 * <random>)" # 新增 Lore lore: # 强化时添加的 Lore(可整体删除) - position: "[up]属性" # Lore 插入位置([up]/[down]/[replace],不填 = 末尾) lore: # 要添加的 Lore 文本列表 - "§b§l★★ 强化特效已升级" - "§7属性大幅提升" ``` **position 定位操作详解**: | 操作 | 格式 | 说明 | |------|------|------| | `[up]` | `[up]关键词` | 在包含关键词的那行**上面**插入 | | `[down]` | `[down]关键词` | 在包含关键词的那行**下面**插入 | | `[replace]` | `[replace]关键词` | **替换**包含关键词的那一行 | | 空 | 不填 | 追加到 Lore **末尾** | #### 强化消耗 (`term`) ```yaml term: vault: 1000 # 金币消耗(需要 Vault) points: 10 # 点券消耗(需要 PlayerPoints) items: # 物品消耗 mm:强化石: 1 # MythicMobs 物品(mm:物品ID: 数量) 魔法粉尘: 5 # 普通物品(按显示名模糊匹配) ni:特殊材料: 1 # NeigeItems 物品(ni:物品ID: 数量) ``` `vault`、`points`、`items` 均可删除或设为 0,不消耗对应资源。 ### gui/default.yml - GUI 界面 #### 基础设置 ```yaml title: "&c&l墨强化界面" # GUI 标题(支持颜色代码) size: 3 # 行数(1~6) # 打开/关闭 GUI 时执行的动作 open: - "[sound]BLOCK_CHEST_OPEN" # 播放开箱音效 close: - "[sound]BLOCK_CHEST_CLOSE" # 播放关箱音效 # 此 GUI 对应的命令(输入 /ms jinjie 打开此界面) cmd: jinjie ``` **动作类型说明**: | 动作 | 说明 | 示例 | |------|------|------| | `[message]` | 发送消息 | `[message]<prefix> &a操作成功` | | `[sound]` | 播放音效 | `[sound]BLOCK_ANVIL_LAND` | | `[console]` | 控制台执行命令 | `[console]give <p> diamond 1` | | `[op]` | 以 OP 身份执行 | `[op]fly` | | `[player]` | 以玩家身份执行 | `[player]spawn` | 占位符:`<prefix>`(插件前缀)、`<p>`(玩家名)、`<n>`(动态数值) #### 槽位配置 ```yaml equip: 10 # 装备槽位(放入强化物品) baohu: 16 # 保护符槽位(放入保护符) button: 13 # 强化按钮槽位(点击执行强化) ``` #### 强化按钮样式 ```yaml buttonitem: name: "&e&l点击强化" type: ANVIL # 按钮材质 lore: # 正常 Lore(装备匹配到策略时显示) - "&f成功率:&a<zcg>" # <zcg> = 成功率百分比 - "&f破损率:&c<zps>" # <zps> = 破损率百分比 - "&f当前配方:&a<recipe>" # <recipe> = 当前配方名 - "&f所需金币:&6<vault>" # <vault> = 金币消耗 - "&f所需点券:&b<points>" # <points> = 点券消耗 - "&f所需物品:" - "<items>" # <items> = 物品消耗列表 - "&f所需条件:" - "<term>" # <term> = 条件汇总 empty-lore: # 装备槽为空时显示 - "&c请放入需要强化的装备!" no-recipe-lore: # 装备无匹配策略时显示 - "&c该装备没有可用的强化方案!" items-format: "&7- <name> &8x<num>" # <items> 的每个条目格式 ``` **按钮占位符说明**: | 占位符 | 替换内容 | |--------|----------| | `<vault>` | 所需金币数 | | `<points>` | 所需点券数 | | `<items>` | 所需物品列表 | | `<term>` | 所需条件汇总 | | `<recipe>` | 当前匹配的配方名 | | `<zcg>` | 成功率(百分比格式) | | `<zps>` | 破损率(百分比格式) | #### 提示消息 (`lang`) ```yaml lang: success: # 强化成功 - "[message]<prefix> &a恭喜你成功进阶!" - "[sound]BLOCK_ANVIL_LAND" fail: # 强化失败 - "[message]<prefix> &c很遗憾你进阶失败!" - "[sound]BLOCK_ANVIL_BREAK" worm: # 物品破损 - "[message]<prefix> &c你的物品已经破损!" - "[sound]BLOCK_ANVIL_BREAK" protect: # 保护符生效 - "[message]<prefix> &a保护符已生效!你的物品完好无损。" - "[sound]BLOCK_ANVIL_LAND" vault: # 金币不足 - "[message]<prefix> &c金币不足 &e<n>" points: # 点券不足 - "[message]<prefix> &c点券不足 &e<n>" material: # 材料不足 - "[message]<prefix> &c材料不足!" match: # 装备未匹配策略 - "[message]<prefix> &c没有找到对应装备的强化配方!" no-recipe: # 装备不满足阶段条件 - "[message]<prefix> &c该装备没有可用的强化方案!" no-equip: # 未放入装备 - "[message]<prefix> &c请放入需要强化的装备!" ``` #### 菜单装饰 (`menu`) ```yaml menu: "0,1,2,9,11,18,19,20": # 槽位编号(多个用逗号分隔) type: LIGHT_BLUE_STAINED_GLASS_PANE # 材质 name: "&b装备槽位" # 显示名 lore: # 描述 - "&7将需要强化的物品放入此位置" ``` 装饰物品也可使用物品库: ```yaml "4": mm: 装饰物品 # MythicMobs 物品 "5": ni: 装饰物品 # NeigeItems 物品 ``` > **注意**:保护符槽位不要配置装饰物品,否则玩家可将装饰物品取走。 --- ## 强化流程 1. 玩家打开 GUI(`/ms`) 2. 放入需要强化的装备到**装备槽位** 3. 放入保护符到**保护符槽位**(可选) 4. 系统自动识别装备匹配的策略和当前阶段 5. 强化按钮显示当前配方的成功率、消耗等信息 6. 玩家点击强化按钮 7. 检查消耗条件(金币、点券、材料) 8. 扣除消耗 → 概率判定 9. **成功**:执行 `success` 属性操作,替换 `check` 为 `evolution` 10. **失败**:执行 `fail` 属性操作,概率判定破损 11. **破损**:检查保护符 → 有则消耗并保护,无则装备消失 --- ## 公式系统 属性增长和新增属性的值通过公式计算。 ### 占位符 | 占位符 | 说明 | |--------|------| | `<n>` | 当前属性值(增长时)/ 0(新增时) | | `<random>` | 0.00 ~ 0.99 随机数(保留两位小数,同一公式中多次出现值相同) | ### 示例 | 公式 | 当前值 10 | 结果 | |------|-----------|------| | `<n> * 1.2 + 5` | 10 | `10 × 1.2 + 5 = 17.0` | | `<n> * 1.5` | 10 | `10 × 1.5 = 15.0` | | `20 + (10 * <random>)` | - | `20 + (10 × 0.63) = 26.3` | | `50 + <random> * 20` | - | `50 + 0.63 × 20 = 62.6` | 支持的运算:`+` `-` `*` `/` `()`,注意乘法用 `*`。 --- ## 保护符 强化失败且触发破损时,若保护符槽位有符合条件的物品,则**消耗 1 个**,装备不破损。 **配置方式**(`config.yml` → `baohu-item`): | 配置值 | 效果 | |--------|------| | `""` 或不填 | 槽位内**任意物品**均可作为保护符 | | `mm:保护符` | 仅 MythicMobs 的 `保护符` 物品 | | `ni:保护符` | 仅 NeigeItems 的 `保护符` 物品 | | `§e保护符` | 按物品显示名**模糊匹配** | --- ## 物品消耗匹配规则 ### 物品库物品(`mm:` / `ni:` 开头) - 通过物品库获取模板物品 - 与玩家背包中的物品进行**精确比对**(材质、显示名、Lore 完全一致) - 数量可省略,默认 1 ### 普通物品 - 按物品显示名**模糊匹配**(包含即可) - 例如配置 `强化石` 可匹配显示名为 `§d强化石` 的物品 --- ## 防呆设计 为减少配置错误,以下字段支持省略或留空: | 字段 | 省略效果 | |------|----------| | `random: 0` 或不填 | 增长**全部**已有属性 | | `number: 0` 或不填 | 新增**全部**可能属性 | | 整个 `lore:` 块删除 | 不新增 Lore | | `check` 不填(新增属性) | 新属性追加到 Lore **末尾** | | `position` 不填(Lore 操作) | Lore 追加到 **末尾** | | `items` 数量不填或为 0 | 默认消耗 **1** 个 | | `vault` / `points` 删除或为 0 | 不消耗对应资源 | --- ## 联动插件 | 插件 | 用途 | 必需 | |------|------|------| | **Vault** | 经济 API 接口 | 如需金币消耗则必需 | | 经济插件(如 EssentialsX、CMI)| 提供经济实现 | 配合 Vault 使用 | | **PlayerPoints** | 点券系统 | 如需点券消耗则必需 | | **MythicMobs** | 物品创建与管理 | 可选,用于物品库 | | **NeigeItems** | 物品创建与管理 | 可选,用于物品库 | --- ## 完整使用示例 ### 1. 创建可强化武器(MythicMobs) 文件:`plugins/MythicMobs/items/武器.yml` ```yaml 可强化长剑: Id: DIAMOND_SWORD Display: '[可强化] &f神话之剑' Lore: - '' - '&7一把蕴含着古老力量的神剑' - '' - '&e&l★ 属性 ★' - '§b§l☩ §a物理攻击§7: 10' - '§b§l☩ §a物理防御§7: 10' - '' - '&e觉醒等级: 未觉醒' ``` ### 2. 创建强化石(MythicMobs) 文件:`plugins/MythicMobs/items/材料.yml` ```yaml 强化石: Id: NETHER_STAR Display: '&d强化石' Lore: - '&7用于强化装备的神秘石头' ``` ### 3. 创建保护符(MythicMobs) 文件:`plugins/MythicMobs/items/材料.yml` ```yaml 保护符: Id: PAPER Display: '&6保护符' Lore: - '&7强化失败时保护装备不被损坏' Enchantments: - UNBREAKING:1 Hide: - ENCHANTS ``` ### 4. 配置强化策略 文件:`plugins/MoStrengthen/strategy/武器强化.yml` ```yaml 武器强化: match: - name: - "v-[可强化]" lore: - "v-可强化" detect: 一觉: config: check: "&e觉醒等级: 未觉醒" evolution: "&e觉醒等级: 一觉" success: 0.8 worm: 0.1 attribute: success: random: 2 grow: Basics: "<n> * 1.2 + 5" lore: - position: "[up]觉醒等级" lore: - "§b§l★ 一觉觉醒" - "§7全属性提升 20%" fail: lore: - position: "[down]觉醒等级" lore: - "§7强化记录: §c失败" term: vault: 1000 items: mm:强化石: 1 二觉: config: check: "&e觉醒等级: 一觉" evolution: "&e觉醒等级: 二觉" success: 0.7 worm: 0.15 attribute: success: random: 2 grow: Basics: "<n> * 1.3 + 8" number: 2 position: Basics: "25 + (15 * <random>)" term: vault: 2000 items: mm:强化石: 2 ``` ### 5. 配置保护符 `config.yml`: ```yaml baohu-item: "mm:保护符" ``` ### 6. 玩家使用 1. 获取可强化武器(`/mm i get 可强化长剑`) 2. 输入 `/ms` 打开强化界面 3. 将武器放入装备槽 4. 放入强化石和保护符 5. 查看成功率与消耗后点击强化按钮 --- ## 常见问题 **Q: 物品无法匹配强化策略?** - 检查策略文件中的 `match` 条件是否与物品的显示名/材质/Lore 匹配 - 注意匹配命中后还需要 `check` 匹配才可强化 **Q: 修改配置后没有生效?** - 使用 `/ms reload` 重载配置 - 检查 YAML 缩进是否正确(YAML 使用空格缩进,不允许 Tab) **Q: 物品无法放入装备槽?** - 只有装备槽和保护符槽可以放入物品,其他槽位点击会被取消 **Q: GUI 中保护符槽位的装饰物品被拿走了?** - 不要在 `menu` 中为保护符槽位配置装饰物品 **Q: 金币/点券扣除失败?** - 确认已安装 Vault + 经济插件 / PlayerPoints - 确认玩家有足够的余额 **Q: 物品消耗没有正确扣除?** - 物品库物品需确保 MythicMobs/NeigeItems 已正确加载 - 普通物品按显示名模糊匹配,确保名称一致 --- ## 开发者 - 作者:MoFan [/MD]
点击加入【墨系列插件交流群】
若无金粒可在群文件中下载
[MD] # MoStrengthen 墨强化 Minecraft 物品属性强化插件,支持多阶段强化、概率成败、物品破损保护、MythicMobs / NeigeItems 物品库联动。 --- ## 功能特性 - **多阶段强化配方**:每个物品可配置多个强化阶段,逐级提升属性 - **概率系统**:自定义成功率与破损率,强化失败可能损坏物品 - **保护符**:专用物品可防止强化失败时物品破损 - **属性增长公式**:支持四则运算与随机数,灵活控制数值平衡 - **新增属性**:强化成功后可为物品随机新增属性 - **新增 Lore**:强化时可动态添加/修改物品描述文本 - **独立成功/失败动作**:成功和失败分别执行不同的属性操作 - **Vault 经济支持**:金币消耗(需 Vault + 经济插件) - **PlayerPoints 支持**:点券消耗 - **MythicMobs 物品库**:`mm:物品ID` 格式获取物品 - **NeigeItems 物品库**:`ni:物品ID` 格式获取物品 - **完全可配置 GUI**:界面布局、装饰、提示语均可自定义 - **多 GUI 支持**:可配置多个 GUI 界面,通过不同命令打开 - **策略文件热重载**:`/ms reload` 即可重载所有配置 --- **前置依赖(可选)**: - Vault + 任意经济插件 → 金币消耗 - PlayerPoints → 点券消耗 - MythicMobs → 物品库联动 - NeigeItems → 物品库联动 --- ## 命令与权限 ### 命令 | 命令 | 说明 | |------|------| | `/ms` | 打开默认强化 GUI | | `/ms gui` | 打开默认强化 GUI | | `/ms <cmd>` | 打开指定命令的 GUI(匹配 gui 配置中的 `cmd` 字段) | | `/ms reload` | 重载所有配置文件 | | `/ms help` | 查看帮助信息 | 别名:`/mq`、`/mostrengthen` ### 权限 | 权限节点 | 说明 | 默认 | |----------|------|------| | `mostrengthen.use` | 使用强化命令 | 所有人 | | `mostrengthen.admin` | 重载配置等管理操作 | OP | --- ## 文件结构 ``` plugins/MoStrengthen/ ├── config.yml # 主配置(插件前缀、物品库开关、保护符等) ├── attribute/ │ └── attribute.yml # 属性类型定义(属性组、检测词、Lore 格式) ├── strategy/ │ ├── example.yml # 示例策略文件 │ └── *.yml # 自定义策略文件(支持多文件) └── gui/ └── default.yml # 默认 GUI 界面配置 └── *.yml # 自定义 GUI 界面(支持多 GUI) ``` **多策略文件**:`strategy/` 目录下所有 `.yml` 文件均会被加载,可将不同装备策略分文件管理。 **多 GUI 界面**:`gui/` 目录下每个 `.yml` 文件对应一个 GUI,通过 `cmd` 字段区分。 --- ## 配置详解 ### config.yml - 主配置 ```yaml # 消息前缀(显示在所有提示消息前) prefix: "&3墨强化 &f>>>" # 调试模式(一般无需开启) debug: false # 属性配置文件路径 attribute-file: "attribute/attribute.yml" # 默认 GUI 配置文件 default-gui: "gui/default.yml" # 物品库配置 item-libraries: mythicmobs: enabled: true # 是否启用 MythicMobs 物品库 prefix: "mm:" # 物品库前缀(策略中使用 mm:物品ID 引用) neigeitems: enabled: true # 是否启用 NeigeItems 物品库 prefix: "ni:" # 物品库前缀(策略中使用 ni:物品ID 引用) # 保护符配置(空则 GUI 中任何物品均可作为保护符) baohu-item: "" ``` ### attribute.yml - 属性类型定义 属性配置文件定义了属性的**类型组**、**检测关键词**和**首次添加格式**。 ```yaml Basics: # 属性组名称(策略中通过此名引用) check: # 检测关键词列表(用于匹配物品 Lore 中的属性) - '物理攻击' - '物理防御' - '生命上限' first: # 首次添加时的 Lore 格式(<n> 会被替换为数值) - '§b§l☩ §a物理攻击§7: <n>' - '§b§l☩ §a物理防御§7: <n>' - '§b§l☩ §a生命上限§7: <n>' ``` **内置属性组**: | 属性组 | 包含属性 | 格式示例 | |--------|----------|----------| | `Basics` | 物理攻击、物理防御、护甲值、生命恢复、生命上限、PVE/PVP攻防 | `§a物理攻击§7: <n>` | | `Probability` | 雷霆几率、闪避几率、暴击几率、燃烧几率、命中几率等 10 种 | `§a暴击几率§7: <n>%` | | `TSProbability` | 吸血几率 | `§a吸血几率§7: <n>%` | | `Percentage` | 暴击伤害、护甲穿透、蓄力加成、箭矢速度等 15 种 | `§a暴击伤害§7: <n>%` | | `TSPercentage` | 吸血倍率、经验倍率、移速加成 | `§a移速加成§7: <n>%` | | `Level` | 装备等级 | `装备等级: <n>` | **自定义属性**:直接修改 `attribute.yml`,添加新的属性组或在现有组中增加属性即可。 > **重要**:属性检测通过 `check` 中的关键词在 Lore 中进行**模糊匹配**,一个属性只会取首个匹配的数值。因此物品 Lore 中同一属性只能出现一次。 ### strategy/*.yml - 强化策略 策略文件是插件的核心,定义了**哪些物品可以强化**以及**如何强化**。 #### 整体结构 ```yaml 策略名称(唯一): match: # 物品匹配规则 - ... detect: # 强化阶段配置 阶段名: config: ... # 前置条件、概率 attribute: # 属性变化 success: ... # 成功时 fail: ... # 失败时 term: ... # 消耗 ``` #### 物品匹配 (`match`) `match` 定义哪些物品可以使用此策略。一个策略下可以有多个匹配方案(列表),**每个方案中的 name、type、lore 各满足一个即匹配成功**。 ```yaml match: - name: # 匹配物品显示名 - "v-[可强化]" # v- 模糊包含 - "p-神话之剑" # p- 精准匹配 - "s-传说" # s- 以...开头 - "e-武器" # e- 以...结尾 type: # 匹配物品材质(可选) - "v-DIAMOND" # 材质名包含 "DIAMOND" lore: # 匹配物品 Lore(可选) - "v-可强化" # v- 任意行模糊包含 - "p-觉醒等级: 未觉醒" # p- 某行精准匹配 - name: # 第二个匹配方案 - "v-[觉醒]" ``` **Lore 匹配模式详解**: | 前缀 | 模式 | 说明 | |------|------|------| | `v-` | 模糊匹配 | 整个 Lore 中任意一行包含即可 | | `p-` | 精准匹配 | 整个 Lore 中某一行完全相等 | | `o-` | 有序精准匹配 | Lore 中有连续几行按顺序精准对应(用 `\n` 分隔多行) | | `f-` | 有序模糊匹配 | Lore 中有连续几行按顺序包含对应内容(用 `\n` 分隔多行) | #### 强化阶段 (`detect`) 每个物品可以有**多个强化阶段**(一觉、二觉、三觉...)。系统会根据物品 Lore 中 `check` 的内容自动确定当前所处的阶段。 **强化阶段匹配逻辑**: 1. 遍历当前阶段的所有配方 2. 检查物品 Lore 中是否有与某个配方的 `check` 完全匹配的行 3. 匹配到 `check` 则该配方为当前可执行配方 4. 强化成功后 `check` 会被替换为 `evolution` ```yaml 一觉: config: check: "&e觉醒等级: 未觉醒" # 前置检查(Lore 中必须精确包含此行) evolution: "&e觉醒等级: 一觉" # 强化成功后替换 check 的内容 success: 0.8 # 成功率(0.0 ~ 1.0) worm: 0.1 # 破损率(0.0 ~ 1.0) attribute: success: # 强化成功时执行的属性操作 ... fail: # 强化失败时执行的属性操作 ... ``` **attrubute 节点说明**: ```yaml success: # 或 fail # 属性增长 random: 3 # 随机增长已有属性的个数(0 或不填 = 全部增长) grow: # 属性增长公式(按属性组引用) Basics: "<n> * 1.2 + 5" # 属性组: "公式" Probability: "<n> * 1.1" # 新增属性 number: 2 # 随机新增属性的个数(0 或不填 = 全部新增) check: "[down]属性" # 新属性插入位置([up]/[down],不填 = Lore 末尾) position: # 新增属性的初始值公式 Basics: "20 + (10 * <random>)" # 新增 Lore lore: # 强化时添加的 Lore(可整体删除) - position: "[up]属性" # Lore 插入位置([up]/[down]/[replace],不填 = 末尾) lore: # 要添加的 Lore 文本列表 - "§b§l★★ 强化特效已升级" - "§7属性大幅提升" ``` **position 定位操作详解**: | 操作 | 格式 | 说明 | |------|------|------| | `[up]` | `[up]关键词` | 在包含关键词的那行**上面**插入 | | `[down]` | `[down]关键词` | 在包含关键词的那行**下面**插入 | | `[replace]` | `[replace]关键词` | **替换**包含关键词的那一行 | | 空 | 不填 | 追加到 Lore **末尾** | #### 强化消耗 (`term`) ```yaml term: vault: 1000 # 金币消耗(需要 Vault) points: 10 # 点券消耗(需要 PlayerPoints) items: # 物品消耗 mm:强化石: 1 # MythicMobs 物品(mm:物品ID: 数量) 魔法粉尘: 5 # 普通物品(按显示名模糊匹配) ni:特殊材料: 1 # NeigeItems 物品(ni:物品ID: 数量) ``` `vault`、`points`、`items` 均可删除或设为 0,不消耗对应资源。 ### gui/default.yml - GUI 界面 #### 基础设置 ```yaml title: "&c&l墨强化界面" # GUI 标题(支持颜色代码) size: 3 # 行数(1~6) # 打开/关闭 GUI 时执行的动作 open: - "[sound]BLOCK_CHEST_OPEN" # 播放开箱音效 close: - "[sound]BLOCK_CHEST_CLOSE" # 播放关箱音效 # 此 GUI 对应的命令(输入 /ms jinjie 打开此界面) cmd: jinjie ``` **动作类型说明**: | 动作 | 说明 | 示例 | |------|------|------| | `[message]` | 发送消息 | `[message]<prefix> &a操作成功` | | `[sound]` | 播放音效 | `[sound]BLOCK_ANVIL_LAND` | | `[console]` | 控制台执行命令 | `[console]give <p> diamond 1` | | `[op]` | 以 OP 身份执行 | `[op]fly` | | `[player]` | 以玩家身份执行 | `[player]spawn` | 占位符:`<prefix>`(插件前缀)、`<p>`(玩家名)、`<n>`(动态数值) #### 槽位配置 ```yaml equip: 10 # 装备槽位(放入强化物品) baohu: 16 # 保护符槽位(放入保护符) button: 13 # 强化按钮槽位(点击执行强化) ``` #### 强化按钮样式 ```yaml buttonitem: name: "&e&l点击强化" type: ANVIL # 按钮材质 lore: # 正常 Lore(装备匹配到策略时显示) - "&f成功率:&a<zcg>" # <zcg> = 成功率百分比 - "&f破损率:&c<zps>" # <zps> = 破损率百分比 - "&f当前配方:&a<recipe>" # <recipe> = 当前配方名 - "&f所需金币:&6<vault>" # <vault> = 金币消耗 - "&f所需点券:&b<points>" # <points> = 点券消耗 - "&f所需物品:" - "<items>" # <items> = 物品消耗列表 - "&f所需条件:" - "<term>" # <term> = 条件汇总 empty-lore: # 装备槽为空时显示 - "&c请放入需要强化的装备!" no-recipe-lore: # 装备无匹配策略时显示 - "&c该装备没有可用的强化方案!" items-format: "&7- <name> &8x<num>" # <items> 的每个条目格式 ``` **按钮占位符说明**: | 占位符 | 替换内容 | |--------|----------| | `<vault>` | 所需金币数 | | `<points>` | 所需点券数 | | `<items>` | 所需物品列表 | | `<term>` | 所需条件汇总 | | `<recipe>` | 当前匹配的配方名 | | `<zcg>` | 成功率(百分比格式) | | `<zps>` | 破损率(百分比格式) | #### 提示消息 (`lang`) ```yaml lang: success: # 强化成功 - "[message]<prefix> &a恭喜你成功进阶!" - "[sound]BLOCK_ANVIL_LAND" fail: # 强化失败 - "[message]<prefix> &c很遗憾你进阶失败!" - "[sound]BLOCK_ANVIL_BREAK" worm: # 物品破损 - "[message]<prefix> &c你的物品已经破损!" - "[sound]BLOCK_ANVIL_BREAK" protect: # 保护符生效 - "[message]<prefix> &a保护符已生效!你的物品完好无损。" - "[sound]BLOCK_ANVIL_LAND" vault: # 金币不足 - "[message]<prefix> &c金币不足 &e<n>" points: # 点券不足 - "[message]<prefix> &c点券不足 &e<n>" material: # 材料不足 - "[message]<prefix> &c材料不足!" match: # 装备未匹配策略 - "[message]<prefix> &c没有找到对应装备的强化配方!" no-recipe: # 装备不满足阶段条件 - "[message]<prefix> &c该装备没有可用的强化方案!" no-equip: # 未放入装备 - "[message]<prefix> &c请放入需要强化的装备!" ``` #### 菜单装饰 (`menu`) ```yaml menu: "0,1,2,9,11,18,19,20": # 槽位编号(多个用逗号分隔) type: LIGHT_BLUE_STAINED_GLASS_PANE # 材质 name: "&b装备槽位" # 显示名 lore: # 描述 - "&7将需要强化的物品放入此位置" ``` 装饰物品也可使用物品库: ```yaml "4": mm: 装饰物品 # MythicMobs 物品 "5": ni: 装饰物品 # NeigeItems 物品 ``` > **注意**:保护符槽位不要配置装饰物品,否则玩家可将装饰物品取走。 --- ## 强化流程 1. 玩家打开 GUI(`/ms`) 2. 放入需要强化的装备到**装备槽位** 3. 放入保护符到**保护符槽位**(可选) 4. 系统自动识别装备匹配的策略和当前阶段 5. 强化按钮显示当前配方的成功率、消耗等信息 6. 玩家点击强化按钮 7. 检查消耗条件(金币、点券、材料) 8. 扣除消耗 → 概率判定 9. **成功**:执行 `success` 属性操作,替换 `check` 为 `evolution` 10. **失败**:执行 `fail` 属性操作,概率判定破损 11. **破损**:检查保护符 → 有则消耗并保护,无则装备消失 --- ## 公式系统 属性增长和新增属性的值通过公式计算。 ### 占位符 | 占位符 | 说明 | |--------|------| | `<n>` | 当前属性值(增长时)/ 0(新增时) | | `<random>` | 0.00 ~ 0.99 随机数(保留两位小数,同一公式中多次出现值相同) | ### 示例 | 公式 | 当前值 10 | 结果 | |------|-----------|------| | `<n> * 1.2 + 5` | 10 | `10 × 1.2 + 5 = 17.0` | | `<n> * 1.5` | 10 | `10 × 1.5 = 15.0` | | `20 + (10 * <random>)` | - | `20 + (10 × 0.63) = 26.3` | | `50 + <random> * 20` | - | `50 + 0.63 × 20 = 62.6` | 支持的运算:`+` `-` `*` `/` `()`,注意乘法用 `*`。 --- ## 保护符 强化失败且触发破损时,若保护符槽位有符合条件的物品,则**消耗 1 个**,装备不破损。 **配置方式**(`config.yml` → `baohu-item`): | 配置值 | 效果 | |--------|------| | `""` 或不填 | 槽位内**任意物品**均可作为保护符 | | `mm:保护符` | 仅 MythicMobs 的 `保护符` 物品 | | `ni:保护符` | 仅 NeigeItems 的 `保护符` 物品 | | `§e保护符` | 按物品显示名**模糊匹配** | --- ## 物品消耗匹配规则 ### 物品库物品(`mm:` / `ni:` 开头) - 通过物品库获取模板物品 - 与玩家背包中的物品进行**精确比对**(材质、显示名、Lore 完全一致) - 数量可省略,默认 1 ### 普通物品 - 按物品显示名**模糊匹配**(包含即可) - 例如配置 `强化石` 可匹配显示名为 `§d强化石` 的物品 --- ## 防呆设计 为减少配置错误,以下字段支持省略或留空: | 字段 | 省略效果 | |------|----------| | `random: 0` 或不填 | 增长**全部**已有属性 | | `number: 0` 或不填 | 新增**全部**可能属性 | | 整个 `lore:` 块删除 | 不新增 Lore | | `check` 不填(新增属性) | 新属性追加到 Lore **末尾** | | `position` 不填(Lore 操作) | Lore 追加到 **末尾** | | `items` 数量不填或为 0 | 默认消耗 **1** 个 | | `vault` / `points` 删除或为 0 | 不消耗对应资源 | --- ## 联动插件 | 插件 | 用途 | 必需 | |------|------|------| | **Vault** | 经济 API 接口 | 如需金币消耗则必需 | | 经济插件(如 EssentialsX、CMI)| 提供经济实现 | 配合 Vault 使用 | | **PlayerPoints** | 点券系统 | 如需点券消耗则必需 | | **MythicMobs** | 物品创建与管理 | 可选,用于物品库 | | **NeigeItems** | 物品创建与管理 | 可选,用于物品库 | --- ## 完整使用示例 ### 1. 创建可强化武器(MythicMobs) 文件:`plugins/MythicMobs/items/武器.yml` ```yaml 可强化长剑: Id: DIAMOND_SWORD Display: '[可强化] &f神话之剑' Lore: - '' - '&7一把蕴含着古老力量的神剑' - '' - '&e&l★ 属性 ★' - '§b§l☩ §a物理攻击§7: 10' - '§b§l☩ §a物理防御§7: 10' - '' - '&e觉醒等级: 未觉醒' ``` ### 2. 创建强化石(MythicMobs) 文件:`plugins/MythicMobs/items/材料.yml` ```yaml 强化石: Id: NETHER_STAR Display: '&d强化石' Lore: - '&7用于强化装备的神秘石头' ``` ### 3. 创建保护符(MythicMobs) 文件:`plugins/MythicMobs/items/材料.yml` ```yaml 保护符: Id: PAPER Display: '&6保护符' Lore: - '&7强化失败时保护装备不被损坏' Enchantments: - UNBREAKING:1 Hide: - ENCHANTS ``` ### 4. 配置强化策略 文件:`plugins/MoStrengthen/strategy/武器强化.yml` ```yaml 武器强化: match: - name: - "v-[可强化]" lore: - "v-可强化" detect: 一觉: config: check: "&e觉醒等级: 未觉醒" evolution: "&e觉醒等级: 一觉" success: 0.8 worm: 0.1 attribute: success: random: 2 grow: Basics: "<n> * 1.2 + 5" lore: - position: "[up]觉醒等级" lore: - "§b§l★ 一觉觉醒" - "§7全属性提升 20%" fail: lore: - position: "[down]觉醒等级" lore: - "§7强化记录: §c失败" term: vault: 1000 items: mm:强化石: 1 二觉: config: check: "&e觉醒等级: 一觉" evolution: "&e觉醒等级: 二觉" success: 0.7 worm: 0.15 attribute: success: random: 2 grow: Basics: "<n> * 1.3 + 8" number: 2 position: Basics: "25 + (15 * <random>)" term: vault: 2000 items: mm:强化石: 2 ``` ### 5. 配置保护符 `config.yml`: ```yaml baohu-item: "mm:保护符" ``` ### 6. 玩家使用 1. 获取可强化武器(`/mm i get 可强化长剑`) 2. 输入 `/ms` 打开强化界面 3. 将武器放入装备槽 4. 放入强化石和保护符 5. 查看成功率与消耗后点击强化按钮 --- ## 常见问题 **Q: 物品无法匹配强化策略?** - 检查策略文件中的 `match` 条件是否与物品的显示名/材质/Lore 匹配 - 注意匹配命中后还需要 `check` 匹配才可强化 **Q: 修改配置后没有生效?** - 使用 `/ms reload` 重载配置 - 检查 YAML 缩进是否正确(YAML 使用空格缩进,不允许 Tab) **Q: 物品无法放入装备槽?** - 只有装备槽和保护符槽可以放入物品,其他槽位点击会被取消 **Q: GUI 中保护符槽位的装饰物品被拿走了?** - 不要在 `menu` 中为保护符槽位配置装饰物品 **Q: 金币/点券扣除失败?** - 确认已安装 Vault + 经济插件 / PlayerPoints - 确认玩家有足够的余额 **Q: 物品消耗没有正确扣除?** - 物品库物品需确保 MythicMobs/NeigeItems 已正确加载 - 普通物品按显示名模糊匹配,确保名称一致 --- ## 开发者 - 作者:MoFan [/MD]