summaryrefslogtreecommitdiff
path: root/src/map/clif.c
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2017-06-15 01:44:58 +0300
committerAndrei Karas <akaras@inbox.ru>2017-06-25 01:43:47 +0300
commitccf79c7d339dcfb1b95b1adbff5f26d80c013d16 (patch)
treeb47e25f3bcc5ed69048ffdfa744c2fd5fe5ca0c2 /src/map/clif.c
parent4d11bf44c8c481045ce496669830b1990deca464 (diff)
downloadhercules-ccf79c7d339dcfb1b95b1adbff5f26d80c013d16.tar.gz
hercules-ccf79c7d339dcfb1b95b1adbff5f26d80c013d16.tar.bz2
hercules-ccf79c7d339dcfb1b95b1adbff5f26d80c013d16.tar.xz
hercules-ccf79c7d339dcfb1b95b1adbff5f26d80c013d16.zip
fix guild leader change in 2017 clients. Based on rathena commit:
commit b51617cb730cdc6d91bc03df16c887a060323f3a Author: Lemongrass3110 <lemongrass@kstp.at> Date: Sat Jun 3 17:03:56 2017 +0200 Added support for 2017's guild leader change
Diffstat (limited to 'src/map/clif.c')
-rw-r--r--src/map/clif.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/map/clif.c b/src/map/clif.c
index 4791451fb..c990b11d1 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -13056,13 +13056,22 @@ void clif_parse_GuildChangeMemberPosition(int fd, struct map_session_data *sd) _
void clif_parse_GuildChangeMemberPosition(int fd, struct map_session_data *sd)
{
int i;
+ int len = RFIFOW(fd, 2);
if(!sd->state.gmaster_flag)
return;
+ // Guild leadership change
+ if (len == 16 && RFIFOL(fd, 12) == 0) {
+ guild->gm_change(sd->status.guild_id, RFIFOL(fd, 8));
+ return;
+ }
+
for(i=4;i<RFIFOW(fd,2);i+=12){
- guild->change_memberposition(sd->status.guild_id,
- RFIFOL(fd,i),RFIFOL(fd,i+4),RFIFOL(fd,i+8));
+ int position = RFIFOL(fd, i + 8);
+ if (position > 0) {
+ guild->change_memberposition(sd->status.guild_id, RFIFOL(fd, i), RFIFOL(fd, i + 4), position);
+ }
}
}