summaryrefslogtreecommitdiff
path: root/src/map/mob.c
diff options
context:
space:
mode:
authorInkfish <Inkfish@54d463be-8e91-2dee-dedb-b68131a5f0ec>2009-07-11 04:48:40 +0000
committerInkfish <Inkfish@54d463be-8e91-2dee-dedb-b68131a5f0ec>2009-07-11 04:48:40 +0000
commit3317a790778189da1ad69f75947c519f0d0b3563 (patch)
treeaeea761a20b51c8dba4b3ae4247b5dbe799da60e /src/map/mob.c
parent488848a43c44e4c3e29a9d8947f309c36ef5d192 (diff)
downloadhercules-3317a790778189da1ad69f75947c519f0d0b3563.tar.gz
hercules-3317a790778189da1ad69f75947c519f0d0b3563.tar.bz2
hercules-3317a790778189da1ad69f75947c519f0d0b3563.tar.xz
hercules-3317a790778189da1ad69f75947c519f0d0b3563.zip
* Some updates for range check. (bugreport:3339)
- Monsters shouldn't use skills if the target is within its attack range but is out of the skill range. - Monsters' skill range is no longer 9 by default. - Range for players' attacks and skills should always check for a circular area. - The range of Magnetic Earth is 2. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13944 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/mob.c')
-rw-r--r--src/map/mob.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/map/mob.c b/src/map/mob.c
index 367d2ff7d..e6fa8d2fd 100644
--- a/src/map/mob.c
+++ b/src/map/mob.c
@@ -3004,7 +3004,8 @@ int mobskill_use(struct mob_data *md, unsigned int tick, int event)
}
md->skillidx = i;
map_freeblock_lock();
- if (!unit_skilluse_pos2(&md->bl, x, y, ms[i].skill_id, ms[i].skill_lv, ms[i].casttime, ms[i].cancel))
+ if( !battle_check_range(&md->bl,bl,skill_get_range2(&md->bl, ms[i].skill_id,ms[i].skill_lv)) ||
+ !unit_skilluse_pos2(&md->bl, x, y,ms[i].skill_id, ms[i].skill_lv,ms[i].casttime, ms[i].cancel) )
{
map_freeblock_unlock();
continue;
@@ -3040,7 +3041,8 @@ int mobskill_use(struct mob_data *md, unsigned int tick, int event)
if (!bl) continue;
md->skillidx = i;
map_freeblock_lock();
- if (!unit_skilluse_id2(&md->bl, bl->id, ms[i].skill_id, ms[i].skill_lv, ms[i].casttime, ms[i].cancel))
+ if( !battle_check_range(&md->bl,bl,skill_get_range2(&md->bl, ms[i].skill_id,ms[i].skill_lv)) ||
+ !unit_skilluse_id2(&md->bl, bl->id,ms[i].skill_id, ms[i].skill_lv,ms[i].casttime, ms[i].cancel) )
{
map_freeblock_unlock();
continue;