summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/map/battle.c7
-rw-r--r--src/map/skill.c3
-rw-r--r--src/map/status.c3
3 files changed, 7 insertions, 6 deletions
diff --git a/src/map/battle.c b/src/map/battle.c
index 07a195503..fbc166874 100644
--- a/src/map/battle.c
+++ b/src/map/battle.c
@@ -5393,8 +5393,7 @@ void battle_reflect_damage(struct block_list *target, struct block_list *src, st
sc = NULL;
if( sc ) {
- if (sc->data[SC_DEVOTION] && !(wd->flag & BF_SKILL))
- return; // No reflect for basic attacks on devoted characters
+
if (wd->flag & BF_SHORT && !(skill->get_inf(skill_id) & (INF_GROUND_SKILL | INF_SELF_SKILL))) {
if( sc->data[SC_CRESCENTELBOW] && !is_boss(src) && rnd()%100 < sc->data[SC_CRESCENTELBOW]->val2 ){
@@ -5461,7 +5460,9 @@ void battle_reflect_damage(struct block_list *target, struct block_list *src, st
if( wd->dmg_lv >= ATK_BLOCK ) {/* yes block still applies, somehow gravity thinks it makes sense. */
if( sc ) {
- if( sc->data[SC_REFLECTSHIELD] && skill_id != WS_CARTTERMINATION && skill_id != GS_DESPERADO ) {
+ if( sc->data[SC_REFLECTSHIELD] && skill_id != WS_CARTTERMINATION && skill_id != GS_DESPERADO
+ && !(!(wd->flag&BF_SKILL) && sc->data[SC_DEVOTION])
+ ) {
NORMALIZE_RDAMAGE(damage * sc->data[SC_REFLECTSHIELD]->val2 / 100);
#ifndef RENEWAL
diff --git a/src/map/skill.c b/src/map/skill.c
index aa87d9f4d..97d4f3e9f 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -11489,9 +11489,8 @@ int skill_unit_onplace(struct skill_unit *src, struct block_list *bl, int64 tick
sce->val4 = 0;
timer->delete(sce->timer, status->change_timer);
sce->timer = timer->add(tick+sg->limit, status->change_timer, bl->id, type);
- } else if (!battle_config.song_timer_reset)
+ }
-
break;
case UNT_FOGWALL:
diff --git a/src/map/status.c b/src/map/status.c
index 4c136f870..4f7effa4a 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -1790,7 +1790,8 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, uin
//If targeting, cloak+hide protect you, otherwise only hiding does.
hide_flag = flag?OPTION_HIDE:(OPTION_HIDE|OPTION_CLOAK|OPTION_CHASEWALK);
- //You cannot hide from ground skills.
+ // There is no NF for ground skills, but every earth type skill out there
+ // affects hidding except Stone Curse
if( skill->get_ele(skill_id,1) == ELE_EARTH && skill_id != MG_STONECURSE)
hide_flag &= ~OPTION_HIDE;