viewing paste Unknown #6090 | Diff

Posted on the
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
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;
 }
 
Viewed 454 times, submitted by lighta.