GlymeraSlothGuard

GlymeraSlothGuard

放置一口魔法懒人守卫的大锅——三只懒人族战士会生成,在可配置的半径内巡逻并攻击敌对生物。仅限拥有者使用的方块,重启后自动重生,无需指令。

生活质量

懒猴守卫 - 魔法懒猴守卫大锅

放置一个魔法懒猴守卫大锅,周围会生成三名忠诚的懒猴战士。它们会在区域巡逻,并攻击任何靠得太近的敌对生物。大锅受放置者保护——只有你可以把它捡起来。

别忘了看看我其他精彩项目——请访问 GlymeraCraft 的主页 Discord:https://discord.gg/s5NRFWfxgy


什么是 GlymeraSlothGuard?

GlymeraSlothGuard 添加了一个可合成的方块——魔法懒猴守卫大锅——它能把世界上的任何地点变成防御区域。放置大锅后,一队懒猴战士会生成并开始巡逻。它们会在配置半径内检测敌对 NPC,锁定目标,追击并攻击,直到威胁消失。打碎大锅后,战士们会立即消失。

设计为固定式、低维护的防御:无需驯服、无需指令、无需维护。放置、防御、收回。

包含自带资源包,带有自定义的魔法懒猴守卫方块(一个带有冒泡声音和粒子的发光炼金大锅)以及懒猴战士 NPC 角色。


功能

固定守卫系统

  • 放置一个魔法懒猴守卫大锅,三名懒猴战士会在大锅周围生成
  • 战士们会在大锅周围的小范围内持续巡逻
  • 战士们对所有玩家友善(无法被玩家攻击伤害)
  • 战士们会受到敌对 NPC 的正常伤害,并可能在战斗中阵亡
  • 当所有战士阵亡时,只要大锅还在,它们会自动重生

战斗 AI

  • 每秒在距离大锅 actionRadius 格范围内扫描敌对生物
  • 智能目标选择:攻击那些对玩家有敌意 且能战斗 的生物——捕食者(剑齿虎!)、亡灵、特洛克、哥布林、外乡人、斯卡拉克、虚空生物。无害的野生动物(如鸟类和鱼类)会被忽略
  • 被驯服的生物、被骑乘的坐骑以及其他 Glymera 插件的同伴/商店 NPC 永远不会 被攻击
  • 通过 alwaysAttackRoles / neverAttackRoles 进行按角色覆盖(支持通配符)
  • 在一个大锅的所有战士之间轮询分配目标
  • 战士锁定目标后,使用原生 Hytale 追击 AI 进行追击
  • attackRange 距离内进行近战攻击,可配置伤害和挥击间隔
  • 内置卡住检测,如果战士 3 秒未移动,会将其推离原位
  • 战士被束缚在岗位上:任何东西(包括传送门)如果将它们位移到超出 actionRadius + 5 格范围,会立刻被拉回大锅

仅限放置者方块的保护

  • 大锅方块 其他玩家无法损坏、破坏或与之互动
  • 三层保护:DamageBlockEvent + BreakBlockEvent + UseBlockEvent.Pre
  • OP 可以始终进行互动(管理员覆盖)
  • 只有放置者打碎大锅时,才能以物品形式将其收回

自动生成 / 自动清除

  • 放置大锅后,会在下一次扫描滴答(约 5 秒)自动检测到放置——无需指令
  • 打碎大锅会自动清除所有已生成的战士
  • 大锅仍处于放置状态时,服务器重启后战士会自动重生
  • 战士永远不会被写入世界存档(非序列化实体)——在任意区块加载/重启序列中,它们不会增殖、复制或作为游荡者存活
  • 每 10 秒进行一次全局反游荡扫描,清除任何未被活跃大锅跟踪的战士(这也会自动清理旧版本插件产生的遗留物)

每位玩家限制

  • 每位玩家可以放置可配置数量的活跃魔法懒猴守卫大锅(默认:3)
  • 达到数量限制后,再放置时会有聊天提示,并且放置会被取消

持久化

  • 大锅数据以 JSON 格式存储在 plugins/GlymeraSlothGuard/data/blocks.json
  • 每个活跃大锅的放置者 UUID、世界、坐标会在服务器重启后保留
  • 战士在重启后区块加载时会重生

