NightHawkreal, с помощью ti_on_agent_hit можно выяснить кто, кого и чем бьет и добавить повреждений в триггере.
Вот пара примеров использования (форматирование почему-то не сохранилось).
При ударе, если нанесены достаточно большие повреждения, противник может упасть, если бьет игрок и бьет по ногам шанс увеличивается:
common_strike_fall = (
ti_on_agent_hit, 0, 0,
[
(store_trigger_param_1,":victim"),
(store_trigger_param_2,":isplayer?"),
(store_trigger_param_3,":damage"),
(get_player_agent_no, ":player_agent"),
(store_random_in_range,":chance",0,100),
(store_agent_hit_points,":hp",":victim", 1),
(val_sub,":chance",":damage"),
(try_begin),
(agent_is_human,":victim"),
(ge, ":damage", 25),
(gt, ":hp", ":damage"),
(agent_get_horse,":horse",":victim"),
(eq,":horse",-1),
(try_begin),
(eq,":isplayer?",":player_agent"),
(agent_get_position,pos1,":victim"),
(position_transform_position_to_local, pos3, pos1, pos0),
(position_get_z, ":z_off", pos3),
(le, ":z_off", 90),
(val_sub,":chance",":damage"),
(val_sub,":chance",":damage"),
(try_end),
(neg|ge,":chance",0),
(agent_set_animation, ":victim", "anim_strike_fall_back_rise"),
(try_end),
], [] )
Ломающаяся ланса (если юнит бьет лансой, то есть шанс, что она сломается и юнит автоматически "возьмет" другое оружие - скрипт Peteo):
common_gusar_lanza = (
ti_on_agent_hit, 0, 0, [],
[
(store_trigger_param_2, ":killing_agent_no"),
(get_player_agent_no, ":player_agent"),
(store_random_in_range,":breakchance",1,100),
(assign,":weapon",reg0),
(try_begin),
(neq,":killing_agent_no",":player_agent"),
(gt, ":breakchance", 50),
(this_or_next|eq,"itm_gusar_lanza",":weapon"),
(eq,"itm_gusar_lanza_b",":weapon"),
(agent_unequip_item,":killing_agent_no",":weapon"),
(play_sound_at_position,"snd_shield_broken", pos0),
(particle_system_burst, "psys_lanza_straw", pos0, 10),
(store_random_in_range,":chance",0,100),
(try_begin),
(ge, ":chance", 50),
(agent_equip_item,":killing_agent_no","itm_konchar"),
(agent_set_wielded_item, ":killing_agent_no", "itm_konchar"),
(else_try),
(is_between, ":chance", 1, 50),
(agent_equip_item,":killing_agent_no","itm_sablya_d"),
(agent_set_wielded_item, ":killing_agent_no", "itm_sablya_d"),
(try_end),
(try_end),
])