diff options
author | Andrei Karas <akaras@inbox.ru> | 2018-04-07 01:04:43 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2018-04-07 01:54:33 +0300 |
commit | e74554d22e2308ffb7ecdcae07477b8414f64a3b (patch) | |
tree | d59c687df470788bac0f7ed146d87699b604f27b | |
parent | 8720859cf97b5b0865a17d6d96c17a3481a3c2ae (diff) | |
download | manaplus-e74554d22e2308ffb7ecdcae07477b8414f64a3b.tar.gz manaplus-e74554d22e2308ffb7ecdcae07477b8414f64a3b.tar.bz2 manaplus-e74554d22e2308ffb7ecdcae07477b8414f64a3b.tar.xz manaplus-e74554d22e2308ffb7ecdcae07477b8414f64a3b.zip |
Add packet SMSG_QUEST_LIST 0x09f8.
-rw-r--r-- | src/net/eathena/packetsin.inc | 1 | ||||
-rw-r--r-- | src/net/eathena/questrecv.cpp | 19 |
2 files changed, 19 insertions, 1 deletions
diff --git a/src/net/eathena/packetsin.inc b/src/net/eathena/packetsin.inc index bbc6dc805..01ae61d3e 100644 --- a/src/net/eathena/packetsin.inc +++ b/src/net/eathena/packetsin.inc @@ -925,6 +925,7 @@ if (packetVersion >= 20150513) packet(SMSG_BEING_MOVE, 0x09fd, -1, &BeingRecv::processBeingMove, 20150513); packet(SMSG_PLAYER_HEAL, 0x0a27, 8, &PlayerRecv::processPlayerHeal, 20150513); packet(SMSG_HOMUNCULUS_INFO, 0x09f7, 75, &HomunculusRecv::processHomunculusInfo, 20150513); + packet(SMSG_QUEST_LIST, 0x09f8, -1, &QuestRecv::processAddQuests, 20150513); } // 20150805 diff --git a/src/net/eathena/questrecv.cpp b/src/net/eathena/questrecv.cpp index e3277f030..8b709062d 100644 --- a/src/net/eathena/questrecv.cpp +++ b/src/net/eathena/questrecv.cpp @@ -94,7 +94,24 @@ void QuestRecv::processAddQuests(Net::MessageIn &msg) { msg.readInt32("time diff"); msg.readInt32("time"); - msg.readInt16("objectives count"); + const int cnt = msg.readInt16("objectives count"); + for (int d = 0; d < cnt; d ++) + { + if (msg.getVersion() >= 20150513) + { + msg.readInt32("hunt ident"); + msg.readInt32("mob type"); + } + msg.readInt32("mob id"); + if (msg.getVersion() >= 20150513) + { + msg.readInt16("level min"); + msg.readInt16("level max"); + } + msg.readInt16("hunt count"); + msg.readInt16("max count"); + msg.readString(24, "mob name"); + } } if (questsWindow != nullptr) questsWindow->updateQuest(var, val, 0, 0, 0); |