хм.. не, я немного другое имел в виду
есть функция
(agent_deliver_damage_to_agent,<agent_id_deliverer>,<agent_id>,<value>), #if value <= 0, then damage will be calculated using the weapon item
делает следующие: первый агент наносит второму агенту некий урон, значение урона указывается вот здесь
<value>к примеру (agent_deliver_damage_to_agent,":agent_1",":agent_2",50), агент № 1 нанес агенту № 2 пятьдесят (50) едениц урона
а если так (agent_deliver_damage_to_agent,":agent_1",":agent_2",0), агент № 1 нанес агенту № 2 урон, сколько урона он нанес расчитывается движком исходя из оружия, которое имеет в данный момент агент № 1 (это судя по коменту, я не проверял, но такая строчка со значением 0 вроде используется в нейтиве при расчете быстрых битв

, значит должна работать)
перед этой командой можно поставить проверку на использование агентом ":agent_2" (т.е. терпилой

) щита и если щит в руках у него есть и он им защищается, выполнение agent_deliver_damage_to_agent прервать.
Это если свой скрипт делать, вроде берсерковского и триггером его запускать
а так как ты говоришь я не знаю как сделать, может и возможно, но сложно
