summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt3
-rw-r--r--conf-tmpl/battle/monster.conf2
-rw-r--r--db/Changelog.txt4
-rw-r--r--db/skill_cast_db.txt2
-rw-r--r--src/map/mob.c4
5 files changed, 13 insertions, 2 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index 470b1ff12..fa2e89c31 100644
--- a/Changelog-Trunk.txt
+++ b/Changelog-Trunk.txt
@@ -4,6 +4,9 @@ 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.
2006/09/16
+ * Added monster_ai&256. When set, a monster will pick a random starting
+ position to begin checking versus it's skills, otherwise, it will always
+ begin checking from the beginning. [Skotlex]
* Fixed the status change duration reduction equation was was totally
wrong, thanks to k3dt [Skotlex]
2006/09/15
diff --git a/conf-tmpl/battle/monster.conf b/conf-tmpl/battle/monster.conf
index 097054991..4ed4c14e6 100644
--- a/conf-tmpl/battle/monster.conf
+++ b/conf-tmpl/battle/monster.conf
@@ -57,6 +57,8 @@ monster_max_aspd: 199
// players and will go after the closest target instead of always picking
// the homunculus
//
+//256: When set, a mob will pick a random skill from it's list and start from that instead of checking skills
+// in orders (when unset, if a mob has too many skills, the ones near the end will rarely get selected)
monster_ai: 0
// Should mobs be able to be warped (add as needed)?
diff --git a/db/Changelog.txt b/db/Changelog.txt
index b16a587a8..20c92b29f 100644
--- a/db/Changelog.txt
+++ b/db/Changelog.txt
@@ -19,6 +19,10 @@
-----
=========================
+
+09/16
+ * Added NPC_CHANGEUNDEAD to the skill_cast_db, fixes it apparently doing
+ "nothing". [Skotlex]
09/15
* Added the remaining drop changes which I missed before [Playtester]
09/14
diff --git a/db/skill_cast_db.txt b/db/skill_cast_db.txt
index 2e0ed04c7..fadc6e3ba 100644
--- a/db/skill_cast_db.txt
+++ b/db/skill_cast_db.txt
@@ -536,6 +536,8 @@
339,2000,1500,900,900,10000:11000:12000:13000:14000:15000:16000:17000:18000:19000
//-- NPC_STOP
342,0,0,0,10000,0
+//-- NPC_CHANGEUNDEAD
+348,0,0,0,1800000,0
//-- NPC_POWERUP
349,0,0,0,60000:120000:180000:240000:300000,0
//-- NPC_AGIUP
diff --git a/src/map/mob.c b/src/map/mob.c
index 930f01a9d..8ee1970b7 100644
--- a/src/map/mob.c
+++ b/src/map/mob.c
@@ -2619,8 +2619,8 @@ int mobskill_use(struct mob_data *md, unsigned int tick, int event)
if (event < 0 && DIFF_TICK(md->ud.canact_tick, tick) > 0)
return 0; //Skill act delay only affects non-event skills.
- //Pick a random starting position and loop from that.
- i = rand()%md->db->maxskill;
+ //Pick a starting position and loop from that.
+ i = battle_config.mob_ai&256?rand()%md->db->maxskill:0;
for (n = 0; n < md->db->maxskill; i++, n++) {
int c2, flag = 0;