Corrected some statuses and Mado Gear interaction (#3775)
* Fixes #3774. * Resolved a few statuses getting removed when using Mado Gear that should be enabled. * Added the ability to remove these statuses if the skills are disabled. Thanks to @laziem and @Lemongrass3110!
This commit is contained in:
parent
4944491228
commit
0d816975f7
@ -8927,14 +8927,15 @@ void pc_setoption(struct map_session_data *sd,int type)
|
||||
}
|
||||
if( (sd->class_&MAPID_THIRDMASK) == MAPID_MECHANIC ) {
|
||||
if( type&OPTION_MADOGEAR && !(p_type&OPTION_MADOGEAR) ) {
|
||||
static const sc_type statuses [] = { SC_MAXIMIZEPOWER, SC_OVERTHRUST, SC_WEAPONPERFECTION, SC_ADRENALINE, SC_CARTBOOST, SC_MELTDOWN, SC_MAXOVERTHRUST };
|
||||
|
||||
status_calc_pc(sd,SCO_NONE);
|
||||
status_change_end(&sd->bl,SC_MAXIMIZEPOWER,INVALID_TIMER);
|
||||
status_change_end(&sd->bl,SC_OVERTHRUST,INVALID_TIMER);
|
||||
status_change_end(&sd->bl,SC_WEAPONPERFECTION,INVALID_TIMER);
|
||||
status_change_end(&sd->bl,SC_ADRENALINE,INVALID_TIMER);
|
||||
status_change_end(&sd->bl,SC_CARTBOOST,INVALID_TIMER);
|
||||
status_change_end(&sd->bl,SC_MELTDOWN,INVALID_TIMER);
|
||||
status_change_end(&sd->bl,SC_MAXOVERTHRUST,INVALID_TIMER);
|
||||
for (uint8 i = 0; i < ARRAYLENGTH(statuses); i++) {
|
||||
int skill_id = status_sc2skill(statuses[i]);
|
||||
|
||||
if (skill_id >= 0 && !(skill_get_inf3(skill_id)&INF3_USABLE_MADO))
|
||||
status_change_end(&sd->bl,statuses[i],INVALID_TIMER);
|
||||
}
|
||||
pc_bonus_script_clear(sd,BSF_REM_ON_MADOGEAR);
|
||||
} else if( !(type&OPTION_MADOGEAR) && p_type&OPTION_MADOGEAR ) {
|
||||
status_calc_pc(sd,SCO_NONE);
|
||||
|
Loading…
x
Reference in New Issue
Block a user