Помню один чувак писал что можно сделать так:
В командном цикличном блоке вписать такую команду execute as @e[type=villager] at @s run execute at @e[tag=attack,type=zombie,distance=..80] run summon arrow ~ ~ ~
Эта команда спавнит от лица жителя стрелу в каждом зомби с тегом attack тем самым нанося ему 0 урона и заставляя зомби агриться на этого жителя
Вопрос лишь в том как сделать чтобы стрела не спавнилась постоянно в зомби, я конечно мог бы что-нибудь придумать но мне лень)
И кстати возможно первая команда не работает(я сам не проверял только вычитал где-то) , так что пробуй