I dont get this mam
void skill_weaponrefine (struct map_session_data *sd, int idx)
{
nullpo_retv(sd);
if (idx >= 0 && idx < MAX_INVENTORY) {
struct item *item;
struct item_data *ditem = sd->inventory_data[idx];
item = &sd->status.inventory[idx];
if (item->nameid > 0 && ditem->type == IT_WEAPON) {
int material[5] = {
0,
ITEMID_PHRACON,
ITEMID_EMVERETARCON,
ITEMID_ORIDECON,
ITEMID_ORIDECON,
};
int i = 0, per;
if( ditem->flag.no_refine ) {
// if the item isn't refinable
clif->skill_fail(sd,sd->menuskill_id,USESKILL_FAIL_LEVEL,0);
return;
}
if( item->refine >= sd->menuskill_val || item->refine >= 10 ){
clif->upgrademessage(sd->fd, 2, item->nameid);
return;
}
if ((i = pc->search_inventory(sd, material[ditem->wlv])) == INDEX_NOT_FOUND) {
clif->upgrademessage(sd->fd, 3, material[ditem->wlv]);
return;
}
per = status->get_refine_chance(ditem->wlv, (int)item->refine) * 10;
// Aegis leaked formula. [malufett]
if (sd->status.class == JOB_MECHANIC_T)
per += 100;
else
per += 5 * (sd->status.job_level - 50);
currently stuck here where do i insert the safety refine and item obtained