diff options
-rw-r--r-- | Changelog.txt | 11 | ||||
-rw-r--r-- | conf-tmpl/battle_athena.conf | 3 | ||||
-rw-r--r-- | src/map/skill.c | 27 |
3 files changed, 23 insertions, 18 deletions
diff --git a/Changelog.txt b/Changelog.txt index 76d10d4dc..89d36d8b9 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,4 +1,15 @@ Date Added +01/07 + * Added Filougarou's fix for Bowling Bash causing it to only display damage, + but doesn't do any - thanks! [celest] + * Set delay_dependon_dex in battle_athena to 'no' by default [celest] + + Note: Just to clarify things, on official servers dex is not supposed to + reduce skill delays, only Poem of Bragi and Berzebub card does! + + * Fixed typo in skill_delayfix - reduce delays only if delaynodex was *not* set, + sorry ^^; [celest] + 01/06 * Fixed various memory corruptions causing crashes (SVN 925) [MouseJstr] * Fixed typo in src/map/map.c causing compile diff --git a/conf-tmpl/battle_athena.conf b/conf-tmpl/battle_athena.conf index 35d959261..42ae8e306 100644 --- a/conf-tmpl/battle_athena.conf +++ b/conf-tmpl/battle_athena.conf @@ -43,7 +43,8 @@ casting_rate: 100 delay_rate: 100 // Is the delay time is dependent on the caster's DEX? (Note 1) -delay_dependon_dex: yes +// Note: On Official servers Dex does NOT affect delay time +delay_dependon_dex: no // At what dex does the cast time become zero (instacast) castrate_dex_scale: 150 diff --git a/src/map/skill.c b/src/map/skill.c index 57a66cc08..c767d9f15 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -1781,7 +1781,7 @@ int skill_attack( int attack_type, struct block_list* src, struct block_list *ds map_freeblock_lock(); /* ?際にダメ?ジ?理を行う */ - if(skillid != KN_BOWLINGBASH || flag) + if(skillid || flag) battle_damage(src,bl,damage,0); if(skillid == RG_INTIMIDATE && damage > 0 && !(battle_get_mode(bl)&0x20) && !map[src->m].flag.gvg ) { int s_lv = battle_get_lv(src),t_lv = battle_get_lv(bl); @@ -1863,7 +1863,7 @@ int skill_attack( int attack_type, struct block_list* src, struct block_list *ds if(hp || sp) pc_heal(sd,hp,sp); } - if((skillid != KN_BOWLINGBASH || flag) && rdamage > 0) + if((skillid || flag) && rdamage > 0) battle_damage(bl,src,rdamage,0); if(attack_type&BF_WEAPON && sc_data && sc_data[SC_AUTOCOUNTER].timer != -1 && sc_data[SC_AUTOCOUNTER].val4 > 0) { @@ -7408,9 +7408,7 @@ int skill_castfix( struct block_list *bl, int time ) nullpo_retr(0, md=(struct mob_data*)bl); skill = md->skillid; lv = md->skilllv; - } - - else { + } else { nullpo_retr(0, sd=(struct map_session_data*)bl); skill = sd->skillid; lv = sd->skilllv; @@ -7470,12 +7468,17 @@ int skill_delayfix( struct block_list *bl, int time ) sc_data = battle_get_sc_data(bl); + // instant cast attack skills depend on aspd as delay [celest] + if (time <= 0 && skill_db[skill].skill_type == BF_WEAPON) + time = battle_get_adelay (bl)/2; + if(sd) { if(battle_config.delay_dependon_dex && /* dexの影響を計算する */ - skill_get_delaynodex(skill, lv) > 0) + !skill_get_delaynodex(skill, lv)) // if skill casttime is allowed to be reduced by dex time=time*(battle_config.castrate_dex_scale - battle_get_dex(bl))/battle_config.castrate_dex_scale; - time=time*battle_config.delay_rate/100; } + + time=time*battle_config.delay_rate/100; /* ブラギの詩 */ if(sc_data && sc_data[SC_POEMBRAGI].timer!=-1 ) @@ -7807,11 +7810,6 @@ int skill_use_id( struct map_session_data *sd, int target_id, if( casttime<=0 ) /* 詠唱の無いものはキャンセルされない */ sd->state.skillcastcancel=0; - // instant cast attack skills depend on aspd as delay [celest] - if (delay <= 0 && skill_db[skill_num].skill_type == BF_WEAPON) { - delay = (battle_get_adelay (&sd->bl)/2) * battle_config.delay_rate / 100; - } - sd->skilltarget = target_id; /* sd->cast_target_bl = bl; */ sd->skillx = 0; @@ -7953,11 +7951,6 @@ int skill_use_pos( struct map_session_data *sd, if( casttime<=0 ) /* 詠唱の無いものはキャンセルされない */ sd->state.skillcastcancel=0; - // instant cast attack skills depend on aspd as delay [celest] - if (delay <= 0 && skill_db[skill_num].skill_type == BF_WEAPON) { - delay = (battle_get_adelay (&sd->bl)/2) * battle_config.delay_rate / 100; - } - sd->skilltarget = 0; /* sd->cast_target_bl = NULL; */ tick=gettick(); |