DungLe'大师

DungLe'大师

一个强大的RPG扩展模组,包含自定义生物等级、玩家成长系统和动态地牢——所有内容均可高度自定义。

地牢大师模组——完整文档

Minecraft Forge 1.20.1 | 模组ID: dungeonmaster

地牢大师是一个服务端RPG框架,它把原版生存体验改造成了完整的地牢探险RPG。玩家可以升级、分配属性、与强度随等级提升的怪物作战,并获得动态生成的战利品——没有两件物品是完全相同的。


目录

  1. 核心系统概述
  2. 玩家等级与属性
  3. 技能升级菜单
  4. 怪物等级缩放
  5. 经验值与击杀奖励
  6. 增益系统
  7. 动态战利品系统
  8. 物品需求与自动卸装
  9. 地牢奖励 (/dungeon reward)
  10. 管理员指令(完整参考)
  11. 玩家指令(完整参考)
  12. GUI界面参考
  13. 配置文件
  14. 安装与需求

1. 核心系统概述

地牢大师添加了以下相互关联的系统:

系统 描述
玩家等级 玩家通过击杀获得经验值,升级,获得技能点
属性分配 将技能点分配到力量/敏捷/智力
属性加成 每个属性点提供可配置的属性加成(伤害、生命值、速度等)
怪物缩放 敌方等级和属性会根据附近玩家缩放
动态战利品 每件奖励物品都是独特生成的,包含等级、稀有度、需求和随机加成
增益系统 管理员定义可分配给玩家的持久增益(属性加成)
地牢奖励 地牢通关后,玩家获得经验值、金币和动态生成的物品

所有管理员设置(属性加成、增益、战利品配置)仅在执行 /dungeon restart 后生效——更改永远不会在游戏过程中自动生效。


2. 玩家等级与属性

升级机制

  • 玩家从 1级 开始,拥有 0 经验值。
  • 通过击杀怪物获得经验值(参见 经验值与击杀奖励)。
  • 升级所需经验值:100 + (当前等级 - 1) × 25
    • 1级 → 2级:100 经验值
    • 10级 → 11级:325 经验值
    • 50级 → 51级:1325 经验值
  • 升级时,玩家获得 1 技能点。
  • 等级和经验值在死亡和重连后仍然保留。

属性

每个玩家拥有三个核心属性:

属性 键值 默认值
力量 strength 0
敏捷 agility 0
智力 intelligence 0

属性通过 升级菜单 消耗技能点来增加。

每个属性点提供可配置的属性加成——由管理员通过 /dungeon stateedit 进行配置。

数据持久化

玩家数据通过 Forge Capabilities(附加到玩家实体上)存储,并序列化为 NBT。此数据会在死亡时(PlayerEvent.Clone)正确复制,并在重生和登录时重新同步。


3. 技能升级菜单

当你在游戏中按下 ESC 键时,升级菜单会自动打开(取代原版暂停菜单)。也可以通过地牢主菜单访问。

显示内容

  • 当前等级和经验值条(当前/到下一级所需)
  • 可用技能点
  • 力量、敏捷、智力的当前值
  • 用于在属性上消耗技能点的"+"按钮

说明

  • 每次点击"+"消耗 1 技能点,并将相应属性提升 1 点。
  • 属性加成(例如,力量 → +攻击伤害)在消耗后立即生效。
  • 如果技能点数为 0,"+"按钮会变灰不可用。

4. 怪物等级缩放

等级计算

当敌对怪物生成时,其等级根据附近的玩家计算:

平均等级 = 所有在30格范围内玩家的平均等级
怪物等级 = 平均等级 ± 随机(0..3)   (最小值:1)

如果附近没有玩家,怪物在1级生成。

属性缩放

怪物的属性(最大生命值、攻击伤害、护甲等)会根据其等级,使用管理员配置的怪物缩放配置(/dungeon stateedit → 怪物选项卡 或 dungeonmaster_scaling.json)进行缩放。

例如:如果攻击伤害配置为每级增加 +0.5,那么一个20级的怪物在其基础值上会额外获得 +9.5 的攻击伤害。

等级可见性

怪物等级不会永久显示在它们头顶。只有当你本人距离怪物5格范围内时才会显示:

  • 在5格范围内:怪物头顶显示 [Lv. 25] 僵尸
  • 超出5格范围:名称隐藏(与原版未命名怪物相同)

这是基于每个玩家在客户端渲染的——附近的其他玩家能否看到等级取决于他们自己的距离。