合成配方

  • 配方是可选的,通过配置启用(craftingEnabled,默认为真)
  • 工作台:炼金台,类别:炼金
  • 材料:1 × 大号炼金锅 + 50 × 生命精华材料
  • 产出:1 × 魔法懒猴守卫
  • 精华数量可配置

配置

config.json(plugins/GlymeraSlothGuard/config.json

maxBlocksPerPlayer       : 3
maxSlothsPerBlock        : 3
actionRadius             : 20
attackNeutral            : false
alwaysAttackRoles        : []
neverAttackRoles         : []
debugLogging             : false
combatTickMs             : 1000
blockScanTickMs          : 5000
attackDamage             : 25.0
attackIntervalMs         : 1500
attackRange              : 2.5
craftingEnabled          : true
recipeEssenceQuantity    : 50
字段 描述
maxBlocksPerPlayer 单个玩家可同时放置的最大魔法懒猴守卫数量
maxSlothsPerBlock 每个大锅生成的战士数量
actionRadius 大锅周围检测敌对 NPC 的范围(正方形区域)
attackNeutral 如果为真,战士也会攻击能战斗的中立生物。注意:在 Hytale 中这包括家畜(牛、马、山羊、公羊)和克洛普斯 NPC
alwaysAttackRoles 战士始终攻击的角色名,覆盖默认选择。精确名称或尾部 * 通配符(例如 "Scarak_*"
neverAttackRoles 战士从不攻击的角色名,覆盖所有其他设置
debugLogging 如果为真,会将目标选择、束缚拉回、生成和扫描移除信息打印到控制台
combatTickMs 战斗滴答运行频率(目标扫描 + 近战尝试)
blockScanTickMs 方块扫描运行频率(自动检测放置/移除)
attackDamage 每次挥击的伤害
attackIntervalMs 同一战士两次挥击之间的最小延迟
attackRange 战士能击中目标的距离
craftingEnabled 如果为真,生成炼金台配方;如果为假,移除配方
recipeEssenceQuantity 合成一个大锅所需的 生命精华 材料数量

安装

  1. GlymeraSlothGuard-5.0.0.jar 放入服务器的 mods/ 文件夹中
  2. 启动(或重启)服务器
  3. 完成。首次运行时会自动生成配置文件。

工作原理

放置流程

  1. 玩家放置魔法懒猴守卫大锅
  2. 方块扫描滴答(每 5 秒)在任意在线玩家 16 格范围内发现新方块
  3. 检查玩家数量限制。如果超限,通知玩家并停止跟踪该方块
  4. 以该玩家为放置者注册方块,并持久化到磁盘
  5. 在大锅周围 2 格、Y 轴 +1 处,以圆形生成三名战士

移除流程

  1. 放置者(或 OP)打碎大锅——其他所有玩家都会被三层保护阻挡
  2. 方块扫描滴答检测到方块消失,删除对应条目
  3. 所有关联的战士在同一滴答内被清除
  4. 持久化文件被更新

战斗流程

  1. 战斗滴答每 1 秒运行一次
  2. 对于每个至少有一名战士活着的大锅:扫描 actionRadius 范围内的所有实体,收集敌对 NPC
  3. 敌对 NPC 在战士之间进行轮询分配
  4. 每个战士的 LockedTarget 被设为其分配的敌对 NPC,并通过原生 Hytale AI 进行追击
  5. 当战士进入 attackRange 范围内时,通过 ECS 伤害系统对目标造成 attackDamage 伤害
  6. 当所有敌对 NPC 被清除后,锁定被清除,战士返回巡逻状态

防复制机制

战士以非序列化实体形式生成——引擎永远不会将它们写入世界存档,因此无法通过区块重载或重启进行复制。在此基础上,每 10 秒进行一次全局扫描,移除任何未被活跃大锅跟踪的懒猴战士 NPC(包括旧版本插件留下的遗留物)。结合自动重生逻辑,在所有服务器状态转换过程中,每个大锅的战士数量精确保持在 maxSlothsPerBlock


实用信息