summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/map/clif.c9
-rw-r--r--src/map/packets_struct.h11
2 files changed, 17 insertions, 3 deletions
diff --git a/src/map/clif.c b/src/map/clif.c
index 5b4643de2..797e872ac 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -11948,7 +11948,9 @@ static void clif_parse_ProduceMix(int fd, struct map_session_data *sd) __attribu
/// 018e <name id>.W { <material id>.W }*3
static void clif_parse_ProduceMix(int fd, struct map_session_data *sd)
{
- switch( sd->menuskill_id ) {
+ const struct PACKET_CZ_REQMAKINGITEM *p = RFIFOP(fd, 0);
+
+ switch (sd->menuskill_id) {
case -1:
case AM_PHARMACY:
case RK_RUNEMASTERY:
@@ -11963,8 +11965,9 @@ static void clif_parse_ProduceMix(int fd, struct map_session_data *sd)
clif_menuskill_clear(sd);
return;
}
- if( skill->can_produce_mix(sd,RFIFOW(fd,2),sd->menuskill_val, 1) )
- skill->produce_mix(sd,0,RFIFOW(fd,2),RFIFOW(fd,4),RFIFOW(fd,6),RFIFOW(fd,8), 1);
+
+ if (skill->can_produce_mix(sd, p->itemId, sd->menuskill_val, 1))
+ skill->produce_mix(sd, 0, p->itemId, p->material[0], p->material[1], p->material[2], 1);
clif_menuskill_clear(sd);
}
diff --git a/src/map/packets_struct.h b/src/map/packets_struct.h
index 1a30ee7e2..3dfc1a570 100644
--- a/src/map/packets_struct.h
+++ b/src/map/packets_struct.h
@@ -1902,6 +1902,17 @@ struct PACKET_ZC_ADD_ITEM_TO_CART {
struct ItemOptions option_data[MAX_ITEM_OPTIONS];
} __attribute__((packed));
+struct PACKET_CZ_REQMAKINGITEM {
+ int16 packetType;
+#if PACKETVER_RE_NUM >= 20180704
+ uint32 itemId;
+ uint32 material[3];
+#else
+ uint16 itemId;
+ uint16 material[3];
+#endif
+} __attribute__((packed));
+
#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