summaryrefslogtreecommitdiff
path: root/src/net/eathena
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/eathena')
-rw-r--r--src/net/eathena/npchandler.cpp11
-rw-r--r--src/net/eathena/npchandler.h3
-rw-r--r--src/net/eathena/packetsout.inc7
3 files changed, 21 insertions, 0 deletions
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)
{