summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/map/pc.c4
-rw-r--r--src/map/skill.c2
-rw-r--r--src/map/status.h2
3 files changed, 6 insertions, 2 deletions
diff --git a/src/map/pc.c b/src/map/pc.c
index 6c8e3403d..936dd0d36 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -8776,7 +8776,7 @@ int pc_equipitem(struct map_session_data *sd,int n,int req_pos)
return 0;
}
- if (sd->sc.data[SC_BERSERK])
+ if (sd->sc.data[SC_BERSERK] || sd->sc.data[SC_NO_SWITCH_EQUIP])
{
clif->equipitemack(sd,n,0,EIA_FAIL); // fail
return 0;
@@ -8980,7 +8980,7 @@ int pc_unequipitem(struct map_session_data *sd,int n,int flag) {
}
// if player is berserk then cannot unequip
- if (!(flag & 2) && sd->sc.count && (sd->sc.data[SC_BERSERK]))
+ if (!(flag & 2) && sd->sc.count && (sd->sc.data[SC_BERSERK]) || sd->sc.data[SC_NO_SWITCH_EQUIP])
{
clif->unequipitemack(sd,n,0,UIA_FAIL);
return 0;
diff --git a/src/map/skill.c b/src/map/skill.c
index e8217d5d3..2bc46c40e 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -10134,6 +10134,8 @@ int skill_castend_pos2(struct block_list* src, int x, int y, uint16 skill_id, ui
case MH_XENO_SLASHER:
flag|=1;//Set flag to 1 to prevent deleting ammo (it will be deleted on group-delete).
case GS_GROUNDDRIFT: //Ammo should be deleted right away.
+ if ( skill_id == WM_SEVERE_RAINSTORM )
+ sc_start(src,src,SC_NO_SWITCH_EQUIP,100,0,skill->get_time(skill_id,skill_lv));
skill->unitsetting(src,skill_id,skill_lv,x,y,0);
break;
case RG_GRAFFITI: /* Graffiti [Valaris] */
diff --git a/src/map/status.h b/src/map/status.h
index d1b3c6471..942f86d7c 100644
--- a/src/map/status.h
+++ b/src/map/status.h
@@ -722,6 +722,8 @@ typedef enum sc_type {
SC_DEFSET,
SC_MDEFSET,
+ SC_NO_SWITCH_EQUIP,
+
SC_MAX, //Automatically updated max, used in for's to check we are within bounds.
} sc_type;