summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/map/status.c32
1 files changed, 17 insertions, 15 deletions
diff --git a/src/map/status.c b/src/map/status.c
index f3b0f46c5..7a563acd2 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -954,6 +954,23 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, int
default: return 0;
}
}
+
+ if (sc->data[SC_DANCING].timer != -1 && flag!=2)
+ {
+ if(sc->data[SC_LONGING].timer != -1)
+ { //Allow everything except dancing/re-dancing. [Skotlex]
+ if (skill_num == BD_ENCORE ||
+ skill_get_inf2(skill_num)&(INF2_SONG_DANCE|INF2_ENSEMBLE_SKILL)
+ )
+ return 0;
+ } else
+ if (skill_num != BD_ADAPTATION && skill_num != CG_LONGINGFREEDOM
+ && skill_num != BA_MUSICALSTRIKE && skill_num != DC_THROWARROW)
+ return 0;
+ if (sc->data[SC_DANCING].val1 == CG_HERMODE && skill_num == BD_ADAPTATION)
+ return 0; //Can't amp out of Wand of Hermode :/ [Skotlex]
+ }
+
if (skill_num && //Do not block item-casted skills.
(src->type != BL_PC || ((TBL_PC*)src)->skillitem != skill_num)
) { //Skills blocked through status changes...
@@ -975,21 +992,6 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, int
)
return 0;
- if (flag!=2 && sc->data[SC_DANCING].timer != -1)
- {
- if(sc->data[SC_LONGING].timer != -1)
- { //Allow everything except dancing/re-dancing. [Skotlex]
- if (skill_num == BD_ENCORE ||
- skill_get_inf2(skill_num)&(INF2_SONG_DANCE|INF2_ENSEMBLE_SKILL)
- )
- return 0;
- } else
- if (skill_num != BD_ADAPTATION && skill_num != CG_LONGINGFREEDOM
- && skill_num != BA_MUSICALSTRIKE && skill_num != DC_THROWARROW)
- return 0;
- if (sc->data[SC_DANCING].val1 == CG_HERMODE && skill_num == BD_ADAPTATION)
- return 0; //Can't amp out of Wand of Hermode :/ [Skotlex]
- }
}
}