diff options
-rw-r--r-- | Changelog-Trunk.txt | 3 | ||||
-rw-r--r-- | conf-tmpl/battle/skill.conf | 7 | ||||
-rw-r--r-- | src/map/battle.c | 2 | ||||
-rw-r--r-- | src/map/battle.h | 1 | ||||
-rw-r--r-- | src/map/skill.c | 4 |
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) { |