Map chair skill + Hired Merchant fix
Changed map chair bonus healing mechanic to be a player skill, instead of promptly available for all players (healing buff takes place only if the player has the skill). Hired Merchant now properly checks for a space on the inventory before permitting a player to buy an item/bundle. Minor fix with concurrency on MapleStorage.
This commit is contained in:
@@ -22,23 +22,28 @@
|
||||
package net.server.channel.handlers;
|
||||
|
||||
import client.MapleClient;
|
||||
import client.MapleCharacter;
|
||||
import net.AbstractMaplePacketHandler;
|
||||
import tools.MaplePacketCreator;
|
||||
import tools.data.input.SeekableLittleEndianAccessor;
|
||||
|
||||
public final class CancelChairHandler extends AbstractMaplePacketHandler {
|
||||
|
||||
|
||||
@Override
|
||||
public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) {
|
||||
int id = slea.readShort();
|
||||
MapleCharacter mc = c.getPlayer();
|
||||
|
||||
if (id == -1) { // Cancel Chair
|
||||
c.getPlayer().setChair(0);
|
||||
c.getPlayer().stopChairTask();
|
||||
mc.setChair(0);
|
||||
mc.unregisterChairBuff();
|
||||
|
||||
c.announce(MaplePacketCreator.cancelChair(-1));
|
||||
c.getPlayer().getMap().broadcastMessage(c.getPlayer(), MaplePacketCreator.showChair(c.getPlayer().getId(), 0), false);
|
||||
} else { // Use In-Map Chair
|
||||
c.getPlayer().setChair(id);
|
||||
c.getPlayer().startChairTask();
|
||||
mc.setChair(id);
|
||||
mc.registerChairBuff();
|
||||
|
||||
c.announce(MaplePacketCreator.cancelChair(id));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,6 +32,7 @@ import tools.data.input.SeekableLittleEndianAccessor;
|
||||
* @author Matze
|
||||
*/
|
||||
public final class NPCMoreTalkHandler extends AbstractMaplePacketHandler {
|
||||
@Override
|
||||
public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) {
|
||||
byte lastMsg = slea.readByte(); // 00 (last msg type I think)
|
||||
byte action = slea.readByte(); // 00 = end chat, 01 == follow
|
||||
|
||||
@@ -33,6 +33,7 @@ import tools.MaplePacketCreator;
|
||||
import tools.data.input.SeekableLittleEndianAccessor;
|
||||
|
||||
public final class NPCTalkHandler extends AbstractMaplePacketHandler {
|
||||
@Override
|
||||
public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) {
|
||||
if (!c.getPlayer().isAlive()) {
|
||||
c.announce(MaplePacketCreator.enableActions());
|
||||
|
||||
@@ -26,7 +26,6 @@ import client.MapleClient;
|
||||
import net.AbstractMaplePacketHandler;
|
||||
import scripting.quest.QuestScriptManager;
|
||||
import server.quest.MapleQuest;
|
||||
import tools.MaplePacketCreator;
|
||||
import tools.data.input.SeekableLittleEndianAccessor;
|
||||
|
||||
/**
|
||||
@@ -34,6 +33,7 @@ import tools.data.input.SeekableLittleEndianAccessor;
|
||||
* @author Matze
|
||||
*/
|
||||
public final class QuestActionHandler extends AbstractMaplePacketHandler {
|
||||
@Override
|
||||
public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) {
|
||||
byte action = slea.readByte();
|
||||
short questid = slea.readShort();
|
||||
|
||||
Reference in New Issue
Block a user