Всех приветствую, мне нужна небольшая помощь со скриптом.
Нашел осп-скрипт, который улучшает ИИ для конных лучников. По этому скрипту, конные стрелки начинают кружить вокруг противника против часовой стрелки (направо), обстреливая её и не давая себя достать. Так вот, ребята, как изменить скрипт, чтобы они двигались по часовой стрелке (поворачивали налево)?
Вот кусок скрипта, в котором это прописано.
(try_begin),
(agent_slot_eq, ":enemies_closest", slot_agent_is_running_away, 0),
(lt, ":distance_closest", 10000),
(try_begin),
(get_scene_boundaries, pos2, pos3),
(position_transform_position_to_local, pos4, pos2,pos50),
(position_get_x, ":left", pos4),
(position_get_y, ":down", pos4),
(position_transform_position_to_local, pos4, pos2,pos3),
(position_get_x, ":map_width", pos4),
(position_get_y, ":map_height", pos4),
(store_sub, ":right", ":map_width", ":left"),
(store_sub, ":up", ":map_height", ":down"),
(position_transform_position_to_local, pos4, pos50, pos51),
(position_get_x, ":enemies_x", pos4),
(position_get_y, ":enemies_y", pos4),
(assign, ":effect", 0),
(try_begin),
(neg|gt, ":distance_closest", 1000),
(assign, ":effect", -78000),
(else_try),
(gt, ":distance_closest", 2000),#
(store_sub,":effect", ":distance_closest", 0),
(val_mul, ":effect", 5),
(val_clamp, ":effect", 35000, 90000),
(try_end),
(assign, ":distance_to_boundary", 30000),
(val_min, ":distance_to_boundary", ":left"),
(val_min, ":distance_to_boundary", ":up"),
(val_min, ":distance_to_boundary", ":right"),
(val_min, ":distance_to_boundary", ":down"),
(try_begin),
(lt, ":distance_to_boundary", 30000),
(agent_slot_eq, ":enemies_closest", slot_agent_is_running_away, 0),
(store_div, ":map_middle_x", ":map_width", 20),
(store_div, ":map_middle_y", ":map_height", 20),
(position_copy_origin, pos4, pos2),
(position_move_x, pos4, ":map_middle_x", 1),
(position_move_y, pos4, ":map_middle_y", 1),
(get_distance_between_positions,":distance_middle", pos4, pos50),
(position_transform_position_to_local, pos4, pos50, pos4),
(position_get_x, ":map_middle_x", pos4),
(position_get_y, ":map_middle_y", pos4),
(val_mul, ":map_middle_x", 100),
(val_mul, ":map_middle_y", 100),
(val_mul, ":enemies_x", 100),
(val_mul, ":enemies_y", 100),
(store_div,":cos_middle",":map_middle_x",":distance_middle"),
(store_div,":sin_middle",":map_middle_y",":distance_middle"),
(store_div,":cos_enemies",":enemies_x",":distance_true"),
(store_div,":sin_enemies",":enemies_y",":distance_true"),
(store_acos, ":angle_cos", ":cos_middle"),
(store_asin, ":angle_sin", ":sin_middle"),
(store_acos, ":angle_cos_enemies", ":cos_enemies"),
(store_asin, ":angle_sin_enemies", ":sin_enemies"),
(try_begin),
(lt, ":angle_sin", 0),
(val_mul,":angle_cos", -1),
(val_add,":angle_cos", 360000),
(try_end),
(try_begin),
(lt, ":angle_sin_enemies", 0),
(val_mul,":angle_cos_enemies", -1),
(val_add,":angle_cos_enemies", 360000),
(try_end),
(store_sub, ":k2", ":angle_cos", ":angle_cos_enemies"),
(val_sub, ":k2", 270000),
(val_sub, ":k2", ":effect"),
(store_add, ":effect", ":k2", ":effect"),
(try_begin),
(lt, ":angle_cos", ":angle_cos_enemies"),
(val_add, ":effect", 360000),
(try_end),
(val_clamp,":effect",-210000, 15000),
(agent_set_attack_action, ":agent_no", -2, 1),
(agent_set_defend_action, ":agent_no", 3, 1),
(try_end),
(store_cos, ":cos", ":effect"),
(store_sin, ":sin", ":effect"),
(store_mul, ":k_x1", ":cos", ":enemies_y",),
(store_mul, ":k_x2", ":sin", ":enemies_x",),
(store_mul, ":k_y1", ":sin", ":enemies_y",),
(store_mul, ":k_y2", ":cos", ":enemies_x",),
(store_add, ":move_x",":k_x1", ":k_x2"),
(store_sub, ":move_y",":k_y1", ":k_y2"),
(position_move_x, pos50, ":move_x", 0),
(position_move_y, pos50, ":move_y", 0),
(try_end),
(agent_set_scripted_destination, ":agent_no", pos50, 1),