搜索

0.30.0 全物种 AI 与攻击分型

受控导航、攻击分型、真实投射物、地形保护与公共/独立宠物配置。

行为设计

参考 CombatPets 官方仓库 的跟随优先、战斗分型、可见性、蓄力及冷却设计,基于 LiPet 现有业务独立实现。参考提交为 b0e7fbd3b07b73d3937b7d1a59ed11a4ffb615a7;不复制其源码,也不引入其版本专属 NMS 模块。

普通地面生物保留原生寻路;Brain、飞行、水生及无正常导航能力的生物使用受控局部路点。路径有访问上限和缓存,只读取已加载、当前区域可安全访问的区块。水生路径保持在水中;路径避开岩浆、火、仙人掌、岩浆块和营火。普通跟随不依赖远距离反复传送,连续无路或距离过远时才沿原有安全召回流程处理。

本次变化

  • 所有类型不再统一使用固定三格范围的瞬时近战。攻击按碰撞箱边缘判距,并按物种选择方式、范围、蓄力和冷却。
  • 弓箭、弩、三叉戟、风弹、火球、凋灵之首、龙火球、羊驼唾沫、雪球、潜影弹、药水使用真实有限寿命投射物。命中才结算宠物属性伤害;非锁定目标、主人和无权限目标不会被这些受控弹道伤害。
  • 三叉戟额外校验每 tick 实际飞过的短距离线段,补足窄目标漏碰。先检查方块和最近实体,并继续触发标准命中事件;不把传送或异常位移当成弹道,也不跨未加载/其他 Folia 区域读实体。
  • 守卫者使用粒子蓄力射线;唤魔者使用视觉尖牙;青蛙有舌头目标;山羊有冲撞节奏;苦力怕使用不破坏方块、不自杀的爆炸表现。这些是宠物化攻击,不承诺与原版敌对生物的所有效果完全相同。
  • 监守者、铁傀儡、劫掠兽、疣猪兽等发送对应的攻击实体状态;没有专属攻击动画的原版动物不能凭 Bukkit 增加新的客户端动画。
  • 原版 Brain/特殊头部不再抢占受控导航;坐下、骑乘、牵引、失去合法目标或返回主人时取消蓄力。正在飞行的弹丸也会在命中时重新检查目标和状态。
  • 修复鱿鱼无 AI 时不消费移动速度、史莱姆整格边缘卡墙、巨人绕障、海龟陆地追击、龙火球撞自身部件和火球出生点偏移导致瞄准错误。
  • 补齐兔子的连续跳跃追击,以及僵尸疣猪兽、唤魔者、幻术师的原生目标/施法接管,避免绕过插件攻击流程误伤或隔墙施法。
  • 龙处于受控悬停状态时使用限速短距位置步进;潜影贝使用沿路径逐格位移。两者不是普通步行,不能把这两类的测试说成“无传送跟随”。名牌独立跟随,Folia 使用异步局部位移。
  • 宠物本体及有归属的攻击不能破坏地形,防止龙身体破坏、爆炸和原生方块变更。

配置:统一默认与单宠覆盖

统一配置位于 plugins/LiPet/pet-types.yml:

defaults:
  behavior:
    attack:
      # AUTO 按物种选择;也可指定下表中的攻击方式。
      style: AUTO
      # 碰撞箱边缘距离;0 使用物种默认,其他取值大于 0 且不超过 32 格。
      range: 0
      # 释放间隔,单位 tick;0 使用物种默认,其他取值 1-1200。蓄力另计。
      cooldown-ticks: 0

独立宠物 YML 的 behavior.attack 可只写需要不同的字段,其余继承公共配置:

behavior:
  attack:
    # 本宠物改为弓箭攻击,其他属性不受影响。
    style: BOW
    # 释放间隔 40 tick;蓄力另计。
    cooldown-ticks: 40

升级仅补充缺失的公共节点及中文注释,不覆盖管理员现有值,不向所有独立文件写死默认参数。MM 等级技能仍沿用原来的独立配置和触发流程;自定义模型的专属动画需要相应模型/技能配置。

方式 AUTO 默认类型 范围 / 释放间隔 / 蓄力(tick)
MELEE 无其他专属方式的类型 1.8 / 20 / 0
BOW 骷髅、流浪者、沼骸、焦骸、幻术师 12 / 30 / 10
CROSSBOW 掠夺者 12 / 36 / 16
TRIDENT 溺尸 10 / 30 / 10
SMALL_FIREBALL / WIND_CHARGE 烈焰人 / 旋风人 12 / 30 / 12
FIREBALL / DRAGON_FIREBALL 恶魂 / 末影龙 16 / 40 / 20
WITHER_SKULL 凋灵 14 / 30 / 12
SPIT 羊驼、行商羊驼 10 / 26 / 8
SNOWBALL 雪傀儡 10 / 20 / 6
SHULKER_BULLET 潜影贝 12 / 36 / 12
POTION 女巫 10 / 36 / 12
BEAM 守卫者、远古守卫者 12 / 36 / 24
FANGS 唤魔者 8 / 36 / 16
TONGUE 青蛙 3 / 24 / 6
RAM 山羊 2.2 / 28 / 8
BURST 苦力怕 2.5 / 36 / 16

攻击默认值不会改变已捕获宠物的外观、背包、等级和属性数据。药水、爆炸、尖牙等原版范围副作用不直接照搬,避免误伤旁观生物。

验证范围

逐物种报告见 AI 逐物种测试记录。测试使用隔离服真实实体和服务端代理玩家,直接运行 LiPet 的索敌、跟随、战斗与坐下/召回流程,而非只测辅助方法。

服务端结果不等同于真人客户端动画、第一人称骑乘或所有自定义 MM/ModelEngine 模型的视觉验收。正式服必须正常重启加载新 Jar,/lipet reload 不能替换 Java 代码。