diff options
author | Dastgir <dastgirpojee@rocketmail.com> | 2016-01-18 16:53:43 +0530 |
---|---|---|
committer | Asheraf <acheraf1998@gmail.com> | 2018-03-12 18:06:14 +0000 |
commit | 4896facf53cf6d6ea60dba22f72389721d502673 (patch) | |
tree | e77486997ed0d8241e401413c4206a35ad984023 | |
parent | 8e8e0a2da0f9696c5965e79237642b3dee36dd78 (diff) | |
download | hercules-4896facf53cf6d6ea60dba22f72389721d502673.tar.gz hercules-4896facf53cf6d6ea60dba22f72389721d502673.tar.bz2 hercules-4896facf53cf6d6ea60dba22f72389721d502673.tar.xz hercules-4896facf53cf6d6ea60dba22f72389721d502673.zip |
Extended ADD_QUEST to support new packet
-rw-r--r-- | src/map/clif.c | 11 | ||||
-rw-r--r-- | src/map/packets_struct.h | 15 |
2 files changed, 25 insertions, 1 deletions
diff --git a/src/map/clif.c b/src/map/clif.c index e996db1f1..f0c090a03 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -16222,6 +16222,7 @@ void clif_quest_send_mission(struct map_session_data *sd) /// Notification about a new quest (ZC_ADD_QUEST). /// 02b3 <quest id>.L <active>.B <start time>.L <expire time>.L <mobs>.W { <mob id>.L <mob count>.W <mob name>.24B }*3 +/// 09f9 <quest id>.L <active>.B <start time>.L <expire time>.L <mobs>.W { <hunt identification>.L <mob type>.L <mob id>.L <min level>.L <max level>.L <mob count>.W <mob name>.24B }*3 void clif_quest_add(struct map_session_data *sd, struct quest *qd) { int i, len; @@ -16252,7 +16253,17 @@ void clif_quest_add(struct map_session_data *sd, struct quest *qd) struct mob_db *monster; monster = mob->db(qi->objectives[i].mob); + +#if PACKETVER >= 20150513 + packet->objectives[i].huntIdent = (qd->quest_id * 1000) + i; + packet->objectives[i].mobType = 0; // Info Needed +#endif packet->objectives[i].mob_id = qi->objectives[i].mob; +#if PACKETVER >= 20150513 + // Info Needed + packet->objectives[i].levelMin = 0; + packet->objectives[i].levelMax = 0; +#endif packet->objectives[i].huntCount = qd->count[i]; memcpy(packet->objectives[i].mobName, monster->jname, NAME_LENGTH); } diff --git a/src/map/packets_struct.h b/src/map/packets_struct.h index c8ed85947..309c5f007 100644 --- a/src/map/packets_struct.h +++ b/src/map/packets_struct.h @@ -357,7 +357,11 @@ enum packet_headers { clanLeave = 0x0989, ///< ZC_ACK_CLAN_LEAVE clanMessage = 0x098E, ///< ZC_NOTIFY_CLAN_CHAT #endif +#if PACKETVER >= 20150513 // [4144] 0x09f9 handled in client from 2014-10-29aRagexe and 2014-03-26cRagexeRE + questAddType = 0x9f9, +#else questAddType = 0x2b3, +#endif // PACKETVER < 20150513 }; #if !defined(sun) && (!defined(__NETBSD__) || __NetBSD_Version__ >= 600000000) // NetBSD 5 and Solaris don't like pragma pack but accept the packed attribute @@ -1610,9 +1614,18 @@ struct PACKET_ZC_NOTIFY_CLAN_CHAT { /** * PACKET_ZC_MISSION_HUNT (PACKETVER < 20150513) + * PACKET_ZC_MISSION_HUNT_EX (PACKETVER >= 20150513) */ struct packet_quest_hunt_sub { +#if PACKETVER >= 20150513 + uint32 huntIdent; + uint32 mobType; +#endif int32 mob_id; +#if PACKETVER >= 20150513 + int16 levelMin; + int16 levelMax; +#endif int16 huntCount; char mobName[NAME_LENGTH]; } __attribute__((packed)); @@ -1620,7 +1633,7 @@ struct packet_quest_hunt_sub { /** * Header for: * PACKET_ZC_ADD_QUEST (PACKETVER < 20150513) - * + * PACKET_ZC_ADD_QUEST_EX (PACKETVER >= 20150513) */ struct packet_quest_add_header { uint16 PacketType; |