int item_unequip_selected(lua_State* L)
{
LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr();
if (!lua_isnumber(L, 1))
{
sys_err("Argument error.");
lua_pushboolean(L, false);
return 1;
}
BYTE bCell = lua_tonumber(L, 1); //bcell == BYTE, iCell == INT, dCell == DWORD ....
if (bCell < 0 || bCell >= WEAR_MAX_NUM)
{
sys_err("Invalid wear position %d. Index out of range(0..%d)", bCell, WEAR_MAX_NUM);
lua_pushboolean(L, false);
return 1;
}
//LPITEM item = CQuestManager::instance().GetCurrentItem(); //current item in used
LPITEM equipped = ch->GetWear(bCell); //current equipped item on target slot
//check the pointers
if (!ch || !equipped)//!item)
{
sys_err("No Item or Character Visible.");
lua_pushboolean(L,false);
return 1;
}
//remove the equipped item
if (equipped->IsEquipped())
{
sys_log(0, "item_unequip_selected Player: %s Vnum: %d Cell: %d ::: TRUE ",ch->GetName(), item->GetVnum(), bCell);
ch->UnequipItem(equipped);
lua_pushboolean(L, true);
return 1;
}
else
{
sys_log(0, "item_unequip_selected Player: %s Vnum: %d Cell: %d ::: False ",ch->GetName(), item->GetVnum(), bCell);
lua_pushboolean(L, false);
return 1;
}
}
try this