diff options
author | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2007-02-01 20:06:06 +0000 |
---|---|---|
committer | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2007-02-01 20:06:06 +0000 |
commit | 75b71c93f2449765688df5a247d808b7b86b0fda (patch) | |
tree | cdba42c8b756b0db204a4db27ae19887e12b49e4 /src/map/mob.c | |
parent | e38f00cc342543973a5a1faaa2db067f63dcb9e4 (diff) | |
download | hercules-75b71c93f2449765688df5a247d808b7b86b0fda.tar.gz hercules-75b71c93f2449765688df5a247d808b7b86b0fda.tar.bz2 hercules-75b71c93f2449765688df5a247d808b7b86b0fda.tar.xz hercules-75b71c93f2449765688df5a247d808b7b86b0fda.zip |
- Added support for mob skill target 'randomtarget', when specified, it will pick a random enemy from within the skill's cast range.
- Updated the mob_db so that all skills from non-moving mobs that specified 'target' as enemy will use 'randomtarget' instead.
- Amon Ra's meteors now use randomtarget instead of self.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9762 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/mob.c')
-rw-r--r-- | src/map/mob.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/map/mob.c b/src/map/mob.c index b47dfcbb8..f32acc85f 100644 --- a/src/map/mob.c +++ b/src/map/mob.c @@ -2757,6 +2757,10 @@ int mobskill_use(struct mob_data *md, unsigned int tick, int event) short x = 0, y = 0; if (ms[i].target <= MST_AROUND) { switch (ms[i].target) { + case MST_RANDOM: //Pick a random enemy within skill range. + bl = battle_getenemy(&md->bl, md->special_state.ai?BL_CHAR:BL_PC|BL_HOM, + skill_get_range2(&md->bl, ms[i].skill_id, ms[i].skill_lv)); + break; case MST_TARGET: case MST_AROUND5: case MST_AROUND6: @@ -2805,6 +2809,10 @@ int mobskill_use(struct mob_data *md, unsigned int tick, int event) if (ms[i].target <= MST_MASTER) { struct block_list *bl; switch (ms[i].target) { + case MST_RANDOM: //Pick a random enemy within skill range. + bl = battle_getenemy(&md->bl, md->special_state.ai?BL_CHAR:BL_PC|BL_HOM, + skill_get_range2(&md->bl, ms[i].skill_id, ms[i].skill_lv)); + break; case MST_TARGET: bl = map_id2bl(md->target_id); break; @@ -3657,6 +3665,7 @@ static int mob_readskilldb(void) { "anytarget",MSS_ANYTARGET }, //Berserk+Angry+Rush+Follow }, target[] = { { "target", MST_TARGET }, + { "randomtarget", MST_RANDOM }, { "self", MST_SELF }, { "friend", MST_FRIEND }, { "master", MST_MASTER }, |