Merge pull request #35 from ronancpl7/fix-change-maps-disorder

Fix mob status crash & dmg from map hazard
This commit is contained in:
Ponk
2021-05-23 07:44:17 +02:00
committed by GitHub
2 changed files with 10 additions and 3 deletions

View File

@@ -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<MonsterStatus, MonsterStatusEffect> 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<MonsterStatus, MonsterStatusEffect> 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);