Quickslot Bindings

Added quickslot bindings, courtesy of @shavitush.
This commit is contained in:
ronancpl
2019-11-19 01:15:52 -03:00
parent 6d57eb1033
commit 661dcf0a96
12 changed files with 213 additions and 5 deletions

View File

@@ -273,6 +273,7 @@ public final class PacketProcessor {
registerHandler(RecvOpcode.MOVE_DRAGON, new MoveDragonHandler());
registerHandler(RecvOpcode.OPEN_ITEMUI, new RaiseUIStateHandler());
registerHandler(RecvOpcode.USE_ITEMUI, new RaiseIncExpHandler());
registerHandler(RecvOpcode.CHANGE_QUICKSLOT, new QuickslotKeyMappedModifiedHandler());
}
}
}

View File

@@ -173,6 +173,7 @@ public enum RecvOpcode {
DAMAGE_SUMMON(0xB1),
BEHOLDER(0xB2),
MOVE_DRAGON(0xB5),
CHANGE_QUICKSLOT(0xB7),//CP_QuickslotKeyMappedModified
MOVE_LIFE(0xBC),
AUTO_AGGRO(0xBD),
FIELD_DAMAGE_MOB(0xBF),
@@ -202,6 +203,7 @@ public enum RecvOpcode {
MTS_OPERATION(0xFD),
USE_MAPLELIFE(0x100),
USE_HAMMER(0x104);
private int code = -2;
private RecvOpcode(int code) {

View File

@@ -188,6 +188,7 @@ public enum SendOpcode {
ARIANT_ARENA_SHOW_RESULT(0x9B),
PYRAMID_GAUGE(0x9D),
PYRAMID_SCORE(0x9E),
QUICKSLOT_INIT(0x9F),//LP_QuickslotMappedInit
SPAWN_PLAYER(0xA0),
REMOVE_PLAYER_FROM_MAP(0xA1),
CHATTEXT(0xA2), //0

View File

@@ -23,7 +23,7 @@ package net.server.channel.handlers;
import constants.game.GameConstants;
import client.MapleClient;
import client.MapleKeyBinding;
import client.keybind.MapleKeyBinding;
import client.Skill;
import client.SkillFactory;
import client.autoban.AutobanFactory;

View File

@@ -53,7 +53,7 @@ import client.MapleClient;
import client.MapleDisease;
import client.MapleFamily;
import client.MapleFamilyEntry;
import client.MapleKeyBinding;
import client.keybind.MapleKeyBinding;
import client.MapleMount;
import client.SkillFactory;
import client.inventory.Equip;
@@ -239,6 +239,7 @@ public final class PlayerLoggedinHandler extends AbstractMaplePacketHandler {
}
}
player.sendKeymap();
player.sendQuickmap();
player.sendMacros();
// pot bindings being passed through other characters on the account detected thanks to Croosade dev team

View File

@@ -0,0 +1,34 @@
package net.server.channel.handlers;
import client.MapleClient;
import client.keybind.MapleQuickslotBinding;
import net.AbstractMaplePacketHandler;
import tools.data.input.SeekableLittleEndianAccessor;
/**
*
* @author Shavit
*/
public class QuickslotKeyMappedModifiedHandler extends AbstractMaplePacketHandler
{
@Override
public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c)
{
// Invalid size for the packet.
if(slea.available() != MapleQuickslotBinding.QUICKSLOT_SIZE * Integer.BYTES ||
// not logged in-game
c.getPlayer() == null)
{
return;
}
byte[] aQuickslotKeyMapped = new byte[MapleQuickslotBinding.QUICKSLOT_SIZE];
for(int i = 0; i < MapleQuickslotBinding.QUICKSLOT_SIZE; i++)
{
aQuickslotKeyMapped[i] = (byte) slea.readInt();
}
c.getPlayer().m_pQuickslotKeyMapped = new MapleQuickslotBinding(aQuickslotKeyMapped);
}
}