diff options
author | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-05-19 14:03:40 +0000 |
---|---|---|
committer | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-05-19 14:03:40 +0000 |
commit | 5333c3d2c92c21b0ffc709acae24e32129cd8aec (patch) | |
tree | 1ff0486669290e7b07525b44ae565621fafed2c4 | |
parent | e076fe68e16cea8a4da725cec4f91d9870f2d666 (diff) | |
download | hercules-5333c3d2c92c21b0ffc709acae24e32129cd8aec.tar.gz hercules-5333c3d2c92c21b0ffc709acae24e32129cd8aec.tar.bz2 hercules-5333c3d2c92c21b0ffc709acae24e32129cd8aec.tar.xz hercules-5333c3d2c92c21b0ffc709acae24e32129cd8aec.zip |
- Updated mob ai behaviour so that mobs use IDLE state skills when their current target cannot be reached for melee fighting.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@6655 54d463be-8e91-2dee-dedb-b68131a5f0ec
-rw-r--r-- | Changelog-Trunk.txt | 3 | ||||
-rw-r--r-- | src/map/mob.c | 13 |
2 files changed, 12 insertions, 4 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 460514886..9a129f81a 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -3,6 +3,9 @@ Date Added AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK.
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
+2006/05/19
+ * Updated mob ai behaviour so that mobs use IDLE state skills when their
+ current target cannot be reached for melee fighting. [Skotlex]
2006/05/18
* Added 5 config settings to adjust damage in pk-mode servers (misc.conf)
[Skotlex]
diff --git a/src/map/mob.c b/src/map/mob.c index 0328e42d1..c723b2dab 100644 --- a/src/map/mob.c +++ b/src/map/mob.c @@ -1191,14 +1191,19 @@ static int mob_ai_sub_hard(struct block_list *bl,va_list ap) { //Out of range...
if (!(mode&MD_CANMOVE))
{ //Can't chase. Attempt to use a ranged skill at least?
- md->state.skillstate = md->state.aggressive?MSS_ANGRY:MSS_BERSERK;
- mobskill_use(md, tick, -1);
- mob_unlocktarget(md,tick);
+ md->state.skillstate = MSS_IDLE;
+ if (!mobskill_use(md, tick, -1))
+ mob_unlocktarget(md,tick);
return 0;
}
- if (!can_move) //Stuck. Wait before walking.
+ if (!can_move)
+ { //Stuck. Use an idle skill. o.O'
+ md->state.skillstate = MSS_IDLE;
+ if (!(++md->ud.walk_count%IDLE_SKILL_INTERVAL))
+ mobskill_use(md, tick, -1);
return 0;
+ }
md->state.skillstate = md->state.aggressive?MSS_FOLLOW:MSS_RUSH;
if (md->ud.walktimer != -1 && md->ud.target == tbl->id &&
|