summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog.txt11
-rw-r--r--conf-tmpl/battle_athena.conf3
-rw-r--r--src/map/skill.c27
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();