Можно и на триггер прикосновения:
function touch_peasant(hero)
repeat
sleep(1);
if IsObjectExists("peasant") == nil then
SetObjectOwner("hizhina", 1);
break;
end;
until IsHeroAlive(hero) == nil
end;
Trigger(OBJECT_TOUCH_TRIGGER, "peasant", "touch_peasant")
По-моему через COMBAT_RESULTS_TRIGGER сложновато.