Browse Source

- Added no_skill_delay setting, when set, affected object types will have the minimum skill delay for all skills.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7551 54d463be-8e91-2dee-dedb-b68131a5f0ec
skotlex 19 năm trước cách đây
mục cha
commit
873481b78f
5 tập tin đã thay đổi với 15 bổ sung2 xóa
  1. 3 0
      Changelog-Trunk.txt
  2. 7 0
      conf-tmpl/battle/skill.conf
  3. 2 0
      src/map/battle.c
  4. 1 0
      src/map/battle.h
  5. 2 2
      src/map/skill.c

+ 3 - 0
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]

+ 7 - 0
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
 

+ 2 - 0
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;

+ 1 - 0
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;

+ 2 - 2
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) {