В Дипломатии камера управляется как бы двумя курсорами. Стрелки с цифрами - поворотом и положением относительно горизонта, а буквы W,S,A,D - самим перемещением.
dplmc_death_camera = (
0, 0, 0,
[(eq, "$g_dplmc_battle_continuation", 0),
(main_hero_fallen),
(eq, "$g_dplmc_cam_activated", 1),
],
[
(get_player_agent_no, ":player_agent"),
(agent_get_team, ":player_team", ":player_agent"),
(try_begin),
(eq, "$g_dplmc_charge_when_dead", 1),
(team_get_movement_order, ":cur_order", ":player_team", grc_everyone),
(neq, ":cur_order", mordr_charge),
(team_give_order, ":player_team", grc_everyone, mordr_charge),
(try_end),
(mission_cam_get_position, pos1),
(assign, "$g_camera_rotate_x", 0),
(assign, "$g_camera_rotate_y", 0),
(assign, "$g_camera_rotate_z", 0),
(assign, "$g_camera_x", 0),
(assign, "$g_camera_y", 0),
(assign, "$g_camera_z", 0),
(try_begin),
(key_is_down, key_a),
(mission_cam_set_mode, 1),
(val_add, "$g_camera_x", 10),
(try_end),
(try_begin),
(key_is_down, key_d),
(mission_cam_set_mode, 1),
(val_sub, "$g_camera_x", 10),
(try_end),
(position_move_x, pos1, "$g_camera_x"),
(try_begin),
(key_is_down, key_w),
(mission_cam_set_mode, 1),
(val_add, "$g_camera_y", 10),
(try_end),
(try_begin),
(key_is_down, key_s),
(mission_cam_set_mode, 1),
(val_sub, "$g_camera_y", 10),
(try_end),
(position_move_y, pos1, "$g_camera_y"),
(try_begin),
(key_is_down, key_numpad_plus),
(mission_cam_set_mode, 1),
(val_add, "$g_camera_z", 10),
(try_end),
(try_begin),
(key_is_down, key_numpad_minus),
(mission_cam_set_mode, 1),
(val_sub, "$g_camera_z", 10),
(try_end),
(position_move_z, pos1, "$g_camera_z"),
(try_begin),
(key_is_down, key_numpad_6),
(mission_cam_set_mode, 1),
(val_add, "$g_camera_rotate_z", 1),
(try_end),
(try_begin),
(key_is_down, key_numpad_4),
(mission_cam_set_mode, 1),
(val_sub, "$g_camera_rotate_z", 1),
(try_end),
(position_rotate_z, pos1, "$g_camera_rotate_z"),
(try_begin),
(key_is_down, key_numpad_1),
(mission_cam_set_mode, 1),
(val_add, "$g_camera_rotate_y", 1),
(try_end),
(try_begin),
(key_is_down, key_numpad_3),
(mission_cam_set_mode, 1),
(val_sub, "$g_camera_rotate_y", 1),
(try_end),
(position_rotate_y, pos1, "$g_camera_rotate_y"),
(try_begin),
(key_is_down, key_numpad_8),
(mission_cam_set_mode, 1),
(val_add, "$g_camera_rotate_x", 1),
(try_end),
(try_begin),
(key_is_down, key_numpad_2),
(mission_cam_set_mode, 1),
(val_sub, "$g_camera_rotate_x", 1),
(try_end),
(position_rotate_x, pos1, "$g_camera_rotate_x"),
(mission_cam_set_position, pos1),
(try_begin),
(this_or_next|game_key_clicked, gk_view_char),
(this_or_next|game_key_clicked, gk_zoom),
(game_key_clicked, gk_cam_toggle),
(mission_cam_set_mode, 0),
(try_end),
])
Как видно. Там добавленно несколько глобальных переменных. Соответственно, их тоже надо будет добавлять в variables.
Потом он там объединён с тригерром замедл. коня при ранении:
И в таком виде уже ставится везде где нужно.
Там ещё много чего добаляется для этого. Лучше посмотреть в МС Дипломатия.