This OSP allows shooter to follow the flight of the arrow / bolt / bullet / throwing weapon.
Requires WSE >= 4.1.0! http://forums.taleworlds.com/index.php/topic,324890.0.html
Requires WSE >= 4.1.0! http://forums.taleworlds.com/index.php/topic,324890.0.html
Code:
#Add to any ammo or throwing weapon
(ti_on_init_missile,
[
(try_begin),
(neg|multiplayer_is_dedicated_server),
(key_is_down, key_q),
(store_trigger_param_1, ":agent_no"),
(agent_get_player_id, ":player_no", ":agent_no"),
(gt, ":player_no", 0),
(player_is_active, ":player_no"),
(multiplayer_get_my_player, ":my_player_no"),
(eq, ":player_no", ":my_player_no"),
(store_trigger_param, ":missile_no", 6),
(gt, ":missile_no", 0),
(assign, "$g_last_spawned_missile", ":missile_no"),
(assign, "$g_last_eagle_eye_time", 0),
(mission_cam_set_mode, 1),
(try_end),
])
Code:
("game_quick_start",
[
#Add this string
(assign, "$g_last_spawned_missile", -1),
]),
Code:
(0, 0, 0, [(neg|multiplayer_is_dedicated_server),],
[
(store_mission_timer_a_msec, ":current_time"),
(try_begin),
(this_or_next|gt, "$g_last_spawned_missile", -1),
(gt, "$g_last_eagle_eye_time", 0),
(neg|key_is_down, key_q),
(mission_cam_set_mode, 0),
(assign, "$g_last_spawned_missile", -1),
(assign, "$g_last_eagle_eye_time", 0),
(try_end),
(try_begin),
(gt, "$g_last_spawned_missile", -1),
(try_begin),
(missile_is_valid, "$g_last_spawned_missile"),
(missile_get_cur_position, pos0, "$g_last_spawned_missile"),
(position_move_y, pos0, -150),
#use this code for fixed camera
(position_get_rotation_around_y, ":angle", pos0),
(store_mul, ":double_angle", ":angle", 2),
(val_sub, ":angle", ":double_angle"),
(position_rotate_y, pos0, ":angle"),
#use this code for free camera
#(multiplayer_get_my_player, ":my_player_no"),
#(player_get_agent_id, ":my_agent_no", ":my_player_no"),
#(agent_get_look_position, pos1, ":my_agent_no"),
#(position_copy_rotation, pos0, pos1),
(mission_cam_set_position, pos0),
(else_try),
(assign, "$g_last_spawned_missile", -1),
(store_add, "$g_last_eagle_eye_time", ":current_time", 300),
(try_end),
(try_end),
(try_begin),
(gt, "$g_last_eagle_eye_time", 0),
(gt, ":current_time", "$g_last_eagle_eye_time"),
(mission_cam_set_mode, 0),
(assign, "$g_last_eagle_eye_time", 0),
(try_end),
])
(ti_on_agent_killed_or_wounded, 0, 0, [(neg|multiplayer_is_dedicated_server),],
[
(store_trigger_param_1, ":dead_agent_no"),
(try_begin),
(ge, ":dead_agent_no", 0),
(agent_get_player_id, ":dead_player_no", ":dead_agent_no"),
(gt, ":dead_player_no", 0),
(player_is_active, ":dead_player_no"),
(multiplayer_get_my_player, ":my_player_no"),
(eq, ":dead_player_no", ":my_player_no"),
(mission_cam_set_mode, 0),
(assign, "$g_last_spawned_missile", -1),
(assign, "$g_last_eagle_eye_time", 0),
(try_end),
])