summaryrefslogtreecommitdiff
path: root/src/map/map.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/map.c')
-rw-r--r--src/map/map.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/map/map.c b/src/map/map.c
index fd0d43aa4..d0b454a52 100644
--- a/src/map/map.c
+++ b/src/map/map.c
@@ -41,6 +41,7 @@
#include "homunculus.h"
#include "instance.h"
#include "mercenary.h"
+#include "elemental.h"
#include "atcommand.h"
#include "log.h"
#include "mail.h"
@@ -1722,8 +1723,14 @@ int map_quit(struct map_session_data *sd)
// Return loot to owner
if( sd->pd ) pet_lootitem_drop(sd->pd, sd);
+
if( sd->state.storage_flag == 1 ) sd->state.storage_flag = 0; // No need to Double Save Storage on Quit.
+ if( sd->ed ) {
+ elemental_clean_effect(sd->ed);
+ unit_remove_map(&sd->ed->bl,CLR_TELEPORT);
+ }
+
unit_remove_map_pc(sd,CLR_TELEPORT);
if( map[sd->bl.m].instance_id )
@@ -3588,6 +3595,7 @@ void do_final(void)
do_final_unit();
do_final_battleground();
do_final_duel();
+ do_final_elemental();
map_db->destroy(map_db, map_db_final);
@@ -3914,7 +3922,8 @@ int do_init(int argc, char *argv[])
do_init_unit();
do_init_battleground();
do_init_duel();
-
+ do_init_elemental();
+
npc_event_do_oninit(); // npcのOnInitイベント?行
if( console )