diff options
author | Haru <haru@dotalux.com> | 2018-02-09 07:32:58 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-09 07:32:58 +0100 |
commit | eb0d54e10cf59a72c78dae6101c12a8de0c9d381 (patch) | |
tree | 848f3e978f1c89ee2ac2b9ce12562741f84c8938 /src/map/clan.c | |
parent | 19c94017a31d86f7848085162ffb741770975128 (diff) | |
parent | da1b096806c868b1e9f4a82b88d05a6b032c1a63 (diff) | |
download | hercules-eb0d54e10cf59a72c78dae6101c12a8de0c9d381.tar.gz hercules-eb0d54e10cf59a72c78dae6101c12a8de0c9d381.tar.bz2 hercules-eb0d54e10cf59a72c78dae6101c12a8de0c9d381.tar.xz hercules-eb0d54e10cf59a72c78dae6101c12a8de0c9d381.zip |
Merge pull request #1968 from 4144/fixclancrash
Fix different clan issues.
Diffstat (limited to 'src/map/clan.c')
-rw-r--r-- | src/map/clan.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/map/clan.c b/src/map/clan.c index b67726b37..6855e449d 100644 --- a/src/map/clan.c +++ b/src/map/clan.c @@ -103,7 +103,7 @@ struct map_session_data *clan_getonlinesd(struct clan *c) int i; nullpo_retr(NULL, c); - ARR_FIND(0, VECTOR_LENGTH(c->members), i, VECTOR_INDEX(c->members, i).sd != NULL); + ARR_FIND(0, VECTOR_LENGTH(c->members), i, (VECTOR_INDEX(c->members, i).sd != NULL && VECTOR_INDEX(c->members, i).online == 1)); return (i < VECTOR_LENGTH(c->members)) ? VECTOR_INDEX(c->members, i).sd : NULL; } @@ -294,6 +294,7 @@ void clan_member_online(struct map_session_data *sd, bool first) if (c->kick_time > 0 && inactivity > c->kick_time) { if (m->online == 1) { m->online = 0; + m->sd = NULL; c->connect_member--; c->member_count--; } @@ -306,6 +307,7 @@ void clan_member_online(struct map_session_data *sd, bool first) return; } + m->sd = sd; m->online = 1; m->last_login = sd->status.last_login; } @@ -403,6 +405,7 @@ void clan_member_offline(struct map_session_data *sd) if (i != INDEX_NOT_FOUND && VECTOR_INDEX(c->members, i).online == 1) { // Only if it is online, because unit->free is called twice VECTOR_INDEX(c->members, i).online = 0; + VECTOR_INDEX(c->members, i).sd = NULL; c->connect_member--; } clif->clan_onlinecount(c); |