axe_trap_control = (0.1, 0, 0,
[(assign, ":go", 0),
(scene_prop_get_num_instances, ":num_guilliotine_triggers", "spr_guilliotine_trigger"),
(try_for_range, ":trigger_no", 0, ":num_guilliotine_triggers"),
(scene_prop_get_instance, ":guilliotine_trigger_prop_id", "spr_guilliotine_trigger", ":trigger_no"),
(try_for_agents, ":agent"),
(agent_is_alive, ":agent"),
(scene_prop_has_agent_on_it, ":guilliotine_trigger_prop_id", ":agent"),
(try_begin),
(ge, "$g_trap_axe", 0),
(else_try),
(lt, "$g_trap_axe", 0),
(assign, ":go", 1),
(assign, "$g_trap_axe", ":agent"),
(try_end),
(try_end),
(try_begin),
(ge, "$g_trap_axe", 0),
(neg|scene_prop_has_agent_on_it, ":guilliotine_trigger_prop_id", ":agent"),
(assign, ":go", 1),
(assign, "$g_trap_axe", -1),
(try_end),
(try_end),
(eq, ":go", 1),
],
[(try_for_prop_instances, ":axe", "spr_guilliotine"),
(try_begin),
(scene_prop_slot_eq, ":axe", scene_prop_open_or_close_slot, 0), # if the trap is hidden - activate
(prop_instance_get_position, pos2, ":axe"),
(position_move_z, pos2, -320),
(prop_instance_animate_to_position, ":axe", pos2, 50),
(scene_prop_set_slot, ":axe", scene_prop_open_or_close_slot, 1),
(prop_instance_play_sound, ":axe", "snd_draw_greatsword", sf_vol_15),
(else_try), # if it is active - hide
(prop_instance_get_starting_position, pos1, ":axe"),
(prop_instance_animate_to_position, ":axe", pos1, 50),
(scene_prop_set_slot, ":axe", scene_prop_open_or_close_slot, 3),
(prop_instance_play_sound, ":axe", "snd_draw_greataxe", sf_vol_15),
(try_end),
(try_end),
])
Azura34 said:
Aşağıdaki tetikleyici module_mission_templates.py içindeki "town_center" bölümüne eklenebilirAzura34 said:
Madijeis said:
(0, 0, ti_once, [], [
(party_get_slot, ":town_lord", "$current_town", slot_town_lord),
(ge, ":town_lord", 0),
(troop_get_inventory_capacity, ":inventory_capacity", ":town_lord"),#whole inventory
#(assign,":inventory_capacity", 4),# for equipped items only
(try_begin),
(scene_prop_get_instance, ":weapon_rack", "spr_weapon_rack", 0),
(prop_instance_is_valid, ":weapon_rack"),
(prop_instance_set_scale, ":weapon_rack", 110, 100, 100), #it's slightly to narrow, so we widen by 10%
(assign, ":pos", pos0),
(prop_instance_get_position, ":pos", ":weapon_rack"),
(try_for_range, ":inv_slt_no", 0, ":inventory_capacity"),
(troop_get_inventory_slot, ":weapon_0", ":town_lord", ":inv_slt_no"),
(ge, ":weapon_0", 1), #aborted if slot is empty
(item_get_weapon_length, ":weapon_0_length", ":weapon_0"),
(item_get_type, ":weapon_0_type", ":weapon_0"),
(try_begin),
(eq, ":weapon_0_type", itp_type_shield), #shields go on the wall behind (where it should be anyway)
(position_move_z, ":pos", 150),
(position_move_y, ":pos", 40),
(position_move_x, ":pos", 10),
(position_rotate_x, ":pos", 90),
(position_rotate_z, ":pos", 45),
(else_try),
(this_or_next|eq, ":weapon_0_type", itp_type_crossbow),
(eq, ":weapon_0_type", itp_type_bow),
(position_move_x, ":pos", -60, 0),
(position_move_z, ":pos", 13, 0),
(position_move_y, ":pos", -5),
(position_move_z, ":pos", ":weapon_0_length", 0),
(position_rotate_x, ":pos", -95),
(else_try),
(eq, ":weapon_0_type", itp_type_thrown),
(position_move_x, ":pos", -60, 0),
(position_move_z, ":pos", -10, 0),
(position_move_y, ":pos", -5),
(position_move_z, ":pos", ":weapon_0_length", 0),
(position_rotate_z, ":pos", -180),
(position_rotate_x, ":pos", 90),
(else_try),
(eq, ":weapon_0_type", itp_type_polearm),
(position_move_x, ":pos", -60, 0),
(position_move_z, ":pos", -120, 0),
(position_move_y, ":pos", -10),
(val_div, ":weapon_0_length", 3),
(val_mul, ":weapon_0_length", 2),
(position_move_z, ":pos", ":weapon_0_length", 0),
(position_rotate_x, ":pos", 85),
(else_try),
(this_or_next|eq, ":weapon_0_type", itp_type_arrows),
(eq, ":weapon_0_type", itp_type_bolts),
(position_move_z, ":pos", -80, 0),
(position_move_y, ":pos", 18, 0),
(position_rotate_z, ":pos", 90),
(else_try),
(position_move_x, ":pos", -60, 0),
(position_move_z, ":pos", -70, 0),
(position_move_y, ":pos", -5),
(position_move_z, ":pos", ":weapon_0_length", 0),
(position_rotate_x, ":pos", -95),
(try_end),
(set_spawn_position, ":pos"),
(spawn_item, ":weapon_0", 0, 0),
#some manipulations with ":pos" here, if needed move or change pos
(try_end),
(try_end),
]),