From cee847abc0873504b54022c3af8cdf316e2c06c5 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Fri, 18 May 2018 20:46:07 +0300 Subject: Add packet CMSG_PRIVATE_AIRSHIP_REQUEST 0x0a49. --- src/net/eathena/npchandler.cpp | 11 +++++++++++ src/net/eathena/npchandler.h | 3 +++ src/net/eathena/packetsout.inc | 7 +++++++ src/net/npchandler.h | 3 +++ src/net/tmwa/npchandler.cpp | 5 +++++ src/net/tmwa/npchandler.h | 3 +++ 6 files changed, 32 insertions(+) diff --git a/src/net/eathena/npchandler.cpp b/src/net/eathena/npchandler.cpp index 7a9f30a5b..c7783f363 100644 --- a/src/net/eathena/npchandler.cpp +++ b/src/net/eathena/npchandler.cpp @@ -46,6 +46,7 @@ #include "debug.h" extern int packetVersion; +extern int packetVersionRe; namespace EAthena { @@ -362,4 +363,14 @@ BeingId NpcHandler::getNpc(Net::MessageIn &msg, return npcId; } +void NpcHandler::requestAirship(const std::string &mapName, + const int itemId) const +{ + if (packetVersionRe < 20180321) + return; + createOutPacket(CMSG_PRIVATE_AIRSHIP_REQUEST); + outMsg.writeString(mapName, 16, "map name"); + outMsg.writeInt16(itemId, "item"); +} + } // namespace EAthena diff --git a/src/net/eathena/npchandler.h b/src/net/eathena/npchandler.h index 533c0468b..fb2e741e9 100644 --- a/src/net/eathena/npchandler.h +++ b/src/net/eathena/npchandler.h @@ -94,6 +94,9 @@ class NpcHandler final : public Ea::NpcHandler void selectArrow(const int nameId) const override final; void selectAutoSpell(const int skillId) const override final; + + void requestAirship(const std::string &mapName, + const int itemId) const override final; }; } // namespace EAthena diff --git a/src/net/eathena/packetsout.inc b/src/net/eathena/packetsout.inc index 34ac2b436..70e1e25f2 100644 --- a/src/net/eathena/packetsout.inc +++ b/src/net/eathena/packetsout.inc @@ -334,6 +334,7 @@ packet(CMSG_CLAN_MESSAGE, 0x0000, 0, nullptr); packet(CMSG_WINDOW_OPEN_REQUEST2, 0x0000, 0, nullptr); packet(CMSG_ATTENDANCE_REWARD, 0x0000, 0, nullptr); packet(CMSG_MAP_BLOCK_PLAY_CANCEL, 0x0000, 0, nullptr); +packet(CMSG_PRIVATE_AIRSHIP_REQUEST, 0x0000, 0, nullptr); #else // 20040713 if (packetVersion >= 20040713) @@ -1364,6 +1365,12 @@ if (packetVersionRe >= 20180307) packet(CMSG_ATTENDANCE_REWARD, 0x0aef, 2, clif->pAttendanceRewardRequest); } +// re 20180321 +if (packetVersionRe >= 20180321) +{ + packet(CMSG_PRIVATE_AIRSHIP_REQUEST, 0x0a49, 20, clif->pPrivateAirshipRequest); +} + // main 20180404 if (packetVersionMain >= 20180404) { diff --git a/src/net/npchandler.h b/src/net/npchandler.h index dbf73f259..aaec5f80f 100644 --- a/src/net/npchandler.h +++ b/src/net/npchandler.h @@ -113,6 +113,9 @@ class NpcHandler notfinal virtual void selectAutoSpell(const int skillId) const = 0; + virtual void requestAirship(const std::string &mapName, + const int itemId) const = 0; + virtual NpcDialog *getCurrentNpcDialog() const = 0; }; diff --git a/src/net/tmwa/npchandler.cpp b/src/net/tmwa/npchandler.cpp index c52333795..c577bc6a1 100644 --- a/src/net/tmwa/npchandler.cpp +++ b/src/net/tmwa/npchandler.cpp @@ -243,4 +243,9 @@ BeingId NpcHandler::getNpc(Net::MessageIn &msg, return npcId; } +void NpcHandler::requestAirship(const std::string &mapName A_UNUSED, + const int itemId A_UNUSED) const +{ +} + } // namespace TmwAthena diff --git a/src/net/tmwa/npchandler.h b/src/net/tmwa/npchandler.h index d02d837ef..3cfd24aea 100644 --- a/src/net/tmwa/npchandler.h +++ b/src/net/tmwa/npchandler.h @@ -93,6 +93,9 @@ class NpcHandler final : public Ea::NpcHandler void selectArrow(const int nameId) const override final; void selectAutoSpell(const int skillId) const override final; + + void requestAirship(const std::string &mapName, + const int itemId) const override final; }; } // namespace TmwAthena -- cgit v1.2.3-60-g2f50