Нашёл решение. Спасибо всем за помощь!
Функция правильно выглядит так:
function RingF()
while 1 do
if HasArtefact('Giovanni', ARTIFACT_NECROMANCER_PENDANT) == true then
SetObjectiveState('Amulet', OBJECTIVE_COMPLETED)
MessageBox(dir..'Amulet_founded.txt')
end;
sleep(1)
end;
end;
startThread(RingF);
С уважением.