- Renamed setting delay_dependon_dex to delay_dependon_agi, the delay of skills is reduced now (when enabled) by AGI instead of DEX, which makes a lot more sense than DEX.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8923 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
a46f95df67
commit
746aae171c
@ -3,6 +3,10 @@ Date Added
|
||||
AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK.
|
||||
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
|
||||
|
||||
2006/10/03
|
||||
* Renamed setting delay_dependon_dex to delay_dependon_agi, the delay of
|
||||
skills is reduced now (when enabled) by AGI instead of DEX, which makes a
|
||||
lot more sense than DEX. [Skotlex]
|
||||
2006/10/02
|
||||
* Modified item-granded status resistance reduction to behave as explained
|
||||
by Vicious (Ragnarok Monthly magazine) [Skotlex]
|
||||
|
@ -1,5 +1,9 @@
|
||||
Date Added
|
||||
|
||||
2006/10/03
|
||||
* Renamed setting delay_dependon_dex to delay_dependon_agi, the delay of
|
||||
skills is reduced now (when enabled) by AGI instead of DEX, which makes a
|
||||
lot more sense than DEX. [Skotlex]
|
||||
2006/09/25
|
||||
* Removed config setting allow_atcommand_when_mute as it's no longer used
|
||||
(see manner_system in misc.conf for it's replacement) [Skotlex]
|
||||
|
@ -35,9 +35,9 @@ casting_rate: 100
|
||||
// Delay time after casting (Note 2)
|
||||
delay_rate: 100
|
||||
|
||||
// Is the delay time is dependent on the caster's DEX? (Note 1)
|
||||
// Note: On Official servers Dex does NOT affect delay time
|
||||
delay_dependon_dex: no
|
||||
// Is the delay time dependant on the caster's AGI? (Note 1)
|
||||
// Note: On Official servers no stat affects delay time
|
||||
delay_dependon_agi: no
|
||||
|
||||
// Minimum allowed delay for ANY skills after casting (in miliseconds) (Note 1)
|
||||
// Note: Setting this to anything above 0 can stop speedhacks.
|
||||
@ -58,6 +58,8 @@ default_skill_delay: 300
|
||||
no_skill_delay: 2
|
||||
|
||||
// At what dex does the cast time become zero (instacast)
|
||||
// If delay_dependon_agi is enabled, this is also the amount of agi required
|
||||
// for zero delay on skills.
|
||||
castrate_dex_scale: 150
|
||||
|
||||
// Will normal attacks be able to ignore the delay after skills? (Note 1)
|
||||
|
@ -3457,7 +3457,7 @@ static const struct battle_data_short {
|
||||
{ "enable_perfect_flee", &battle_config.enable_perfect_flee },
|
||||
{ "casting_rate", &battle_config.cast_rate },
|
||||
{ "delay_rate", &battle_config.delay_rate },
|
||||
{ "delay_dependon_dex", &battle_config.delay_dependon_dex },
|
||||
{ "delay_dependon_agi", &battle_config.delay_dependon_agi },
|
||||
{ "skill_delay_attack_enable", &battle_config.sdelay_attack_enable },
|
||||
{ "left_cardfix_to_right", &battle_config.left_cardfix_to_right },
|
||||
{ "skill_add_range", &battle_config.skill_add_range },
|
||||
@ -3856,7 +3856,7 @@ void battle_set_defaults() {
|
||||
battle_config.enable_perfect_flee = BL_PC|BL_PET;
|
||||
battle_config.cast_rate=100;
|
||||
battle_config.delay_rate=100;
|
||||
battle_config.delay_dependon_dex=0;
|
||||
battle_config.delay_dependon_agi=0;
|
||||
battle_config.sdelay_attack_enable=0;
|
||||
battle_config.left_cardfix_to_right=0;
|
||||
battle_config.skill_add_range=0;
|
||||
|
@ -93,7 +93,7 @@ extern struct Battle_Config {
|
||||
unsigned short critical_rate;
|
||||
unsigned short enable_baseatk;
|
||||
unsigned short enable_perfect_flee;
|
||||
unsigned short cast_rate,delay_rate,delay_dependon_dex;
|
||||
unsigned short cast_rate,delay_rate,delay_dependon_agi;
|
||||
unsigned short sdelay_attack_enable;
|
||||
unsigned short left_cardfix_to_right;
|
||||
unsigned short skill_add_range;
|
||||
|
@ -682,7 +682,7 @@ int skill_get_maxcount( int id ){ skill_get (skill_db[id].maxcount, id, 1); }
|
||||
int skill_get_blewcount( int id ,int lv ){ skill_get (skill_db[id].blewcount[lv-1], id, lv); }
|
||||
int skill_get_mhp( int id ,int lv ){ skill_get (skill_db[id].mhp[lv-1], id, lv); }
|
||||
int skill_get_castnodex( int id ,int lv ){ skill_get (skill_db[id].castnodex[lv-1], id, lv); }
|
||||
int skill_get_delaynodex( int id ,int lv ){ skill_get (skill_db[id].delaynodex[lv-1], id, lv); }
|
||||
int skill_get_delaynodex( int id ,int lv ){ skill_get (skill_db[id].delaynoagi[lv-1], id, lv); }
|
||||
int skill_get_nocast ( int id ){ skill_get (skill_db[id].nocast, id, 1); }
|
||||
int skill_get_type( int id ){ skill_get (skill_db[id].skill_type, id, 1); }
|
||||
int skill_get_unit_id ( int id, int flag ){ skill_get (skill_db[id].unit_id[flag], id, 1); }
|
||||
@ -8590,7 +8590,7 @@ int skill_castfix_sc (struct block_list *bl, int time)
|
||||
*/
|
||||
int skill_delayfix (struct block_list *bl, int skill_id, int skill_lv)
|
||||
{
|
||||
int delaynodex = skill_get_delaynodex(skill_id, skill_lv);
|
||||
int delaynochange = skill_get_delaynodex(skill_id, skill_lv);
|
||||
int time = skill_get_delay(skill_id, skill_lv);
|
||||
|
||||
nullpo_retr(0, bl);
|
||||
@ -8606,10 +8606,10 @@ int skill_delayfix (struct block_list *bl, int skill_id, int skill_lv)
|
||||
time = battle_config.default_skill_delay;
|
||||
} else if (time < 0)
|
||||
time = -time + status_get_amotion(bl); // if set to <0, the attack motion is added.
|
||||
|
||||
if (battle_config.delay_dependon_dex && !(delaynodex&1))
|
||||
else //Agi reduction should apply only to non-zero delay skills.
|
||||
if (battle_config.delay_dependon_agi && !(delaynochange&1))
|
||||
{ // if skill casttime is allowed to be reduced by dex
|
||||
int scale = battle_config.castrate_dex_scale - status_get_dex(bl);
|
||||
int scale = battle_config.castrate_dex_scale - status_get_agi(bl);
|
||||
if (scale > 0)
|
||||
time = time * scale / battle_config.castrate_dex_scale;
|
||||
else //To be capped later to minimum.
|
||||
@ -8622,7 +8622,7 @@ int skill_delayfix (struct block_list *bl, int skill_id, int skill_lv)
|
||||
if (battle_config.delay_rate != 100)
|
||||
time = time * battle_config.delay_rate / 100;
|
||||
|
||||
if (!(delaynodex&2))
|
||||
if (!(delaynochange&2))
|
||||
{
|
||||
struct status_change *sc;
|
||||
sc= status_get_sc(bl);
|
||||
@ -11404,7 +11404,7 @@ int skill_readdb (void)
|
||||
skill_split_atoi(split[1],skill_db[i].castnodex);
|
||||
if (!split[2])
|
||||
continue;
|
||||
skill_split_atoi(split[2],skill_db[i].delaynodex);
|
||||
skill_split_atoi(split[2],skill_db[i].delaynoagi);
|
||||
}
|
||||
fclose(fp);
|
||||
ShowStatus("Done reading '"CL_WHITE"%s"CL_RESET"'.\n",path);
|
||||
|
@ -66,7 +66,7 @@ struct skill_db {
|
||||
int weapon,ammo,ammo_qty[MAX_SKILL_LEVEL],state,spiritball[MAX_SKILL_LEVEL];
|
||||
int itemid[10],amount[10];
|
||||
int castnodex[MAX_SKILL_LEVEL];
|
||||
int delaynodex[MAX_SKILL_LEVEL];
|
||||
int delaynoagi[MAX_SKILL_LEVEL];
|
||||
int nocast;
|
||||
int unit_id[2];
|
||||
int unit_layout_type[MAX_SKILL_LEVEL];
|
||||
|
Loading…
x
Reference in New Issue
Block a user