diff --git a/sql/2-db_drops.sql b/sql/2-db_drops.sql index 98e29c3f9f..38cfc9351b 100644 --- a/sql/2-db_drops.sql +++ b/sql/2-db_drops.sql @@ -20299,8 +20299,6 @@ USE `cosmic`; (5130106, 2022001, 1, 1, 0, 20000), (6130102, 2022001, 1, 1, 0, 20000), (6130103, 2022001, 1, 1, 0, 20000), -(6130200, 2022001, 1, 1, 0, 20000), -(6130201, 2022001, 1, 1, 0, 20000), (2220000, 1322001, 1, 1, 0, 8000), (9400551, 4031447, 1, 1, 0, 999999); diff --git a/src/main/java/tools/MaplePacketCreator.java b/src/main/java/tools/MaplePacketCreator.java index 453561979c..72f3fe3963 100644 --- a/src/main/java/tools/MaplePacketCreator.java +++ b/src/main/java/tools/MaplePacketCreator.java @@ -73,6 +73,7 @@ import java.sql.SQLException; import java.util.List; import java.util.*; import java.util.Map.Entry; +import java.util.stream.Collectors; /** * @@ -1439,7 +1440,12 @@ public class MaplePacketCreator { private static void encodeTemporary(MaplePacketLittleEndianWriter mplew, Map stati) { int pCounter = -1, mCounter = -1; - + + stati = stati.entrySet() // to patch some status crashing players + .stream() + .filter(e -> !(e.getKey().equals(MonsterStatus.WATK) || e.getKey().equals(MonsterStatus.WDEF))) + .collect(Collectors.toMap(e -> e.getKey(), e -> e.getValue())); + writeLongEncodeTemporaryMask(mplew, stati.keySet()); // packet structure mapped thanks to Eric for (Entry s : stati.entrySet()) { @@ -2663,6 +2669,9 @@ public class MaplePacketCreator { mplew.writeShort(SendOpcode.DAMAGE_PLAYER.getValue()); mplew.writeInt(cid); mplew.write(skill); + if (skill == -3) { + mplew.writeInt(0); + } mplew.writeInt(damage); if(skill != -4) { mplew.writeInt(monsteridfrom);