AttributePlusTacZ-让AttributePlus 属性插件与TacZ 枪械模组完美联动吧|轻量级

原创 付费 AttributePlusTacZ-让AttributePlus 属性插件与TacZ 枪械模组完美联动吧|轻量级 1.3.2

请登录后获取
[MD] ### 新增 - **SX-Attribute 模式下,TacZ 重武器/爆炸的溅射伤害现在也吃属性。** 爆炸伤害是 `EntityDamageByBlockEvent`(无攻击实体),而 SX 的 `DamageData` 必须绑定 `EntityDamageByEntityEvent`。插件会构建一个仅用于计算的临时 `EntityDamageByEntityEvent`(射手→受击者),在其上跑 SX 的攻击/防御属性循环,再把计算结果(含取消判定)回写到真实的爆炸事件上,并发送命中反馈。 - 爆炸开关 `attribute-plus.apply-explosion-weapons` 现在对 AttributePlus 与 SX 两种模式都生效(关闭则两种模式都不让爆炸吃属性)。 ### 注意 - 与子弹一致,SX 爆炸计算同样依赖最近开火射手缓存定位射手,并跳过带方块来源的真实爆炸(床、重生锚等)。 - 该能力依赖 SX 计算接管(`sxManualCalcReady`),反射不可用时自动降级、不影响其余功能。 ### 修复 - **SX-Attribute 模式实测不生效的根因修复。** SX 自带的 `ListenerDamage` 只在伤害来源 `event.getDamager()` 是 Bukkit `Projectile`(且射手为 `LivingEntity`)或 `LivingEntity` 时才计算攻击/防御属性。而在 Mohist 上,TacZ 子弹的 Bukkit 包装是 `com.mohistmc.bukkit.entity.MohistModsEntity`(既不是 `Projectile` 也不是 `LivingEntity`,伤害 cause 为 `ENTITY_ATTACK`),因此 SX 直接 `return` 跳过,旧版调用的 `setProjectileData` 也永远不会被 SX 读取——SX 对 TacZ 伤害完全不生效。 - 现在 SX 模式下,当伤害来源是 SX 无法识别的包装实体时,插件会**自行驱动 SX 的属性计算**:用解析出的真实射手与受击者,构建 `DamageData`、遍历 `SubAttribute` 跑攻击/防御计算、回写伤害并触发 `SXDamageEvent`(与 SX 原生流程一致,命中反馈、全息等仍可联动)。当伤害来源是 SX 能原生处理的真实抛射物/生物时则不介入,避免重复计算。 [/MD]
[MD] ## v1.3.0 - AP 3.3.3.5 兼容 + 重武器爆炸真正生效 + 体验优化 > 自 v1.2.4 起的合并发布,整合了对最新 AttributePlus 的兼容、TacZ 重武器爆炸伤害修复,以及命令、配置、控制台与消息的全面优化。 ### 修复 - **兼容最新 AttributePlus 3.3.3.5。** `AttributeData` 在 3.3.3.5 把 `setLastAttackTime` / `setLastDefenseTime` 改名为 `setLastAttackMillis` / `setLastDefenseMillis`,旧名会抛 `NoSuchMethodException`(发生在 `setDamage` 之后,所以伤害仍生效,但命中反馈与战斗计时被中断、控制台刷错)。现在用反射同时兼容新旧两种方法名,找不到则安全跳过。 - **TacZ 重武器/爆炸伤害真正吃到 AP 属性。** 实测确认 TacZ 1.1.x 的爆炸溅射由原版式爆炸(`ProjectileExplosion`,传入 `null` 伤害源)结算,在 Bukkit 层表现为 **`EntityDamageByBlockEvent` / `BLOCK_EXPLOSION` 且无任何攻击实体**,旧版只监听 `EntityDamageByEntityEvent` 因此完全收不到。新增 `EntityDamageEvent` 监听,从“最近开火射手缓存”定位射手,并通过 AP 的 `noEventInit` 入口补算攻击/防御属性。 - 带方块来源的真实爆炸(床、重生锚、TNT 矿车等)会被跳过,避免误抢非 TacZ 的爆炸伤害。 ### 新增 - **重载命令 `/aptacz reload`**(别名 `/aptz`、`/apt`,权限 `attributeplustacz.admin`,默认 OP):热重载配置,无需重启即可调整调试、命中反馈、减半、无敌帧、爆炸开关等;带 Tab 补全。`hook-mode` 切换仍需重启。 - **命中反馈总开关** `messages.hit-feedback-enabled`:设 `false` 后 AP / SX 两种模式、原版命中标记与动作栏一律不发送命中反馈。 - **可自定义命中反馈文案** `messages.hit-feedback`:支持 `&` 颜色代码与 `{damage}` 占位符(默认 `&c⚔ &f命中 &c{damage} &7点伤害`),取代旧版写死的英文 `Damage: x`。 ### 优化 - 启动 / 卸载改为美化控制台横幅,显示版本、作者、桥接模式、命中反馈方式、各项加载状态与联系方式。 - `config.yml` 注释全部汉化。 [/MD]
[MD] ### 新增 - 新增 `attribute-plus.apply-explosion-weapons` 配置项,默认 `true`。 - AttributePlus 模式下,TacZ 重武器/爆炸武器造成的爆炸伤害现在可以享受 AP 加成。 - 爆炸武器识别会从 Bukkit `DamageSource` 的 direct/causing 实体、TacZ NMS 实体信息和最近 TacZ 射击记录中兜底解析射手。 - AttributePlus 临时标记新增 `isTacZExplosionWeapon`,便于属性公式或调试区分爆炸武器伤害。 ### 注意 - 如果服务器认为爆炸武器吃 AP 后数值过高,可将 `attribute-plus.apply-explosion-weapons` 改为 `false`。 [/MD]
[MD] ## v1.2.0 - SX-Attribute 兼容更新 ### 新增 - 新增 `SX-Attribute` 兼容模式,适配用户反馈的 SX-Attribute 3.8.5 环境。 - 新增 `hook-mode` 配置项,支持 `AUTO`、`SX`、`ATTRIBUTE_PLUS`、`OFF` 四种模式。 - 新增 SX 模式下的 TacZ 子弹投射物属性补全:在 SX 伤害计算前,把射手的 SX 属性数据写入 TacZ 子弹实体。 - 新增 SX 模式下的命中反馈:监听 `SXDamageEvent` 后发送 TacZ 命中反馈或 ActionBar 伤害提示。 - 新增 `WIKI.md`,补充安装、配置、模式说明和常见问题。 ### 修复 - 修复仅声明 `depend: [AttributePlus]` 导致未安装 AttributePlus、只安装 SX-Attribute 时插件无法加载的问题。 - 避免 SX 环境下继续沿用 AttributePlus 伤害接管流程,从而降低 TacZ 命中后“卡血”“卡无敌”的概率。 [/MD]
修复部分文本错误
后退
顶部 底部