diff options
author | Andrei Karas <akaras@inbox.ru> | 2019-09-02 09:47:56 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2019-09-18 22:31:51 +0300 |
commit | 04732bc51794573756b02510a56e530368d806c5 (patch) | |
tree | 2ace8d9d37d57a9302de5d582344efaff05312dc /src/map | |
parent | c2445e45345967a7a80202e794f680e31b1e9b0d (diff) | |
download | hercules-04732bc51794573756b02510a56e530368d806c5.tar.gz hercules-04732bc51794573756b02510a56e530368d806c5.tar.bz2 hercules-04732bc51794573756b02510a56e530368d806c5.tar.xz hercules-04732bc51794573756b02510a56e530368d806c5.zip |
Fix packet ZC_ACK_RANKING for old clients
Diffstat (limited to 'src/map')
-rw-r--r-- | src/map/clif.c | 14 | ||||
-rw-r--r-- | src/map/packets_struct.h | 19 |
2 files changed, 21 insertions, 12 deletions
diff --git a/src/map/clif.c b/src/map/clif.c index ca29a4397..6d1f64140 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -15978,18 +15978,18 @@ static void clif_ranklist_sub(struct PACKET_ZC_ACK_RANKING_sub *ranks, enum fame if (list[i].id > 0) { const char* name; if (strcmp(list[i].name, "-") == 0 && (name = map->charid2nick(list[i].id)) != NULL) { - strncpy(ranks[i].name, name, NAME_LENGTH); + strncpy(ranks->names[i].name, name, NAME_LENGTH); } else { - strncpy(ranks[i].name, list[i].name, NAME_LENGTH); + strncpy(ranks->names[i].name, list[i].name, NAME_LENGTH); } } else { - strncpy(ranks[i].name, "None", 5); + strncpy(ranks->names[i].name, "None", 5); } - ranks[i].points = list[i].fame; //points + ranks->points[i].points = list[i].fame; //points } for (;i < 10; i++) { // In case the MAX is less than 10. - strncpy(ranks[i].name, "Unavailable", 12); - ranks[i].points = 0; + strncpy(ranks->names[i].name, "Unavailable", 12); + ranks->points[i].points = 0; } #endif } @@ -16038,7 +16038,7 @@ static void clif_ranklist(struct map_session_data *sd, enum fame_list_type type) #if PACKETVER_MAIN_NUM >= 20190731 || PACKETVER_RE_NUM >= 20190703 || PACKETVER_ZERO_NUM >= 20190724 clif->ranklist_sub2(p->chars, p->points, type); #else - clif->ranklist_sub(p->ranks, type); + clif->ranklist_sub(&p->ranks, type); #endif if (pc->famelist_type(sd->job) == type) { diff --git a/src/map/packets_struct.h b/src/map/packets_struct.h index 79ecabc46..93b4abcca 100644 --- a/src/map/packets_struct.h +++ b/src/map/packets_struct.h @@ -3460,6 +3460,14 @@ struct PACKET_ZC_REFINE_STATUS { DEFINE_PACKET_HEADER(ZC_REFINE_STATUS, 0x0ada); #endif +struct PACKET_ZC_ACK_RANKING_name { + char name[NAME_LENGTH]; +} __attribute__((packed)); + +struct PACKET_ZC_ACK_RANKING_points { + uint32 points; +} __attribute__((packed)); + #if PACKETVER_MAIN_NUM >= 20190731 || PACKETVER_RE_NUM >= 20190703 || PACKETVER_ZERO_NUM >= 20190724 struct PACKET_ZC_ACK_RANKING_sub { char name[NAME_LENGTH]; @@ -3476,21 +3484,22 @@ struct PACKET_ZC_ACK_RANKING { DEFINE_PACKET_HEADER(ZC_ACK_RANKING, 0x0af6); #elif PACKETVER_MAIN_NUM >= 20130605 || PACKETVER_RE_NUM >= 20130529 || defined(PACKETVER_ZERO) struct PACKET_ZC_ACK_RANKING_sub { - char name[NAME_LENGTH]; - uint32 points; + struct PACKET_ZC_ACK_RANKING_name names[10]; + struct PACKET_ZC_ACK_RANKING_points points[10]; } __attribute__((packed)); struct PACKET_ZC_ACK_RANKING { int16 packetType; int16 rankType; - struct PACKET_ZC_ACK_RANKING_sub ranks[10]; + struct PACKET_ZC_ACK_RANKING_sub ranks; uint32 myPoints; } __attribute__((packed)); + DEFINE_PACKET_HEADER(ZC_ACK_RANKING, 0x097d); #else struct PACKET_ZC_ACK_RANKING_sub { - char name[NAME_LENGTH]; - uint32 points; + struct PACKET_ZC_ACK_RANKING_name names[10]; + struct PACKET_ZC_ACK_RANKING_points points[10]; } __attribute__((packed)); #endif |