function PrisonTouch(hero)
Trigger(OBJECT_TOUCH_TRIGGER, "Prison", nil)
startThread(function(hero) pl=GetObjectOwner(hero); while not (length(GetPlayerHeroes(pl))>1) do sleep() end; RemoveObject(hero) end, hero)
end
Trigger(OBJECT_TOUCH_TRIGGER, "Prison", "PrisonTouch")
Как вариант; функция запускает проверку, которая ждет, пока у игрока-владельца не станет больше одного героя (чтобы удаление не привело к поражению), затем удаляет героя.