diff options
-rw-r--r-- | src/map/clif.c | 18 | ||||
-rw-r--r-- | src/map/clif.h | 1 | ||||
-rw-r--r-- | src/map/packets_struct.h | 12 |
3 files changed, 31 insertions, 0 deletions
diff --git a/src/map/clif.c b/src/map/clif.c index d69508b8e..5c8e71a73 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -23866,6 +23866,23 @@ static void clif_parse_lapineDdukDdak_close(int fd, struct map_session_data *sd) #endif // PACKETVER >= 20160504 } +static bool clif_lapineUpgrade_open(struct map_session_data *sd, int item_id) +{ +#if PACKETVER_MAIN_NUM >= 20170726 || PACKETVER_RE_NUM >= 20170621 || defined(PACKETVER_ZERO) + nullpo_retr(false, sd); + nullpo_retr(false, itemdb->exists(item_id)); + struct PACKET_ZC_LAPINEUPGRADE_OPEN p; + + p.packetType = HEADER_ZC_LAPINEUPGRADE_OPEN; + p.itemId = item_id; + clif->send(&p, sizeof(p), &sd->bl, SELF); + + return true; +#else + return false; +#endif // PACKETVER_MAIN_NUM >= 20170726 || PACKETVER_RE_NUM >= 20170621 || defined(PACKETVER_ZERO) +} + /*========================================== * Main client packet processing function *------------------------------------------*/ @@ -25111,5 +25128,6 @@ void clif_defaults(void) clif->lapineDdukDdak_result = clif_lapineDdukDdak_result; clif->plapineDdukDdak_ack = clif_parse_lapineDdukDdak_ack; clif->plapineDdukDdak_close = clif_parse_lapineDdukDdak_close; + clif->lapineUpgrade_open = clif_lapineUpgrade_open; clif->pReqGearOff = clif_parse_reqGearOff; } diff --git a/src/map/clif.h b/src/map/clif.h index c61400de6..882e8691f 100644 --- a/src/map/clif.h +++ b/src/map/clif.h @@ -1690,6 +1690,7 @@ struct clif_interface { bool (*lapineDdukDdak_result) (struct map_session_data *sd, enum lapineddukddak_result result); void (*plapineDdukDdak_ack) (int fd, struct map_session_data *sd); void (*plapineDdukDdak_close) (int fd, struct map_session_data *sd); + bool (*lapineUpgrade_open) (struct map_session_data *sd, int item_id); void (*pReqGearOff) (int fd, struct map_session_data *sd); }; diff --git a/src/map/packets_struct.h b/src/map/packets_struct.h index ca2fb8aef..f4c4dd1bc 100644 --- a/src/map/packets_struct.h +++ b/src/map/packets_struct.h @@ -3891,6 +3891,18 @@ struct PACKET_ZC_AUTORUN_SKILL { } __attribute__((packed)); DEFINE_PACKET_HEADER(ZC_AUTORUN_SKILL, 0x0147); +#if PACKETVER_MAIN_NUM >= 20170726 || PACKETVER_RE_NUM >= 20170621 || defined(PACKETVER_ZERO) +struct PACKET_ZC_LAPINEUPGRADE_OPEN { + int16 packetType; +#if PACKETVER_MAIN_NUM >= 20181121 || PACKETVER_RE_NUM >= 20180704 || PACKETVER_ZERO_NUM >= 20181114 + uint32 itemId; +#else + uint16 itemId; +#endif +} __attribute__((packed)); +DEFINE_PACKET_HEADER(ZC_LAPINEUPGRADE_OPEN, 0x0ab4); +#endif + #if !defined(sun) && (!defined(__NETBSD__) || __NetBSD_Version__ >= 600000000) // NetBSD 5 and Solaris don't like pragma pack but accept the packed attribute #pragma pack(pop) #endif // not NetBSD < 6 / Solaris |