summaryrefslogtreecommitdiff
path: root/src/map/skill.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/skill.c')
-rw-r--r--src/map/skill.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/map/skill.c b/src/map/skill.c
index ba4c51cc0..c31ec78cf 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -7866,9 +7866,18 @@ int skill_check_condition (struct map_session_data *sd, int skill, int lv, int t
if (sd->state.abra_flag)
{
- sd->skillitem = sd->skillitemlv = 0;
- if(type&1) sd->state.abra_flag = 0;
- return 1;
+ if (sd->skillitem != skill)
+ { //Cancelled, using a different skill.
+ sd->skillitem = sd->skillitemlv = sd->state.abra_flag = 0;
+ } else {
+ //Abracadabra skill, skip requisites!
+ if(type&1)
+ { //Clear out the data.
+ sd->skillitem = sd->skillitemlv = 0;
+ sd->state.abra_flag = 0;
+ }
+ return 1;
+ }
}
if (sd->menuskill_id == AM_PHARMACY &&