From 1a6e929124104a93175b36185d2eb66b1f285279 Mon Sep 17 00:00:00 2001 From: remoitnane Date: Sat, 9 Oct 2010 21:44:10 -0700 Subject: Add "master" target for mob skill use --- src/map/mob.c | 35 ++++++++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 7 deletions(-) (limited to 'src/map/mob.c') diff --git a/src/map/mob.c b/src/map/mob.c index d8e6ef8..de691c1 100644 --- a/src/map/mob.c +++ b/src/map/mob.c @@ -4289,13 +4289,23 @@ int mobskill_use (struct mob_data *md, unsigned int tick, int event) int x = 0, y = 0; if (ms[i].target <= MST_AROUND) { - bl = ((ms[i].target == MST_TARGET - || ms[i].target == - MST_AROUND5) ? map_id2bl (md-> - target_id) - : (ms[i].target == - MST_FRIEND) ? &fmd->bl : &md->bl); - if (bl != NULL) + if (ms[i].target == MST_MASTER) + { + bl = &md->bl; + if (md->master_id) + bl = map_id2bl (md->master_id); + } + else + { + bl = ((ms[i].target == MST_TARGET + || ms[i].target == + MST_AROUND5) ? map_id2bl (md-> + target_id) + : (ms[i].target == + MST_FRIEND) ? &fmd->bl : &md->bl); + } + + if (bl) { x = bl->x; y = bl->y; @@ -4349,6 +4359,15 @@ int mobskill_use (struct mob_data *md, unsigned int tick, int event) } else { + if (ms[i].target == MST_MASTER) + { + struct block_list *bl = &md->bl; + if (md->master_id) + bl = map_id2bl (md->master_id); + + if (bl && !mobskill_use_id (md, bl, i)) + return 0; + } // IDŽw’è if (ms[i].target <= MST_FRIEND) { @@ -4904,6 +4923,8 @@ static int mob_readskilldb (void) { "friend", MST_FRIEND}, { + "master", MST_MASTER}, + { "around5", MST_AROUND5}, { "around6", MST_AROUND6}, -- cgit v1.2.3-60-g2f50