diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/map/atcommand.c | 15 | ||||
-rw-r--r-- | src/map/clif.c | 5 | ||||
-rw-r--r-- | src/map/storage.c | 6 |
3 files changed, 18 insertions, 8 deletions
diff --git a/src/map/atcommand.c b/src/map/atcommand.c index e85ca7d..74567bb 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -6520,9 +6520,18 @@ atcommand_storeall(const int fd, struct map_session_data* sd, const char* command, const char* message) { int i; - if (storage_storageopen(sd) == 1) { - clif_displaymessage(fd, "run this command again.."); - return 0; + nullpo_retr(-1, sd); + + if (sd->state.storage_flag != 1) + { //Open storage. + switch (storage_storageopen(sd)) { + case 2: //Try again + clif_displaymessage(fd, "run this command again.."); + return 0; + case 1: //Failure + clif_displaymessage(fd, "You can't open the storage currently."); + return 1; + } } for (i = 0; i < MAX_INVENTORY; i++) { if (sd->status.inventory[i].amount) { diff --git a/src/map/clif.c b/src/map/clif.c index c234966..d10effb 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -7608,11 +7608,6 @@ void clif_parse_CloseKafra(int fd, struct map_session_data *sd) { storage_storageclose(sd); else if (sd->state.storage_flag == 2) storage_guild_storageclose(sd); - - if (sd->npc_flags.storage) { - sd->npc_flags.storage = 0; - map_scriptcont(sd, sd->npc_id); - } } /*========================================== diff --git a/src/map/storage.c b/src/map/storage.c index 7a7c893..53b5bc7 100644 --- a/src/map/storage.c +++ b/src/map/storage.c @@ -367,6 +367,12 @@ int storage_storageclose(struct map_session_data *sd) } stor->storage_status=0; sd->state.storage_flag=0; + + if (sd->npc_flags.storage) { + sd->npc_flags.storage = 0; + map_scriptcont(sd, sd->npc_id); + } + return 0; } |