From 5da42e874c648262b868aa5b69323501d24703c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=AA=E9=A3=8E?= <1213457484@qq.com> Date: Thu, 6 Mar 2025 15:27:44 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E7=89=A9=E5=93=81=E9=87=91=E5=B8=81?= =?UTF-8?q?=E5=9B=9E=E6=94=B6=E6=9C=89=E9=97=AE=E9=A2=98=202.=20=E6=AD=A3?= =?UTF-8?q?=E5=B8=B8=E7=9A=84BOSS=E8=A1=80=E9=87=8F=E7=99=BE=E5=88=86?= =?UTF-8?q?=E6=AF=94=E6=98=BE=E7=A4=BA=EF=BC=9AInfinity%=203.=20=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E4=BC=A4=E5=AE=B3=E7=9A=84=E9=81=93=E5=85=B7=20?= =?UTF-8?q?=E5=8F=AA=E8=AF=BB=E5=8F=96=E4=B8=80=E7=BB=84=20=E6=9C=89?= =?UTF-8?q?=E5=A4=9A=E7=BB=84=E7=9A=84=E8=AF=9D=E4=B8=8D=E8=AF=BB=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/client/MapleCharacter.java | 6 +++--- src/client/inventory/MapleInventory.java | 10 ++++++++++ src/handling/channel/handler/DamageParse.java | 17 ++++++++++++++--- 3 files changed, 27 insertions(+), 6 deletions(-) diff --git a/src/client/MapleCharacter.java b/src/client/MapleCharacter.java index 59855e0..e76524c 100644 --- a/src/client/MapleCharacter.java +++ b/src/client/MapleCharacter.java @@ -5686,10 +5686,10 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject implements Se if (type == MapleInventoryType.EQUIP) { return this.inventory[MapleInventoryType.EQUIPPED.ordinal()].countById(itemid); } - final IItem findById = this.inventory[type.ordinal()].findById(itemid); - short quantity = findById.getQuantity(); + int byIdNum = this.inventory[type.ordinal()].findByIdNum(itemid); - return quantity; + + return byIdNum; } diff --git a/src/client/inventory/MapleInventory.java b/src/client/inventory/MapleInventory.java index 1fbdb9c..5af7a61 100644 --- a/src/client/inventory/MapleInventory.java +++ b/src/client/inventory/MapleInventory.java @@ -54,6 +54,16 @@ public class MapleInventory implements Iterable, Serializable { return null; } + public int findByIdNum(final int itemId) { + int re = 0; + for (final IItem item : this.inventory.values()) { + if (item.getItemId() == itemId) { + re+=item.getQuantity(); + } + } + return re; + } + public IItem findByUniqueId(final int itemId) { for (final IItem item : this.inventory.values()) { if (item.getUniqueId() == itemId) { diff --git a/src/handling/channel/handler/DamageParse.java b/src/handling/channel/handler/DamageParse.java index d676584..25f9523 100644 --- a/src/handling/channel/handler/DamageParse.java +++ b/src/handling/channel/handler/DamageParse.java @@ -441,7 +441,7 @@ public class DamageParse { long mobMaxHp = monster.getMaxHP(); if (mobMaxHp == 0){ - monster.getMobMaxHp(); + mobMaxHp = monster.getMobMaxHp(); } double percentage = ((double) hp / mobMaxHp) * 100; // 显式转换为浮点数并计算百分比‌:ml-citation{ref="1,3" data="citationList"} @@ -1003,9 +1003,20 @@ public class DamageParse { monster.damage(player, newtotDamageToOneMonster, true, attack.skill); if (monster.getHp() > 0) { - player.dropMessage(-1, "当前怪物血量为: " + monster.getHp()); - } + long hp = monster.getHp(); + long mobMaxHp = monster.getMaxHP(); + if (mobMaxHp == 0) { + mobMaxHp = monster.getMobMaxHp(); + } + + double percentage = ((double) hp / mobMaxHp) * 100; // 显式转换为浮点数并计算百分比‌:ml-citation{ref="1,3" data="citationList"} + String result = String.format("%.2f%%", percentage); + + + double l = (double) hp / mobMaxHp; + player.dropMessage(-1, "当前怪物血量为:" + hp + " " + result); + } if (monster.isBuffed(MonsterStatus.MAGIC_DAMAGE_REFLECT)) { player.addHP(-(7000 + Randomizer.nextInt(8000)));