diff options
Diffstat (limited to 'src/map/guild.c')
-rw-r--r-- | src/map/guild.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/map/guild.c b/src/map/guild.c index ac24edeab..1d9cf03a9 100644 --- a/src/map/guild.c +++ b/src/map/guild.c @@ -459,6 +459,8 @@ int guild_recv_info(struct guild *sg) { struct map_session_data *sd; bool guild_new = false; struct hChSysCh *aChSysSave = NULL; + short *instance_save = NULL; + unsigned short instances_save = 0; nullpo_ret(sg); @@ -538,10 +540,16 @@ int guild_recv_info(struct guild *sg) { before=*g; if( g->channel ) aChSysSave = g->channel; + if( g->instance ) + instance_save = g->instance; + if( g->instances ) + instances_save = g->instances; } memcpy(g,sg,sizeof(struct guild)); g->channel = aChSysSave; + g->instance = instance_save; + g->instances = instances_save; if(g->max_member > MAX_GUILD) { ShowError("guild_recv_info: Received guild with %d members, but MAX_GUILD is only %d. Extra guild-members have been lost!\n", g->max_member, MAX_GUILD); @@ -928,7 +936,7 @@ void guild_retrieveitembound(int char_id,int aid,int guild_id) { if(sd){ //Character is online pc->bound_clear(sd,IBT_GUILD); } else { //Character is offline, ask char server to do the job - struct guild_storage *gstor = gstorage->id2storage2(guild_id); + struct guild_storage *gstor = idb_get(gstorage->db,guild_id); if(gstor && gstor->storage_status == 1) { //Someone is in guild storage, close them struct s_mapiterator* iter = mapit_getallusers(); for( sd = (TBL_PC*)mapit->first(iter); mapit->exists(iter); sd = (TBL_PC*)mapit->next(iter) ) { |