From 5b502a267b6546ade4adb116d11354f0bf929cbf Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Fri, 12 Apr 2019 00:31:40 +0300 Subject: Add account id and char id into inter server rodex update packet --- src/map/intif.c | 15 ++++++++++----- src/map/intif.h | 2 +- src/map/rodex.c | 12 ++++++------ 3 files changed, 17 insertions(+), 12 deletions(-) (limited to 'src/map') diff --git a/src/map/intif.c b/src/map/intif.c index 86bf07bce..e565c71e6 100644 --- a/src/map/intif.c +++ b/src/map/intif.c @@ -2754,16 +2754,21 @@ static void intif_parse_RodexNotifications(int fd) /// 2 - user got Items /// 3 - delete /// 4 - sender Read (returned mail) -static int intif_rodex_updatemail(int64 mail_id, int8 flag) +static int intif_rodex_updatemail(struct map_session_data *sd, int64 mail_id, uint8 opentype, int8 flag) { + nullpo_ret(sd); + if (intif->CheckForCharServer()) return 0; - WFIFOHEAD(inter_fd, 11); + WFIFOHEAD(inter_fd, 20); WFIFOW(inter_fd, 0) = 0x3097; - WFIFOQ(inter_fd, 2) = mail_id; - WFIFOB(inter_fd, 10) = flag; - WFIFOSET(inter_fd, 11); + WFIFOL(inter_fd, 2) = sd->status.account_id; + WFIFOL(inter_fd, 6) = sd->status.char_id; + WFIFOQ(inter_fd, 10) = mail_id; + WFIFOB(inter_fd, 18) = opentype; + WFIFOB(inter_fd, 19) = flag; + WFIFOSET(inter_fd, 20); return 0; } diff --git a/src/map/intif.h b/src/map/intif.h index 425ab1d18..ee00baa41 100644 --- a/src/map/intif.h +++ b/src/map/intif.h @@ -135,7 +135,7 @@ struct intif_interface { // RoDEX int(*rodex_requestinbox) (int char_id, int account_id, int8 flag, int8 opentype, int64 mail_id); int(*rodex_checkhasnew) (struct map_session_data *sd); - int(*rodex_updatemail) (int64 mail_id, int8 flag); + int(*rodex_updatemail) (struct map_session_data *sd, int64 mail_id, uint8 opentype, int8 flag); int(*rodex_sendmail) (struct rodex_message *msg); int(*rodex_checkname) (struct map_session_data *sd, const char *name); /* Clan System */ diff --git a/src/map/rodex.c b/src/map/rodex.c index 33070c5f8..0d3bbf978 100644 --- a/src/map/rodex.c +++ b/src/map/rodex.c @@ -404,12 +404,12 @@ static void rodex_read_mail(struct map_session_data *sd, int64 mail_id) if (msg->opentype == RODEX_OPENTYPE_RETURN) { if (msg->sender_read == false) { - intif->rodex_updatemail(msg->id, 4); + intif->rodex_updatemail(sd, msg->id, 0, 4); msg->sender_read = true; } } else { if (msg->is_read == false) { - intif->rodex_updatemail(msg->id, 0); + intif->rodex_updatemail(sd, msg->id, 0, 0); msg->is_read = true; } } @@ -430,7 +430,7 @@ static void rodex_delete_mail(struct map_session_data *sd, int64 mail_id) nullpo_retv(msg); msg->is_deleted = true; - intif->rodex_updatemail(msg->id, 3); + intif->rodex_updatemail(sd, msg->id, 0, 3); clif->rodex_delete_mail(sd, msg->opentype, msg->id); } @@ -463,7 +463,7 @@ static void rodex_get_zeny(struct map_session_data *sd, int8 opentype, int64 mai msg->type &= ~MAIL_TYPE_ZENY; msg->zeny = 0; - intif->rodex_updatemail(mail_id, 1); + intif->rodex_updatemail(sd, mail_id, opentype, 1); clif->rodex_request_zeny(sd, opentype, mail_id, RODEX_GET_ZENY_SUCCESS); } @@ -538,7 +538,7 @@ static void rodex_get_items(struct map_session_data *sd, int8 opentype, int64 ma if (pc->additem(sd, it, it->amount, LOG_TYPE_MAIL) != 0) { clif->rodex_request_items(sd, opentype, mail_id, RODEX_GET_ITEM_FULL_ERROR); - intif->rodex_updatemail(mail_id, 2); + intif->rodex_updatemail(sd, mail_id, opentype, 2); return; } else { memset(it, 0x0, sizeof(*it)); @@ -547,7 +547,7 @@ static void rodex_get_items(struct map_session_data *sd, int8 opentype, int64 ma msg->type &= ~MAIL_TYPE_ITEM; msg->items_count = 0; - intif->rodex_updatemail(mail_id, 2); + intif->rodex_updatemail(sd, mail_id, opentype, 2); clif->rodex_request_items(sd, opentype, mail_id, RODEX_GET_ITEMS_SUCCESS); } -- cgit v1.2.3-60-g2f50