int GetNextCloakIndex( object oCloak) { int iIndex = GetItemAppearance( oCloak, ITEM_APPR_TYPE_SIMPLE_MODEL, 0); iIndex--; int iItemtype = GetBaseItemType( oCloak); if( iIndex == 98) iIndex = 64; else if( iIndex == 50) iIndex = 31; else if( iIndex == 0) iIndex = 99; return iIndex; } void main() { object oPC = GetPCSpeaker(); object oCloak = GetItemInSlot(INVENTORY_SLOT_CLOAK, oPC); object oPlayer = oPC; int iIndex = GetNextCloakIndex(oCloak); if( GetIsDM( oPlayer)) SendMessageToPC( oPlayer, "The index is: " + IntToString( iIndex)); object oNewCloak = CopyItemAndModify(oCloak, ITEM_APPR_TYPE_SIMPLE_MODEL, 0, iIndex, TRUE); if( GetIsObjectValid(oNewCloak)) { AssignCommand( oPlayer, ActionEquipItem(oNewCloak, INVENTORY_SLOT_CLOAK)); DestroyObject( oCloak); } else DestroyObject( oNewCloak); }