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 1218 times, submitted by lighta.