diff options
Diffstat (limited to 'src/map')
-rw-r--r-- | src/map/map.h | 3 | ||||
-rw-r--r-- | src/map/pc.c | 45 |
2 files changed, 31 insertions, 17 deletions
diff --git a/src/map/map.h b/src/map/map.h index ceddea0e8..01d9fef0e 100644 --- a/src/map/map.h +++ b/src/map/map.h @@ -660,7 +660,8 @@ enum { SP_SKILL_ATK, SP_UNSTRIPABLE, SP_ADD_DAMAGE_BY_CLASS, // 2018-2020 SP_SP_GAIN_VALUE, SP_IGNORE_DEF_MOB, SP_HP_LOSS_RATE, SP_ADDRACE2, SP_HP_GAIN_VALUE, // 2021-2025 SP_SUBSIZE, SP_DAMAGE_WHEN_UNEQUIP, SP_ADD_ITEM_HEAL_RATE, SP_LOSESP_WHEN_UNEQUIP, SP_EXP_ADDRACE, // 2026-2030 - SP_SP_GAIN_RACE, SP_SUBRACE2, SP_ADDEFF_WHENHIT_SHORT // 2031-2033 + SP_SP_GAIN_RACE, SP_SUBRACE2, SP_ADDEFF_WHENHIT_SHORT, // 2031-2033 + SP_UNSTRIPABLE_WEAPON,SP_UNSTRIPABLE_ARMOR,SP_UNSTRIPABLE_HELM,SP_UNSTRIPABLE_SHIELD // 2034-2037 }; enum { diff --git a/src/map/pc.c b/src/map/pc.c index b49012e01..16931043b 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -1457,22 +1457,6 @@ int pc_bonus(struct map_session_data *sd,int type,int val) if(sd->state.lr_flag != 2) sd->special_state.infinite_endure = 1; break; - case SP_UNBREAKABLE_WEAPON: - if(sd->state.lr_flag != 2) - sd->unbreakable_equip |= EQP_WEAPON; - break; - case SP_UNBREAKABLE_ARMOR: - if(sd->state.lr_flag != 2) - sd->unbreakable_equip |= EQP_ARMOR; - break; - case SP_UNBREAKABLE_HELM: - if(sd->state.lr_flag != 2) - sd->unbreakable_equip |= EQP_HELM; - break; - case SP_UNBREAKABLE_SHIELD: - if(sd->state.lr_flag != 2) - sd->unbreakable_equip |= EQP_SHIELD; - break; case SP_SPLASH_RANGE: if(sd->state.lr_flag != 2 && sd->splash_range < val) sd->splash_range = val; @@ -1537,6 +1521,22 @@ int pc_bonus(struct map_session_data *sd,int type,int val) sd->unbreakable += val; } break; + case SP_UNBREAKABLE_WEAPON: + if(sd->state.lr_flag != 2) + sd->unbreakable_equip |= EQP_WEAPON; + break; + case SP_UNBREAKABLE_ARMOR: + if(sd->state.lr_flag != 2) + sd->unbreakable_equip |= EQP_ARMOR; + break; + case SP_UNBREAKABLE_HELM: + if(sd->state.lr_flag != 2) + sd->unbreakable_equip |= EQP_HELM; + break; + case SP_UNBREAKABLE_SHIELD: + if(sd->state.lr_flag != 2) + sd->unbreakable_equip |= EQP_SHIELD; + break; case SP_CLASSCHANGE: // [Valaris] if(sd->state.lr_flag !=2){ sd->classchange=val; @@ -1570,10 +1570,23 @@ int pc_bonus(struct map_session_data *sd,int type,int val) if(sd->state.lr_flag != 2) sd->no_regen = val; break; + case SP_UNSTRIPABLE_WEAPON: + if(sd->state.lr_flag != 2) + sd->unstripable_equip |= EQP_WEAPON; + break; case SP_UNSTRIPABLE: + case SP_UNSTRIPABLE_ARMOR: if(sd->state.lr_flag != 2) sd->unstripable_equip |= EQP_ARMOR; break; + case SP_UNSTRIPABLE_HELM: + if(sd->state.lr_flag != 2) + sd->unstripable_equip |= EQP_HELM; + break; + case SP_UNSTRIPABLE_SHIELD: + if(sd->state.lr_flag != 2) + sd->unstripable_equip |= EQP_SHIELD; + break; case SP_SP_GAIN_VALUE: if(!sd->state.lr_flag) sd->sp_gain_value += val; |