5. 经验值与击杀奖励

当玩家击杀怪物时,他们根据 dungeonmaster_xp.json 中配置的等级差公式获得经验值:

经验值 = 基础经验值 + 等级差加成 × (怪物等级 - 玩家等级)
    (截取到最小经验值)
  • 击杀远低于自己等级的敌人获得极少经验值(防止刷怪)。
  • 击杀等于或高于自己等级的敌人获得全额或额外经验值。
  • 获得经验值时,聊天栏显示消息:+ N 经验值
  • 升级时显示:✦ 新等级!你现在是 N 级。可用技能点:M

经验值公式参数可通过 dungeonmaster_xp.json 配置文件配置(参见 配置文件)。


6. 增益系统

增益是命名的属性加成集合,由管理员创建并分配给玩家。它们独立于属性加成——增益更像是"职业加成"或"装备套装效果"。

创建增益

使用 /dungeon editbuff 打开增益编辑器 GUI:

  • 创建一个命名的增益(例如:"战士"、"法师")
  • 添加属性条目:从 Forge 注册表中选择一个属性,设置数值,选择 FLAT(加法)或 PERCENT(百分比)
  • 保存增益——它将存储在 dungeonmaster_buffs.json 中
  • 更改在执行 /dungeon restart 后生效

分配增益

/dungeon buff <玩家名> <增益名称>

这将把命名的增益分配给玩家。玩家立即获得增益中定义的所有属性修饰符(通过瞬时的 AttributeModifier,在登出或增益变更时移除)。

移除增益

/dungeon removebuff <玩家名>

移除玩家当前的增益。

增益存储

增益分配存储在玩家的 Capability NBT 中,并在死亡/重连后持续存在。


7. 动态战利品系统

地牢奖励系统生成的每件物品都是独特的。两把相同的铁剑可能拥有完全不同的属性。物品在奖励生成的瞬间根据玩家当前等级和属性生成。

物品生成流程

  1. 基础物品 从配置的物品池中随机选择(剑、斧、弓、头盔等)
  2. 物品等级 = 玩家等级 ± 物品等级方差(默认方差:±3)
  3. 需求 根据玩家当前属性 ± 方差生成:
    • 需求等级 ≈ 物品等级
    • 需求力量 = 玩家力量 ± 需求方差
    • 需求敏捷 = 玩家敏捷 ± 需求方差
    • 需求智力 = 玩家智力 ± 需求方差
  4. 稀有度 通过加权随机从7个等级中选择(见下方)
  5. 加成 从物品类别(武器或护甲)的属性池中随机抽取
  6. 所有数据写入到 ItemStack 的 NBT 中,位于 DungeonMasterItem 标签下

稀有度等级

稀有度 颜色 默认权重 加成数量
普通 灰色 #808080 100 1
不凡 青绿色 #40E0D0 60 1~2
稀有 蓝色 #1E90FF 30 2~3
超级稀有 紫色 #8A2BE2 15 3~4
史诗 粉色 #FF1493 7 4~5
神话 橙色 #FF8C00 3 5~6
传奇 金色 #FFD700 1 6~8

所有权重和加成数量均可通过 /dungeon lootedit 完全配置。

物品类别

物品被分类到不同的类别中。每个类别拥有自己的属性池:

  • 武器(剑、斧、弓、弩、三叉戟):攻击伤害、攻击速度、幸运
  • 护甲(头盔、胸甲、护腿、靴子):最大生命值、护甲值、移动速度、击退抗性

管理员可以通过 /dungeon lootedit 创建额外的自定义类别(例如:饰品、神器、盾牌)并分配它们自己的属性池。

等级缩放

加成数值随物品等级缩放:

最终值 = 基础值 × (1.0 + (物品等级 - 1) × 每级数值)

默认 每级数值 = 0.08(每级增强 8%)。

物品提示显示

当鼠标悬停在生成的物品上时,提示框显示:

[史诗] 物品等级: 22
需求: 等级 12  5力量  3敏捷  1智力
• +4.8 攻击伤害 (FLAT)
• +12% 移动速度 (PERCENT)
• +2.1 攻击速度 (FLAT)

8. 物品需求与自动卸装

每件生成的物品都有 4 个强制需求,它们始终显示:

需求: 等级 12  5力量  2敏捷  1智力

(即使数值为0也会显示——这四项始终出现。)

需求检查

