Handlers read from InPacket instead of SeekableLittleEndianAccessor

This commit is contained in:
P0nk
2021-08-22 22:10:19 +02:00
parent 2232022cf1
commit da2d8abc56
182 changed files with 1223 additions and 1230 deletions

View File

@@ -28,22 +28,22 @@ import client.SkillFactory;
import config.YamlConfig;
import constants.skills.*;
import net.AbstractMaplePacketHandler;
import net.packet.InPacket;
import net.server.Server;
import server.MapleStatEffect;
import server.life.MapleMonster;
import tools.PacketCreator;
import tools.data.input.SeekableLittleEndianAccessor;
import java.awt.*;
public final class SpecialMoveHandler extends AbstractMaplePacketHandler {
@Override
public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) {
public final void handlePacket(InPacket p, MapleClient c) {
MapleCharacter chr = c.getPlayer();
slea.readInt();
p.readInt();
chr.getAutobanManager().setTimestamp(4, Server.getInstance().getCurrentTimestamp(), 28);
int skillid = slea.readInt();
int skillid = p.readInt();
/*
if ((!GameConstants.isPqSkillMap(chr.getMapId()) && GameConstants.isPqSkill(skillid)) || (!chr.isGM() && GameConstants.isGMSkills(skillid)) || (!GameConstants.isInJobTree(skillid, chr.getJob().getId()) && !chr.isGM())) {
@@ -55,7 +55,7 @@ public final class SpecialMoveHandler extends AbstractMaplePacketHandler {
*/
Point pos = null;
int __skillLevel = slea.readByte();
int __skillLevel = p.readByte();
Skill skill = SkillFactory.getSkill(skillid);
int skillLevel = chr.getSkillLevel(skill);
if (skillid % 10000000 == 1010 || skillid % 10000000 == 1011) {
@@ -84,10 +84,10 @@ public final class SpecialMoveHandler extends AbstractMaplePacketHandler {
}
}
if (skillid == Hero.MONSTER_MAGNET || skillid == Paladin.MONSTER_MAGNET || skillid == DarkKnight.MONSTER_MAGNET) { // Monster Magnet
int num = slea.readInt();
int num = p.readInt();
for (int i = 0; i < num; i++) {
int mobOid = slea.readInt();
byte success = slea.readByte();
int mobOid = p.readInt();
byte success = p.readByte();
chr.getMap().broadcastMessage(chr, PacketCreator.catchMonster(mobOid, success), false);
MapleMonster monster = chr.getMap().getMonsterByOid(mobOid);
if (monster != null) {
@@ -101,7 +101,7 @@ public final class SpecialMoveHandler extends AbstractMaplePacketHandler {
}
}
}
byte direction = slea.readByte(); // thanks MedicOP for pointing some 3rd-party related issues with Magnet
byte direction = p.readByte(); // thanks MedicOP for pointing some 3rd-party related issues with Magnet
chr.getMap().broadcastMessage(chr, PacketCreator.showBuffEffect(chr.getId(), skillid, chr.getSkillLevel(skillid), 1, direction), false);
c.sendPacket(PacketCreator.enableActions());
return;
@@ -113,14 +113,14 @@ public final class SpecialMoveHandler extends AbstractMaplePacketHandler {
int gain = -lose * (ef.getY() / 100);
chr.addMP(gain);
} else if (skillid == SuperGM.HEAL_PLUS_DISPEL) {
slea.skip(11);
p.skip(11);
chr.getMap().broadcastMessage(chr, PacketCreator.showBuffEffect(chr.getId(), skillid, chr.getSkillLevel(skillid)), false);
} else if (skillid % 10000000 == 1004) {
slea.readShort();
p.readShort();
}
if (slea.available() == 5) {
pos = new Point(slea.readShort(), slea.readShort());
if (p.available() == 5) {
pos = new Point(p.readShort(), p.readShort());
}
if (chr.isAlive()) {
if (skill.getId() != Priest.MYSTIC_DOOR) {