소스 검색

- 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 년 전
부모
커밋
873481b78f
5개의 변경된 파일15개의 추가작업 그리고 2개의 파일을 삭제
  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.
 IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 
 
 2006/07/06
 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
 	* Cleaned up pc_equipitem. When dual wielding or equipping accessories, if
 	  the client actually specifies one of the two positions, it will be taken
 	  the client actually specifies one of the two positions, it will be taken
 	  into account (now, does the client actually does this?) [Skotlex]
 	  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.
 // appear to "teleport" afterwards.
 default_skill_delay: 300
 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)
 // At what dex does the cast time become zero (instacast)
 castrate_dex_scale: 150
 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]
 	{ "exp_calc_type",                     &battle_config.exp_calc_type}, // [celest]
 	{ "min_skill_delay_limit",             &battle_config.min_skill_delay_limit}, // [celest]
 	{ "min_skill_delay_limit",             &battle_config.min_skill_delay_limit}, // [celest]
 	{ "default_skill_delay",               &battle_config.default_skill_delay}, // [Skotlex]
 	{ "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]
 	{ "require_glory_guild",               &battle_config.require_glory_guild}, // [celest]
 	{ "idle_no_share",                     &battle_config.idle_no_share}, // [celest], for a feature by [MouseJstr]
 	{ "idle_no_share",                     &battle_config.idle_no_share}, // [celest], for a feature by [MouseJstr]
 	{ "party_even_share_bonus",            &battle_config.party_even_share_bonus}, 
 	{ "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.exp_calc_type = 1;
 	battle_config.min_skill_delay_limit = 100;
 	battle_config.min_skill_delay_limit = 100;
 	battle_config.default_skill_delay = 300; //Default skill delay according to official servers.
 	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.require_glory_guild = 0;
 	battle_config.idle_no_share = 0;
 	battle_config.idle_no_share = 0;
 	battle_config.party_even_share_bonus = 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 exp_calc_type;
 	unsigned short min_skill_delay_limit;
 	unsigned short min_skill_delay_limit;
 	unsigned short default_skill_delay;
 	unsigned short default_skill_delay;
+	unsigned short no_skill_delay;
 	unsigned short require_glory_guild;
 	unsigned short require_glory_guild;
 	unsigned short idle_no_share;
 	unsigned short idle_no_share;
 	unsigned short party_even_share_bonus;
 	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);
 	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]
 	// instant cast attack skills depend on aspd as delay [celest]
 	if (time == 0) {
 	if (time == 0) {