Open ../src/map/clif.cpp and change code of the function "clif_parse_equipswitch_request_single" from:
void clif_parse_equipswitch_request_single( int fd, struct map_session_data* sd ){
#if PACKETVER >= 20170502
uint16 index = RFIFOW(fd, 2) - 2;
if( !battle_config.feature_equipswitch ){
return;
}
// Check if the index is valid
if( index >= MAX_INVENTORY ){
return;
}
// Check if the item was already added to equip switch
if( sd->inventory.u.items_inventory[index].equipSwitch ){
if( sd->npc_id ){
#ifdef RENEWAL
if( pc_hasprogress( sd, WIP_DISABLE_SKILLITEM ) ){
clif_msg( sd, WORK_IN_PROGRESS );
return;
}
#endif
if( !sd->npc_item_flag ){
return;
}
}
pc_equipswitch( sd, index );
}else{
pc_equipitem( sd, index, pc_equippoint(sd, index), true );
}
#endif
}
to:
void clif_parse_equipswitch_request_single( int fd, struct map_session_data* sd ){
#if PACKETVER >= 20170502
uint16 index = RFIFOW(fd, 2) - 2;
if( !battle_config.feature_equipswitch ){
return;
}
// Check if the index is valid
if( index >= MAX_INVENTORY ){
return;
}
// Check if the item exists
if( sd->inventory_data[index] == nullptr ){
return;
}
// Check if the item was already added to equip switch
if( sd->inventory.u.items_inventory[index].equipSwitch ){
if( sd->npc_id ){
#ifdef RENEWAL
if( pc_hasprogress( sd, WIP_DISABLE_SKILLITEM ) ){
clif_msg( sd, WORK_IN_PROGRESS );
return;
}
#endif
if( !sd->npc_item_flag ){
return;
}
}
pc_equipswitch( sd, index );
return;
}
pc_equipitem( sd, index, pc_equippoint(sd, index), true );
#endif
}