summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/char_sql/char.c3
-rw-r--r--src/map/mercenary.c42
2 files changed, 20 insertions, 25 deletions
diff --git a/src/char_sql/char.c b/src/char_sql/char.c
index 83f3c93df..dd5b31770 100644
--- a/src/char_sql/char.c
+++ b/src/char_sql/char.c
@@ -3942,7 +3942,6 @@ void sql_config_read(const char *cfgName){ /* Kalaspuff, to get login_db */
}else if(strcmpi(w1,"lowest_gm_level")==0){
lowest_gm_level = atoi(w2);
ShowStatus("set lowest_gm_level : %s\n",w2);
- //support the import command, just like any other config
#endif
}else if(strcmpi(w1,"scdata_db")==0){
strcpy(scdata_db,w2);
@@ -3997,8 +3996,8 @@ void sql_config_read(const char *cfgName){ /* Kalaspuff, to get login_db */
strcpy(item_db2_db,w2);
} else if(strcmpi(w1,"connection_ping_interval")==0) {
connection_ping_interval = config_switch(w2);
-
#endif
+ //support the import command, just like any other config
}else if(strcmpi(w1,"import")==0){
sql_config_read(w2);
}
diff --git a/src/map/mercenary.c b/src/map/mercenary.c
index f027d9234..32a2e9f97 100644
--- a/src/map/mercenary.c
+++ b/src/map/mercenary.c
@@ -537,9 +537,19 @@ int merc_hom_alloc(struct map_session_data *sd, struct s_homunculus *hom)
return 1;
}
sd->hd = hd = aCalloc(1,sizeof(struct homun_data));
+ hd->bl.subtype = MONS;
+ hd->bl.type = BL_HOM;
+ hd->bl.id = npc_get_new_npc_id();
+
+ hd->master = sd;
hd->homunculusDB = &homunculus_db[i];
memcpy(&hd->homunculus, hom, sizeof(struct s_homunculus));
- hd->master = sd;
+ hd->exp_next = hexptbl[hd->homunculus.level - 1];
+
+ status_set_viewdata(&hd->bl, hd->homunculus.class_);
+ status_change_init(&hd->bl);
+ unit_dataset(&hd->bl);
+ hd->ud.dir = sd->ud.dir;
// Find a random valid pos around the player
hd->bl.m = sd->bl.m;
@@ -550,18 +560,6 @@ int merc_hom_alloc(struct map_session_data *sd, struct s_homunculus *hom)
map_random_dir(&hd->bl, &x, &y);
hd->bl.x = x;
hd->bl.y = y;
-
- hd->bl.subtype = MONS;
- hd->bl.type = BL_HOM;
- hd->bl.id = npc_get_new_npc_id();
- hd->bl.prev = NULL;
- hd->bl.next = NULL;
- hd->exp_next = hexptbl[hd->homunculus.level - 1];
-
- status_set_viewdata(&hd->bl, hd->homunculus.class_);
- status_change_init(&hd->bl);
- unit_dataset(&hd->bl);
- hd->ud.dir = sd->ud.dir;
map_addiddb(&hd->bl);
status_calc_homunculus(hd,1);
@@ -644,17 +642,15 @@ int merc_hom_recv_data(int account_id, struct s_homunculus *sh, int flag)
merc_hom_alloc(sd, sh);
hd = sd->hd;
- if(hd->homunculus.hp && !hd->homunculus.vaporize)
+ if(hd->homunculus.hp && !hd->homunculus.vaporize && hd->bl.prev == NULL)
{
- if (hd->bl.prev != NULL) {
- map_addblock(&hd->bl);
- clif_spawn(&hd->bl);
- clif_hominfo(sd,hd,1);
- clif_hominfo(sd,hd,0); // send this x2. dunno why, but kRO does that [blackhole89]
- clif_homskillinfoblock(sd);
- clif_hominfo(sd,hd,0);
- clif_send_homdata(sd,SP_ACK,0);
- }
+ map_addblock(&hd->bl);
+ clif_spawn(&hd->bl);
+ clif_hominfo(sd,hd,1);
+ clif_hominfo(sd,hd,0); // send this x2. dunno why, but kRO does that [blackhole89]
+ clif_homskillinfoblock(sd);
+ clif_hominfo(sd,hd,0);
+ clif_send_homdata(sd,SP_ACK,0);
}
return 1;
}