每 10 刻(0.5 秒),服务器会检查每个玩家的所有装备栏(主手、副手、头、胸、腿、脚)。

如果玩家不满足已装备物品的需求:

  1. 物品会被自动卸下(放回背包,如果背包满了则掉落在地上)
  2. 玩家收到聊天消息解释原因:
    • 等级不足。需求: 12 当前: 8
    • 力量不足。需求: 5 当前: 3
    • 敏捷不足。需求: 4 当前: 1
    • 智力不足。需求: 3 当前: 0
  3. 消息仅在原因发生变化时显示——不会因玩家反复尝试装备而导致聊天刷屏。

属性修饰符

当满足需求时,物品的加成作为瞬时的 AttributeModifier 条目应用于玩家。当物品被卸下或需求不满足时,这些加成会自动移除。


9. 地牢奖励 (/dungeon reward)

完成地牢后,管理员执行:

/dungeon reward <玩家名>

这将触发奖励序列:

  1. 经验值 计算:基础经验值 + 每玩家等级经验值 × 玩家等级
  2. 金币 发放:基础金币 + 每玩家等级金币 × 玩家等级 单位的配置金币物品(默认:绿宝石)
  3. 物品 生成:在 最小物品数 和 最大物品数 之间生成独特物品
  4. 所有奖励放入玩家背包(如果背包满了则掉落在脚下)
  5. 一个奖励界面打开显示:
    • 获得的经验值(如果升级则显示升级指示)
    • 金币数量和图标
    • 每个生成的物品,附有图标、稀有度颜色和副标题:稀有度 · 等级 N · 加成数量: M

所有奖励参数均可通过 /dungeon lootedit → 奖励选项卡配置。


10. 管理员指令(完整参考)

所有管理员指令需要权限等级 2(OP)。


/dungeon restart

从磁盘重新加载所有模组配置并重新应用。

在任何更改(通过编辑器 GUI stateedit、editbuff、lootedit 进行)之后使用此指令。

/dungeon restart

输出:[DungeonMaster] 配置已重新加载。怪物缩放、属性加成、增益数据和战利品配置已更新。


/dungeon stateedit

打开属性加成编辑器 GUI(仅管理员)。

/dungeon stateedit

该 GUI 允许你配置:

玩家属性选项卡:

  • 每个属性点提升哪个 Minecraft/Forge 属性
  • 每点数值(平坦数值或百分比——使用 FLAT/PERCENT 按钮切换)
  • 示例:力量 → minecraft:generic.attack_damage +0.5 FLAT 每点

怪物缩放选项卡:

  • 同样的结构,但用于怪物等级缩放
  • 示例:minecraft:generic.max_health +2.0 FLAT 每怪物等级(高于 1 级)

更改保存到 dungeonmaster_scaling.json 和 dungeonmaster_stats.json。使用 /dungeon restart 应用。


/dungeon editbuff

打开增益编辑器 GUI(仅管理员)。

/dungeon editbuff

GUI 中的选项卡:

  • 我的增益:所有已定义增益的列表,点击可编辑
  • 编辑增益:名称字段,属性条目列表(属性选择器、数值、FLAT/PERCENT 切换)、保存/删除按钮
  • 添加增益:创建一个新的命名增益

更改保存到 dungeonmaster_buffs.json。使用 /dungeon restart 应用。


/dungeon buff

将增益分配给玩家。

/dungeon buff <玩家名> <增益名称>
  • <玩家名>:玩家名称(必须在线)
  • <增益名称>:已定义增益的精确名称(区分大小写)

示例:

/dungeon buff Steve 战士

/dungeon removebuff

从玩家身上移除当前增益。

/dungeon removebuff <玩家名>

/dungeon lootedit

打开战利品与奖励编辑器 GUI(仅管理员)。

/dungeon lootedit

三个选项卡:

