Спасибо Efrit и Sav! Теперь я разобрался.
Вот так должен выглядеть скрипт:
!!HE-1:A2/y21/?y30/0; проверить артефакты у героя
!!VRy21&y30>0:*-1; сделать число отрицательным
!!HE-1&y30>0:Ay21; удалить все артефакты такого вида
!!VRy21&44/y30>0:*-1; сделать число положительным
Действия по возвращению артефактов:
!!VRv289&y30>0:+y30; записать в v289 количество артефактов
!!VRv289&y30>0:-1; убрать 1 арт
!!VRv290&y30>0:+y21; записать в v290 тип артефакта
!!DO281/1/v289/1:P-1;
!?FU281;
!!HEx1:A4/v290; дать герою артефакт
P.S. В многоразовой функции установленная v289 означает, что функция 281 запустится столько раз, сколько записано в v289?