summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/map/skill.c5
-rw-r--r--src/map/skill.h1
-rw-r--r--src/map/unit.c2
3 files changed, 7 insertions, 1 deletions
diff --git a/src/map/skill.c b/src/map/skill.c
index acef1a96d..610fc5790 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -852,6 +852,9 @@ int skillnotok (int skillid, struct map_session_data *sd)
if (battle_config.gm_skilluncond && pc_isGM(sd) >= battle_config.gm_skilluncond)
return 0; // gm's can do anything damn thing they want
+ if(sd->menuskill_id && skillid != sd->menuskill_id)
+ return 1; //Can't use skills while a menu is open.
+
// Check skill restrictions [Celest]
if(!map_flag_vs(m) && skill_get_nocast (skillid) & 1)
return 1;
@@ -8309,7 +8312,7 @@ int skill_check_condition (struct map_session_data *sd, int skill, int lv, int t
case GD_BATTLEORDER:
case GD_REGENERATION:
case GD_RESTORE:
- //Emergency Recall is handled on skill_notok
+ //Emergency Recall is handled on skillnotok
if (!agit_flag) {
clif_skill_fail(sd,skill,0,0);
return 0;
diff --git a/src/map/skill.h b/src/map/skill.h
index 50781bfbd..952448d74 100644
--- a/src/map/skill.h
+++ b/src/map/skill.h
@@ -157,6 +157,7 @@ int skill_get_splash( int id , int lv );
int skill_get_hp( int id ,int lv );
int skill_get_mhp( int id ,int lv );
int skill_get_sp( int id ,int lv );
+int skill_get_state(int id);
int skill_get_zeny( int id ,int lv );
int skill_get_num( int id ,int lv );
int skill_get_cast( int id ,int lv );
diff --git a/src/map/unit.c b/src/map/unit.c
index 15571bc99..81aa1c3b9 100644
--- a/src/map/unit.c
+++ b/src/map/unit.c
@@ -1620,6 +1620,8 @@ int unit_remove_map(struct block_list *bl, int clrtype) {
guild_reply_invite(sd,sd->guild_invite,0);
if(sd->guild_alliance>0)
guild_reply_reqalliance(sd,sd->guild_alliance_account,0);
+ if(sd->menuskill_id)
+ sd->menuskill_id = sd->menuskill_lv = 0;
pc_delinvincibletimer(sd);