Index: src/map/intif.c
===================================================================
--- src/map/intif.c (revision 17347)
+++ src/map/intif.c (working copy)
@@ -1007,11 +1007,7 @@
guild_id = RFIFOL(fd,8);
if(guild_id <= 0)
return 1;
- sd=map_id2sd( RFIFOL(fd,4) );
- if(sd==NULL){
- ShowError("intif_parse_LoadGuildStorage: user not found %d\n",RFIFOL(fd,4));
- return 1;
- }
+
gstor=guild2storage(guild_id);
if(!gstor) {
ShowWarning("intif_parse_LoadGuildStorage: error guild_id %d not exist\n",guild_id);
@@ -1025,14 +1021,22 @@
ShowWarning("intif_parse_LoadGuildStorage: received storage for an already modified non-saved storage! (User %d:%d)\n", sd->status.account_id, sd->status.char_id);
return 1;
}
- if( RFIFOW(fd,2)-12 != sizeof(struct guild_storage) ){
- ShowError("intif_parse_LoadGuildStorage: data size error %d %d\n",RFIFOW(fd,2)-12 , sizeof(struct guild_storage));
+ if( RFIFOW(fd,2)-13 != sizeof(struct guild_storage) ){
+ ShowError("intif_parse_LoadGuildStorage: data size error %d %d\n",RFIFOW(fd,2)-13 , sizeof(struct guild_storage));
gstor->storage_status = 0;
return 1;
}
- memcpy(gstor,RFIFOP(fd,12),sizeof(struct guild_storage));
- storage_guild_storageopen(sd);
+ memcpy(gstor,RFIFOP(fd,13),sizeof(struct guild_storage));
+
+ if( RFIFOL(fd,12) ){ //if flag != 0 open it
+ sd=map_id2sd( RFIFOL(fd,4) );
+ if(sd==NULL){
+ ShowError("intif_parse_LoadGuildStorage: user not found %d\n",RFIFOL(fd,4));
+ return 1;
+ }
+ storage_guild_storageopen(sd);
+ }
return 0;
}
Index: src/char/int_storage.c
===================================================================
--- src/char/int_storage.c (revision 17347)
+++ src/char/int_storage.c (working copy)
@@ -158,7 +158,7 @@
//---------------------------------------------------------
// packet from map server
-int mapif_load_guild_storage(int fd,int account_id,int guild_id)
+int mapif_load_guild_storage(int fd,int account_id,int guild_id, char flag)
{
if( SQL_ERROR == Sql_Query(sql_handle, "SELECT `guild_id` FROM `%s` WHERE `guild_id`='%d'", guild_db, guild_id) )
Sql_ShowDebug(sql_handle);
@@ -169,7 +169,8 @@
WFIFOW(fd,2) = sizeof(struct guild_storage)+12;
WFIFOL(fd,4) = account_id;
WFIFOL(fd,8) = guild_id;
- guild_storage_fromsql(guild_id, (struct guild_storage*)WFIFOP(fd,12));
+ WFIFOB(fd,12) = flag; //1 open storage, 0 don't open
+ guild_storage_fromsql(guild_id, (struct guild_storage*)WFIFOP(fd,13));
WFIFOSET(fd, WFIFOW(fd,2));
return 0;
}
@@ -200,7 +201,7 @@
int mapif_parse_LoadGuildStorage(int fd)
{
RFIFOHEAD(fd);
- mapif_load_guild_storage(fd,RFIFOL(fd,2),RFIFOL(fd,6));
+ mapif_load_guild_storage(fd,RFIFOL(fd,2),RFIFOL(fd,6),1);
return 0;
}