稀有度选项卡:

  • 对于 7 个稀有度中的每一个:权重、颜色(十六进制 #RRGGBB)、最小加成、最大加成

属性选项卡:

  • 使用 < / > 箭头选择活动物品类别(或 + 添加新类别,x 删除自定义类别)
  • 编辑类别名称
  • 每个类别最多 10 个属性行:属性选择器(点击循环)、最小/最大值范围、模式(FLAT / PERCENT / BOTH)
  • "BOTH"意味着在物品生成时模式会随机选择

奖励选项卡:

  • 基础经验值、每玩家等级经验值
  • 基础金币、每玩家等级金币
  • 金币物品 ID(例如 minecraft:emerald)
  • 每次奖励的最小/最大物品数
  • 物品等级方差(±)
  • 需求方差(±)
  • 每物品等级数值缩放(例如 0.08 = 每级增强 8%)

更改保存到 dungeonmaster_loot.json。使用 /dungeon restart 应用。


/dungeon reward

给予玩家完整的地牢通关奖励。

/dungeon reward <玩家名>

触发经验值、金币和物品生成。为玩家打开奖励界面。


11. 玩家指令(完整参考)

玩家(无需 OP)可以访问:

/dungeon (主菜单)

打开主菜单也会在按 ESC 时自动触发。从菜单中可以:

  • 查看你的等级和经验值
  • 打开升级界面消耗技能点
  • 查看你当前的增益(如果有)

各个功能没有直接的聊天指令——一切通过 GUI 驱动。


12. GUI界面参考

界面 如何打开 适用对象
主菜单(地牢大师) 游戏中按 ESC 所有人
升级/属性分配 从主菜单 → "升级"按钮 所有人
自定义背包 按 E(生存模式) 所有人
增益编辑器 /dungeon editbuff 管理员
属性加成编辑器 /dungeon stateedit 管理员
战利品与奖励编辑器 /dungeon lootedit 管理员
奖励界面 由 /dungeon reward 触发 所有人(自动打开)

13. 配置文件

所有配置文件存储在 Minecraft 服务器/客户端的 config/ 文件夹中:

文件 内容
dungeonmaster_stats.json 属性加成条目(力量/敏捷/智力 → 玩家属性映射)
dungeonmaster_scaling.json 怪物每级属性缩放
dungeonmaster_buffs.json 所有已定义的增益及其属性条目
dungeonmaster_loot.json 稀有度权重、每个类别的属性池、奖励参数
dungeonmaster_xp.json 经验值公式参数(基础经验值、等级差加成、最小经验值)

所有文件在首次启动时都会使用合理的默认值创建。可以手动编辑或通过游戏内 GUI 编辑,然后运行 /dungeon restart。

示例:dungeonmaster_loot.json(部分)

{
  "rarities": {
    "COMMON": { "weight": 100, "color": 8421504, "minBonuses": 1, "maxBonuses": 1 },
    "LEGENDARY": { "weight": 1, "color": 16766720, "minBonuses": 6, "maxBonuses": 8 }
  },
  "categories": [
    {
      "id": "weapon",
      "displayName": "武器",
      "attributes": [
        { "attribute": "minecraft:generic.attack_damage", "minValue": 1.0, "maxValue": 8.0, "mode": "FLAT" },
        { "attribute": "minecraft:generic.attack_speed", "minValue": 2.0, "maxValue": 15.0, "mode": "BOTH" }
      ]
    },
    {
      "id": "armor",
      "displayName": "护甲",
      "attributes": [
        { "attribute": "minecraft:generic.max_health", "minValue": 2.0, "maxValue": 12.0, "mode": "FLAT" },
        { "attribute": "minecraft:generic.armor", "minValue": 1.0, "maxValue": 6.0, "mode": "FLAT" }
      ]
    }
  ],
  "baseXp": 50,
  "xpPerPlayerLevel": 5,
  "baseGold": 10,
  "goldPerPlayerLevel": 2,
  "goldItem": "minecraft:emerald",
  "minItems": 1,
  "maxItems": 3,
  "itemLevelVariance": 3,
  "requirementVariance": 5,
  "valuePerItemLevel": 0.08
}

14. 安装与需求

需求:

  • Minecraft 1.20.1
  • Forge 47.4.10 或更高版本
  • Java 17+

安装:

  1. 安装 Minecraft Forge 1.20.1
  2. 将 dungeonmaster-1.0.0.jar 放入 mods/ 文件夹
  3. 启动服务器/客户端一次以生成默认配置文件
  4. 通过游戏内 GUI(管理员)进行配置,或直接编辑配置文件
  5. 运行 /dungeon restart 以应用任何更改

服务端 vs. 客户端:

  • 模组必须安装在服务端和客户端上(它使用自定义网络数据包和 GUI 界面)
  • 所有游戏逻辑(升级、缩放、战利品生成)在服务端运行
  • GUI 渲染和名称标签显示在客户端运行

地牢大师——使用 Minecraft Forge 1.20.1 构建 | 包名:com.lemxy.dungeonmaster 你可以在我的Discord服务器上找到指南!