diff --git a/src/client/MapleCharacter.java b/src/client/MapleCharacter.java index b87e252..bee86c0 100644 --- a/src/client/MapleCharacter.java +++ b/src/client/MapleCharacter.java @@ -2026,7 +2026,8 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject implements Se bl = Math.max(bl, (blobj.getBl())); } } - num = (num + (num*bl/100)); + long aa = (long)num *bl; + num = (int) (num + (aa/100)); switch (item1.getItemId()) { case 0: @@ -5334,10 +5335,24 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject implements Se } } - Num = Num.add((this.getQG()).divide(BigInteger.valueOf(100))); - Num = Num.add((this.getQGjs()).multiply(BigInteger.valueOf(100))); - Num = Num.add((this.getDD()).multiply(BigInteger.valueOf(666))); - Num = Num.add((this.getDB()).multiply(BigInteger.valueOf(1000))); + BigInteger qg = this.getQG(); + if (qg!=null) { + Num = Num.add(qg.divide(BigInteger.valueOf(100))); + } + BigInteger qgjs = this.getQGjs(); + if (qgjs!=null) { + Num = Num.add(qgjs.divide(BigInteger.valueOf(100))); + } + BigInteger dd = this.getDD(); + if (dd!=null) { + Num = Num.add(dd.divide(BigInteger.valueOf(666))); + } + BigInteger db = this.getDB(); + if (db!=null) { + Num = Num.add(this.getDB().divide(BigInteger.valueOf(1000))); + } + + return DamageParse.process(Num.toString()); } diff --git a/src/client/PlayerStats.java b/src/client/PlayerStats.java index d8ae396..5e29ada 100644 --- a/src/client/PlayerStats.java +++ b/src/client/PlayerStats.java @@ -639,9 +639,7 @@ public class PlayerStats implements Serializable { dsbbh++; if (!first_login) { for (AotuNpc npc : Start.aotuNpcs) { - if ((npc.getMapId() == chra.getMapId()||npc.getMapId()==0) && (npc.getItemId() == 0 || chra.getItemNum(npc.getItemId())>=npc.getItemNum()) && (npc.getEquId() == 0 || chra.hasEquipped(npc.getEquId()))) { - Start.executor.schedule(() -> dsnpcfw(chra, npc,dsbbh), npc.getTime(), TimeUnit.MILLISECONDS); - } + Start.executor.schedule(() -> dsnpcfw(chra, npc,dsbbh), npc.getTime(), TimeUnit.MILLISECONDS); } } @@ -985,10 +983,12 @@ public class PlayerStats implements Serializable { private void dsnpcfw(MapleCharacter chra, AotuNpc aotuNpc,int dsbbh2) { if (dsbbh2!=this.dsbbh)return; - if ((aotuNpc.getMapId() == chra.getMapId()||aotuNpc.getMapId()==0) && (aotuNpc.getItemId() == 0 || chra.getItemNum(aotuNpc.getItemId())>=aotuNpc.getItemNum()) && (aotuNpc.getEquId() == 0 || chra.hasEquipped(aotuNpc.getEquId()))) { - final NPCConversationManager cm = NPCScriptManager.getInstance().getCM(chra.getClient()); - if (cm == null || chra.getConversation() == 0 || cm.getLastMsg() != 4) { - NPCScriptManager.getInstance().startds(chra.getClient(), aotuNpc.getNpcId(),0,aotuNpc.getScriptsName()); + if ((aotuNpc.getMapId() == chra.getMapId()||aotuNpc.getMapId()==0)) { + if ((aotuNpc.getItemId() == 0 || chra.getItemNum(aotuNpc.getItemId())>=aotuNpc.getItemNum()) && (aotuNpc.getEquId() == 0 || chra.hasEquipped(aotuNpc.getEquId()))){ + final NPCConversationManager cm = NPCScriptManager.getInstance().getCM(chra.getClient()); + if (cm == null || chra.getConversation() == 0 || cm.getLastMsg() != 4) { + NPCScriptManager.getInstance().startds(chra.getClient(), aotuNpc.getNpcId(),0,aotuNpc.getScriptsName()); + } } Start.executor.schedule(()->dsnpcfw(chra,aotuNpc,dsbbh2), aotuNpc.getTime(), TimeUnit.MILLISECONDS); } diff --git a/src/gui/tw/AotuNpc.java b/src/gui/tw/AotuNpc.java index 340ae2d..1071153 100644 --- a/src/gui/tw/AotuNpc.java +++ b/src/gui/tw/AotuNpc.java @@ -13,6 +13,8 @@ public class AotuNpc { int equId; + int time; + public int getItemNum() { return itemNum; } @@ -21,7 +23,7 @@ public class AotuNpc { this.itemNum = itemNum; } - int time; + public int getMapId() { return mapId; diff --git a/src/gui/tw/rw/XuanShangRenWu.java b/src/gui/tw/rw/XuanShangRenWu.java index 4b8a871..1e6ddd0 100644 --- a/src/gui/tw/rw/XuanShangRenWu.java +++ b/src/gui/tw/rw/XuanShangRenWu.java @@ -1,6 +1,8 @@ package gui.tw.rw; import gui.Start; +import provider.MapleDataTool; +import server.life.MapleLifeFactory; import java.util.ArrayList; import java.util.List; @@ -53,6 +55,7 @@ public class XuanShangRenWu { } public void setMobId(int mobId) { + this.setMobName(MapleDataTool.getString((this.getMobId() + "/name"), MapleLifeFactory.mobStringData, "未知怪物")); this.mobId = mobId; }