Super Novice Soul Link Equip Checks (#8605)
- Fixed base level requirements for SN soul link to take effect (91->90, 97->96) - Fixed SN soul link not ignoring the item's base level restrictions - SN soul link now allows you to equip items even if a status change would usually prevent you from doing so - SN soul link now allows you to equip broken helmets and broken level 4 weapons - Fixes #8604
This commit is contained in:
parent
418873f25e
commit
247483c538
@ -1801,13 +1801,35 @@ uint8 pc_isequip(map_session_data *sd,int n)
|
||||
|
||||
if(item == nullptr)
|
||||
return ITEM_EQUIP_ACK_FAIL;
|
||||
if(item->elv && sd->status.base_level < (unsigned int)item->elv)
|
||||
|
||||
if (sd->sc.count && sd->sc.getSCE(SC_SPIRIT) && sd->sc.getSCE(SC_SPIRIT)->val2 == SL_SUPERNOVICE) {
|
||||
//Spirit of Super Novice equip bonuses. [Skotlex]
|
||||
if (sd->status.base_level >= 90 && item->equip & EQP_HELM)
|
||||
return ITEM_EQUIP_ACK_OK; //Can equip all helms
|
||||
|
||||
if (sd->status.base_level >= 96 && item->equip & EQP_ARMS && item->type == IT_WEAPON && item->weapon_level == 4)
|
||||
switch (item->subtype) { //In weapons, the look determines type of weapon.
|
||||
case W_DAGGER: //All level 4 - Daggers
|
||||
case W_1HSWORD: //All level 4 - 1H Swords
|
||||
case W_1HAXE: //All level 4 - 1H Axes
|
||||
case W_MACE: //All level 4 - 1H Maces
|
||||
case W_STAFF: //All level 4 - 1H Staves
|
||||
case W_2HSTAFF: //All level 4 - 2H Staves
|
||||
return ITEM_EQUIP_ACK_OK;
|
||||
}
|
||||
}
|
||||
|
||||
if(item->elv && sd->status.base_level < static_cast<unsigned int>(item->elv))
|
||||
return ITEM_EQUIP_ACK_FAILLEVEL;
|
||||
if(item->elvmax && sd->status.base_level > (unsigned int)item->elvmax)
|
||||
if(item->elvmax && sd->status.base_level > static_cast<unsigned int>(item->elvmax))
|
||||
return ITEM_EQUIP_ACK_FAILLEVEL;
|
||||
if(item->sex != SEX_BOTH && sd->status.sex != item->sex)
|
||||
return ITEM_EQUIP_ACK_FAIL;
|
||||
|
||||
// Broken equip
|
||||
if (sd->inventory.u.items_inventory[n].attribute == 1)
|
||||
return ITEM_EQUIP_ACK_FAIL;
|
||||
|
||||
//fail to equip if item is restricted
|
||||
if (!battle_config.allow_equip_restricted_item && itemdb_isNoEquip(item, sd->bl.m))
|
||||
return ITEM_EQUIP_ACK_FAIL;
|
||||
@ -1874,23 +1896,6 @@ uint8 pc_isequip(map_session_data *sd,int n)
|
||||
return ITEM_EQUIP_ACK_FAIL;
|
||||
if(item->equip && (sd->sc.getSCE(SC_KYOUGAKU) || sd->sc.getSCE(SC_SUHIDE)))
|
||||
return ITEM_EQUIP_ACK_FAIL;
|
||||
|
||||
if (sd->sc.getSCE(SC_SPIRIT) && sd->sc.getSCE(SC_SPIRIT)->val2 == SL_SUPERNOVICE) {
|
||||
//Spirit of Super Novice equip bonuses. [Skotlex]
|
||||
if (sd->status.base_level > 90 && item->equip & EQP_HELM)
|
||||
return ITEM_EQUIP_ACK_OK; //Can equip all helms
|
||||
|
||||
if (sd->status.base_level > 96 && item->equip & EQP_ARMS && item->type == IT_WEAPON && item->weapon_level == 4)
|
||||
switch(item->subtype) { //In weapons, the look determines type of weapon.
|
||||
case W_DAGGER: //All level 4 - Daggers
|
||||
case W_1HSWORD: //All level 4 - 1H Swords
|
||||
case W_1HAXE: //All level 4 - 1H Axes
|
||||
case W_MACE: //All level 4 - 1H Maces
|
||||
case W_STAFF: //All level 4 - 1H Staves
|
||||
case W_2HSTAFF: //All level 4 - 2H Staves
|
||||
return ITEM_EQUIP_ACK_OK;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Not equipable by class. [Skotlex]
|
||||
@ -11916,7 +11921,7 @@ bool pc_equipitem(map_session_data *sd,short n,int req_pos,bool equipswitch)
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!(pos&req_pos) || sd->inventory.u.items_inventory[n].equip != 0 || sd->inventory.u.items_inventory[n].attribute==1 ) { // [Valaris]
|
||||
if (!(pos&req_pos) || sd->inventory.u.items_inventory[n].equip != 0) {
|
||||
if( equipswitch ){
|
||||
clif_equipswitch_add( sd, n, req_pos, ITEM_EQUIP_ACK_FAIL );
|
||||
}else{
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user