3 кода с wb

какой-то возможно даже на восстановление хп, может кто помочь разобраться и написать свой код для ИГ?
1 код:
("overflow_damage_effect_extra_hp", [
(store_script_param, ":inflicted_agent", 1),
(store_script_param, ":inflicted_damage", 2),
(try_begin),
(gt,":inflicted_agent", -1),
(gt,":inflicted_damage", 0),
(store_agent_hit_points, ":inflicted_agent_hp", ":inflicted_agent", 1),
(this_or_next|lt, ":inflicted_agent_hp", ":inflicted_damage"),
(neg|agent_is_human, ":inflicted_agent"),
(agent_get_slot, ":extra_hp", ":inflicted_agent", slot_agent_extra_hp),
(gt, ":extra_hp", 0),
(val_add,":extra_hp", ":inflicted_agent_hp"),
(val_sub,":extra_hp", ":inflicted_damage"),
(agent_set_slot, ":inflicted_agent", slot_agent_extra_hp, ":extra_hp"),
(try_begin),
(le, ":extra_hp", 0),
(agent_set_no_death_knock_down_only, ":inflicted_agent", 0),
(try_end),
(try_begin),
(agent_get_troop_id, ":troop_no", ":inflicted_agent"),
(agent_has_item_equipped, ":inflicted_agent", "itm_felguard_body"),
(agent_has_item_equipped, ":inflicted_agent", "itm_felguard_calf"),
(this_or_next|eq, ":troop_no", "trp_cheat_man"),
(eq,"$g_use_special_item", 1),
(agent_set_no_death_knock_down_only, ":inflicted_agent", 1),
(agent_set_slot, ":inflicted_agent", slot_agent_extra_hp, 5000),
(try_end),
(try_end),
]),
2 код:
("init_extra_hp",
[
(store_script_param_1, ":agent_no"),
(get_player_agent_no, ":player_agent"),
(try_begin),
(party_slot_eq, "p_main_party", slot_party_use_extra_hp, 1),
(agent_is_human, ":agent_no"),
(agent_get_troop_id, ":troop_no", ":agent_no"),
(store_add,":extra_hp","$g_game_difficulty",-1),
(val_max,":extra_hp",1),
(try_begin),
(agent_get_troop_id, ":troop_no", ":agent_no"),
(troop_is_hero, ":troop_no"),
(val_mul,":extra_hp",2),
(try_end),
(try_begin),
(eq, ":agent_no",":player_agent"),
(assign,reg1,":extra_hp"),
(store_div,reg2,":extra_hp",2),
(display_message, "@this_battle, you and all hero have {reg1} extra_hp,troop has {reg2} extra_hp"),
(try_end),
(call_script, "script_get_troop_max_hp", ":troop_no"),
(assign, ":max_hp", reg0),
(val_mul, ":max_hp", ":extra_hp"),
(agent_set_slot, ":agent_no", slot_agent_extra_hp, ":max_hp"),
(agent_set_no_death_knock_down_only, ":agent_no", 1),
#(agent_set_slot, ":agent_no", slot_agent_spawned, 1),
(else_try),
(party_slot_eq, "p_main_party", slot_party_horse_use_extra_hp, 1),
(neg|agent_is_human, ":agent_no"),
(agent_get_item_id, ":horse", ":agent_no"),
(ge, ":horse", 0),
(store_agent_hit_points,":cur_hp",":agent_no",1),
(agent_set_hit_points,":agent_no",100,0),
(store_agent_hit_points,":max_hp",":agent_no",1),
(agent_set_hit_points,":agent_no",":cur_hp",1),
(assign,":max_hp",100),
(store_add,":extra_hp","$g_game_difficulty",1),
(val_max,":extra_hp",1),
(val_mul,":max_hp",":extra_hp"),
(agent_set_max_hit_points,":agent_no",":max_hp",0),
#(agent_set_no_death_knock_down_only, ":agent_no", 1),
(agent_set_slot, ":agent_no", slot_agent_extra_hp, ":max_hp"),
(try_end),
]),
3 код:
("cf_agent_heal",
[
(store_script_param, ":agent_caster",1),
(agent_get_troop_id, ":troop_no", ":agent_caster"),
(store_character_level,":level",":troop_no"),
(agent_get_position, pos1, ":agent_caster"),
(store_mul,":ch_bonus",":level",100),
(val_mul,":level",5),
(assign,":victim",-1),
(try_begin),
(store_agent_hit_points,":life",":agent_caster",0),
(le, ":life", 50),
(assign,":victim",":agent_caster"),
(try_end),
(try_for_agents,":agent"),
(agent_is_alive,":agent"),
(agent_is_human,":agent"),
(eq,":victim",-1),
(assign, ":continue", 0),
(try_begin),
(agent_is_ally, ":agent"),
(agent_is_ally, ":agent_caster"),
(assign, ":continue", 1),
(else_try),
(neg|agent_is_ally, ":agent"),
(neg|agent_is_ally, ":agent_caster"),
(assign, ":continue", 1),
(try_end),
(eq, ":continue", 1),
(neg|agent_slot_eq, ":agent", slot_agent_has_been_special_ability, heal),
(agent_get_position, pos2, ":agent"),
(get_distance_between_positions,":distance",pos2,pos1),
(le,":distance",":ch_bonus"),
(store_agent_hit_points,":life",":agent",0),
(lt,":life",90),
(assign,":victim",":agent"),
(try_end),
(try_begin),
(eq,":victim",-1),
(store_agent_hit_points,":life",":agent_caster",0),
(lt,":life",90),
(assign,":victim",":agent_caster"),
(try_end),
(ge,":victim",0),
(agent_set_slot, ":victim", slot_agent_has_been_special_ability, heal),
(agent_get_position, pos21, ":victim"),
(store_agent_hit_points,":life",":victim",0),
(val_add,":life",":level"),
(agent_set_hit_points,":victim",":life",0),
(position_move_z,pos21,100),
(particle_system_burst, "psys_heal_effect", pos21, 10),
(agent_set_slot, ":victim", slot_agent_special_damage_type, 0),
(agent_set_slot, ":victim", slot_agent_special_damage_time, 0),
(agent_set_slot, ":victim", slot_agent_special_damage_power, 0),
(neg|agent_slot_eq, ":victim", slot_agent_is_running_away, 0),
(agent_stop_running_away, ":victim"),
(agent_clear_scripted_mode,":victim"),
(agent_set_slot, ":victim", slot_agent_is_running_away, 0),
]),