diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/map/pc.c | 4 | ||||
-rw-r--r-- | src/map/skill.c | 2 | ||||
-rw-r--r-- | src/map/status.h | 2 |
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; |