summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt3
-rw-r--r--conf-tmpl/battle/skill.conf7
-rw-r--r--src/map/battle.c2
-rw-r--r--src/map/battle.h1
-rw-r--r--src/map/skill.c4
5 files changed, 15 insertions, 2 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index be9dac276..aff2322e8 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/07/06
+ * Added no_skill_delay setting, when set, affected object types will have
+ the minimum skill delay for all skills. Defaults to mobs, since they
+ don't have skill delays. [Skotlex]
* Cleaned up pc_equipitem. When dual wielding or equipping accessories, if
the client actually specifies one of the two positions, it will be taken
into account (now, does the client actually does this?) [Skotlex]
diff --git a/conf-tmpl/battle/skill.conf b/conf-tmpl/battle/skill.conf
index 16548fd24..7cb33a613 100644
--- a/conf-tmpl/battle/skill.conf
+++ b/conf-tmpl/battle/skill.conf
@@ -50,6 +50,13 @@ min_skill_delay_limit: 100
// appear to "teleport" afterwards.
default_skill_delay: 300
+//Completely disable skill delay of the following types (Note 4)
+//NOTE: By default mobs don't have the skill delay as specified in the skill
+// database, but follow their own 'reuse' skill delay which is specified on
+// the mob skill db. When set, the delay for all skills become
+// min_skill_delay_limit.
+no_skill_delay: 2
+
// At what dex does the cast time become zero (instacast)
castrate_dex_scale: 150
diff --git a/src/map/battle.c b/src/map/battle.c
index 191608a3a..e83b1846b 100644
--- a/src/map/battle.c
+++ b/src/map/battle.c
@@ -3552,6 +3552,7 @@ static const struct battle_data_short {
{ "exp_calc_type", &battle_config.exp_calc_type}, // [celest]
{ "min_skill_delay_limit", &battle_config.min_skill_delay_limit}, // [celest]
{ "default_skill_delay", &battle_config.default_skill_delay}, // [Skotlex]
+ { "no_skill_delay", &battle_config.no_skill_delay}, // [Skotlex]
{ "require_glory_guild", &battle_config.require_glory_guild}, // [celest]
{ "idle_no_share", &battle_config.idle_no_share}, // [celest], for a feature by [MouseJstr]
{ "party_even_share_bonus", &battle_config.party_even_share_bonus},
@@ -3975,6 +3976,7 @@ void battle_set_defaults() {
battle_config.exp_calc_type = 1;
battle_config.min_skill_delay_limit = 100;
battle_config.default_skill_delay = 300; //Default skill delay according to official servers.
+ battle_config.no_skill_delay = BL_MOB;
battle_config.require_glory_guild = 0;
battle_config.idle_no_share = 0;
battle_config.party_even_share_bonus = 0;
diff --git a/src/map/battle.h b/src/map/battle.h
index 57d574917..a4533395a 100644
--- a/src/map/battle.h
+++ b/src/map/battle.h
@@ -366,6 +366,7 @@ extern struct Battle_Config {
unsigned short exp_calc_type;
unsigned short min_skill_delay_limit;
unsigned short default_skill_delay;
+ unsigned short no_skill_delay;
unsigned short require_glory_guild;
unsigned short idle_no_share;
unsigned short party_even_share_bonus;
diff --git a/src/map/skill.c b/src/map/skill.c
index 8f16288c4..cfc4ccd4b 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -8300,8 +8300,8 @@ int skill_delayfix (struct block_list *bl, int skill_id, int skill_lv)
nullpo_retr(0, bl);
- if (bl->type == BL_MOB)
- return 0; //Mobs have no delay other than the skill-specific delay in their skill db. [Skotlex]
+ if (bl->type&battle_config.no_skill_delay)
+ return battle_config.min_skill_delay_limit;
// instant cast attack skills depend on aspd as delay [celest]
if (time == 0) {