summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt4
-rw-r--r--src/map/mob.c1
-rw-r--r--src/map/mob.h2
-rw-r--r--src/map/skill.c10
4 files changed, 8 insertions, 9 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index 221f05537..ff30ec946 100644
--- a/Changelog-Trunk.txt
+++ b/Changelog-Trunk.txt
@@ -4,6 +4,10 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
2007/04/25
+ * Modified the mob ai think time update after using skills from
+ adelay/amotion to 100ms since the previous method adds a large delay before
+ the AI activates again (which screws up with the timing of idle/walk
+ skills)
* NPC_MAGICALATTACK now starts a state similar to Sacrificial Ritual, in
the sense that every normal attack afterwards becomes a Magical Attack. The
skill duration is 15 secs. [Skotlex]
diff --git a/src/map/mob.c b/src/map/mob.c
index 9ed6f99f3..f2c400581 100644
--- a/src/map/mob.c
+++ b/src/map/mob.c
@@ -35,7 +35,6 @@
#include "date.h"
#include "irc.h"
-#define MIN_MOBTHINKTIME 100
#define IDLE_SKILL_INTERVAL 10 //Active idle skills should be triggered every 1 second (1000/MIN_MOBTHINKTIME)
#define MOB_LAZYSKILLPERC 10 // Probability for mobs far from players from doing their IDLE skill. (rate of 1000 minute)
diff --git a/src/map/mob.h b/src/map/mob.h
index 61f0d6345..6acc282fc 100644
--- a/src/map/mob.h
+++ b/src/map/mob.h
@@ -19,6 +19,8 @@
#define MAX_MOB_DROP 10
#define MAX_STEAL_DROP 7
+//Min time between AI executions
+#define MIN_MOBTHINKTIME 100
//Min time before mobs do a check to call nearby friends for help (or for slaves to support their master)
#define MIN_MOBLINKTIME 1000
diff --git a/src/map/skill.c b/src/map/skill.c
index bb895c68d..b3a5d432b 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -5739,10 +5739,7 @@ int skill_castend_id (int tid, unsigned int tick, int id, int data)
break;
if(md) {
- if(tid != -1) //Set afterskill delay.
- md->last_thinktime=tick +md->status.amotion;
- else
- md->last_thinktime=tick +md->status.adelay;
+ md->last_thinktime=tick +MIN_MOBTHINKTIME;
if(md->skillidx >= 0 && md->db->skill[md->skillidx].emotion >= 0)
clif_emotion(src, md->db->skill[md->skillidx].emotion);
}
@@ -5927,10 +5924,7 @@ int skill_castend_pos (int tid, unsigned int tick, int id, int data)
break;
if(md) {
- if (tid != -1)
- md->last_thinktime=tick +md->status.amotion;
- else
- md->last_thinktime=tick +md->status.adelay;
+ md->last_thinktime=tick +MIN_MOBTHINKTIME;
if(md->skillidx >= 0 && md->db->skill[md->skillidx].emotion >= 0)
clif_emotion(src, md->db->skill[md->skillidx].emotion);
}