summaryrefslogtreecommitdiff
path: root/src/map
diff options
context:
space:
mode:
Diffstat (limited to 'src/map')
-rw-r--r--src/map/mob.c2
-rw-r--r--src/map/unit.c9
2 files changed, 11 insertions, 0 deletions
diff --git a/src/map/mob.c b/src/map/mob.c
index 034aca215..a344375b1 100644
--- a/src/map/mob.c
+++ b/src/map/mob.c
@@ -2503,6 +2503,8 @@ int mob_summonslave(struct mob_data *md2,int *value,int amount,int skill_id)
data.x = md2->bl.x;
data.y = md2->bl.y;
data.num = 1;
+ data.state.size = md2->special_state.size;
+ data.state.ai = md2->special_state.ai;
if(mobdb_checkid(value[0]) == 0)
return 0;
diff --git a/src/map/unit.c b/src/map/unit.c
index fe62c5da4..605a8bc24 100644
--- a/src/map/unit.c
+++ b/src/map/unit.c
@@ -773,6 +773,15 @@ int unit_skilluse_id2(struct block_list *src, int target_id, int skill_num, int
if (!skill_check_condition(sd, skill_num, skill_lv, 0))
return 0;
}
+ //TODO: Add type-independant skill_check_condition function.
+ if (src->type == BL_MOB) {
+ switch (skill_num) {
+ case NPC_SUMMONSLAVE:
+ case NPC_SUMMONMONSTER:
+ if (((TBL_MOB*)src)->master_id)
+ return 0;
+ }
+ }
if(src->id != target_id &&
!battle_check_range(src,target,skill_get_range2(src, skill_num,skill_lv)