From 841c5a9c5fdba7c9607a3fcd9a2bf40e20bcca7f Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Thu, 12 Mar 2015 18:04:15 +0300 Subject: eathena: add partial support for packet SMSG_BOSS_MAP_INFO 0x0293. --- src/net/eathena/beinghandler.cpp | 19 +++++++++++++++++++ src/net/eathena/beinghandler.h | 2 ++ src/net/eathena/packets.h | 2 +- src/net/eathena/protocol.h | 1 + 4 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/net/eathena/beinghandler.cpp b/src/net/eathena/beinghandler.cpp index 3d17e8cfc..aaac021ab 100644 --- a/src/net/eathena/beinghandler.cpp +++ b/src/net/eathena/beinghandler.cpp @@ -131,6 +131,7 @@ BeingHandler::BeingHandler(const bool enableSync) : SMSG_TAEKWON_RANKS_LIST, SMSG_PK_RANKS_LIST, SMSG_GLADIATOR_FEEL_REQUEST, + SMSG_BOSS_MAP_INFO, 0 }; handledMessages = _messages; @@ -383,6 +384,10 @@ void BeingHandler::handleMessage(Net::MessageIn &msg) processGladiatorFeelRequest(msg); break; + case SMSG_BOSS_MAP_INFO: + processBossMapInfo(msg); + break; + default: break; } @@ -1830,4 +1835,18 @@ void BeingHandler::processGladiatorFeelRequest(Net::MessageIn &msg) msg.readUInt8("which"); } +void BeingHandler::processBossMapInfo(Net::MessageIn &msg) +{ + UNIMPLIMENTEDPACKET; + + msg.readUInt8("info type"); + msg.readInt32("x"); + msg.readInt32("y"); + msg.readInt16("min hours"); + msg.readInt16("min minutes"); + msg.readInt16("max hours"); + msg.readInt16("max minutes"); + msg.readString(24, "monster name"); // really can be used 51 byte? +} + } // namespace EAthena diff --git a/src/net/eathena/beinghandler.h b/src/net/eathena/beinghandler.h index 791f6a81e..b11553b09 100644 --- a/src/net/eathena/beinghandler.h +++ b/src/net/eathena/beinghandler.h @@ -150,6 +150,8 @@ class BeingHandler final : public MessageHandler, public Ea::BeingHandler static void processPkRanksList(Net::MessageIn &msg); static void processGladiatorFeelRequest(Net::MessageIn &msg); + + static void processBossMapInfo(Net::MessageIn &msg); }; } // namespace EAthena diff --git a/src/net/eathena/packets.h b/src/net/eathena/packets.h index 980bd1e7a..a7d355560 100644 --- a/src/net/eathena/packets.h +++ b/src/net/eathena/packets.h @@ -94,7 +94,7 @@ int16_t packet_lengths[] = 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // #0x0280 0, 0, 0, 6, 14, 0, 0, -1, 0, 12, 18, 0, 0, 0, 4, 0, - 4, 4, 0, 0, 0, 0, 0, 0, 8, 6, 0, 80, 0, -1, 0, 0, + 4, 4, 0, 70, 0, 0, 0, 0, 8, 6, 0, 80, 0, -1, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 107, 6, -1, 0, 7, 22, 191, 0, 0, 0, 0, 0, 0, // #0x02C0 diff --git a/src/net/eathena/protocol.h b/src/net/eathena/protocol.h index bb8b8bfa0..353278842 100644 --- a/src/net/eathena/protocol.h +++ b/src/net/eathena/protocol.h @@ -157,6 +157,7 @@ #define SMSG_IGNORE_NICK_ACK 0x00d1 #define SMSG_STARS_KILL 0x020e #define SMSG_GLADIATOR_FEEL_REQUEST 0x0253 +#define SMSG_BOSS_MAP_INFO 0x0293 #define SMSG_PLAYER_STATUS_CHANGE 0x0229 #define SMSG_PLAYER_STATUS_CHANGE2 0x028a -- cgit v1.2.3-60-g2f50