409 lines
11 KiB
Python
Executable File
409 lines
11 KiB
Python
Executable File
USING "rage_builtins.sch"
|
|
USING "globals.sch"
|
|
|
|
#IF IS_FINAL_BUILD
|
|
SCRIPT
|
|
ENDSCRIPT
|
|
#ENDIF
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
USING "commands_camera.sch"
|
|
USING "commands_streaming.sch"
|
|
USING "script_player.sch"
|
|
USING "commands_clock.sch"
|
|
USING "selector_public.sch"
|
|
|
|
CONST_INT numlocation 7
|
|
INT index, settle_time, average_repeat
|
|
VECTOR FPSlocation[numlocation], vehicles_coords
|
|
STRING FPSlocationName[numlocation]
|
|
VECTOR v_car_destination[numlocation]
|
|
FLOAT car_heading[numlocation]
|
|
FLOAT new_heading
|
|
FLOAT camera_pan_mod
|
|
FLOAT camera_pitch_mod
|
|
VEHICLE_INDEX veh_car
|
|
MODEL_NAMES model_car = NINEF2
|
|
|
|
|
|
ENUM FPS_TEST_STAGE
|
|
CHOOSE_SETUP,
|
|
SETUP,
|
|
WARP_TO_LOCATION,
|
|
WAIT_TO_SETTLE,
|
|
CAMERA_PITCH,
|
|
CAMERA_ROTATE,
|
|
CREATE_CAR,
|
|
CAR_DRIVE,
|
|
CLEANUP_ZONE,
|
|
FPS_RESULTS
|
|
ENDENUM
|
|
FPS_TEST_STAGE FPSlocationStage = CHOOSE_SETUP
|
|
|
|
PROC CLEANUP_SCRIPT()
|
|
SET_ENTITY_PROOFS(PLAYER_PED_ID(), FALSE, FALSE, FALSE, FALSE, FALSE)
|
|
SET_PLAYER_CONTROL(PLAYER_ID(), TRUE)
|
|
FREEZE_ENTITY_POSITION(PLAYER_PED_ID(), FALSE)
|
|
METRICS_ZONE_STOP()
|
|
// METRICS_ZONE_SAVE()
|
|
PRINTLN("FPS TEST METRICS_ZONE_SAVE")
|
|
METRICS_ZONES_CLEAR()
|
|
METRICS_ZONES_HIDE()
|
|
SET_STREAMING(TRUE)
|
|
PRINTLN("FPS TEST SCRIPT TERMINATING")
|
|
TERMINATE_THIS_THREAD()
|
|
ENDPROC
|
|
|
|
|
|
SCRIPT
|
|
|
|
IF HAS_FORCE_CLEANUP_OCCURRED(DEFAULT_FORCE_CLEANUP_FLAGS)
|
|
ENDIF
|
|
|
|
IF GET_COMMANDLINE_PARAM_EXISTS("maponly")
|
|
PRINTLN("FPS TEST MAGDEMO MAPONLY SCRIPT STARTING")
|
|
ELSE
|
|
PRINTLN("FPS TEST MAGDEMO SCRIPT STARTING")
|
|
ENDIF
|
|
|
|
index = 0
|
|
average_repeat = 0
|
|
|
|
WHILE TRUE
|
|
|
|
WAIT(0)
|
|
|
|
IF IS_PLAYER_PLAYING(PLAYER_ID())
|
|
|
|
SWITCH FPSlocationStage
|
|
|
|
CASE CHOOSE_SETUP
|
|
|
|
camera_pitch_mod = 1.0
|
|
camera_pan_mod = 0.6
|
|
settle_time = 3000
|
|
FPSlocationStage = SETUP
|
|
|
|
// PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", "Press Numpad 1 for location test. Press Numpad 2 for magdemo locations ", 1000, 1)
|
|
|
|
BREAK
|
|
|
|
CASE SETUP
|
|
|
|
FPSlocation[0] = <<-782.2075, 185.3187, 71.8352>> // Mansion Pool at sunlounger
|
|
FPSlocation[1] = <<-864.6050, 162.3987, 64.9456>> // Drive from mansion
|
|
v_car_destination[1] = <<-831.1718, -86.7136, 36.8818>>
|
|
car_heading[1] = 180
|
|
FPSlocation[2] = <<2006.6549, 3825.3169, 31.2671>> // Trailer Park Drive
|
|
v_car_destination[2] = <<1022.9534, 3628.9602, 31.7661>>
|
|
car_heading[2] = 28.9
|
|
FPSlocation[3] = <<-1182.1354, -1572.9576, 3.3047>> // Franklin at mussel beach
|
|
FPSlocation[4] = <<-1187.4091, -1530.4419, 3.3809>> // Franklin driving from mussel beach
|
|
v_car_destination[4] = <<-67.4970, -572.2403, 36.5082>>
|
|
car_heading[4] = 301
|
|
FPSlocation[5] = <<1367.1207, -2075.1047, 350.9982>> // FBI2 Heli fly
|
|
v_car_destination[5] = <<153.6122, -703.1117, 350.0777>>
|
|
car_heading[5] = 344
|
|
FPSlocation[6] = <<109.6936, -616.7566, 206.0467>> // FBI2 Exterior of scyscraper
|
|
|
|
IF GET_COMMANDLINE_PARAM_EXISTS("maponly")
|
|
FPSlocationName[0] = "mc_MansionPool_maponly"
|
|
FPSlocationName[1] = "mc_MansionDrive_maponly"
|
|
FPSlocationName[2] = "mc_TrailerP_maponly"
|
|
FPSlocationName[3] = "mc_MBeach_maponly"
|
|
FPSlocationName[4] = "mc_MBeachDrive_maponly"
|
|
FPSlocationName[5] = "mc_FBI2HeliA_maponly"
|
|
FPSlocationName[6] = "mc_FBI2Office_maponly"
|
|
ELSE
|
|
FPSlocationName[0] = "mc_MansionPool"
|
|
FPSlocationName[1] = "mc_MansionDrive"
|
|
FPSlocationName[2] = "mc_TrailerP"
|
|
FPSlocationName[3] = "mc_MBeach"
|
|
FPSlocationName[4] = "mc_MBeachDrive"
|
|
FPSlocationName[5] = "mc_FBI2HeliA"
|
|
FPSlocationName[6] = "mc_FBI2Office"
|
|
ENDIF
|
|
|
|
METRICS_ZONES_CLEAR()
|
|
PRINTLN("FPS TEST METRICS_ZONES_CLEAR")
|
|
// METRICS_ZONES_SHOW()
|
|
SET_ENTITY_PROOFS(PLAYER_PED_ID(), TRUE, TRUE, TRUE, TRUE, TRUE)
|
|
SET_PLAYER_CONTROL(PLAYER_ID(), FALSE)
|
|
CLEAR_PLAYER_WANTED_LEVEL(PLAYER_ID())
|
|
FPSlocationStage = WARP_TO_LOCATION
|
|
|
|
// Fade the screen in
|
|
IF NOT IS_SCREEN_FADED_IN()
|
|
AND NOT IS_SCREEN_FADING_IN()
|
|
DO_SCREEN_FADE_IN(500)
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
CASE WARP_TO_LOCATION
|
|
|
|
SET_MAX_WANTED_LEVEL(0)
|
|
SET_PLAYER_WANTED_LEVEL(PLAYER_ID(), 0)
|
|
SET_PLAYER_WANTED_LEVEL_NOW(PLAYER_ID())
|
|
|
|
SET_CURRENT_SELECTOR_PED(SELECTOR_PED_MICHAEL)
|
|
SET_ENTITY_COORDS(PLAYER_PED_ID(), FPSlocation[index])
|
|
SET_ENTITY_HEADING(PLAYER_PED_ID(), 0)
|
|
SET_GAMEPLAY_CAM_RELATIVE_HEADING()
|
|
new_heading = -90
|
|
SET_GAMEPLAY_CAM_RELATIVE_PITCH(new_heading)
|
|
CLEAR_AREA(FPSlocation[index], 2000, TRUE)
|
|
LOAD_SCENE(FPSlocation[index])
|
|
LOAD_ALL_OBJECTS_NOW()
|
|
INSTANTLY_FILL_PED_POPULATION()
|
|
INSTANTLY_FILL_VEHICLE_POPULATION()
|
|
SET_CLOCK_TIME(17, 0, 0)
|
|
SET_WEATHER_TYPE_NOW_PERSIST("EXTRASUNNY")
|
|
SETTIMERA(0)
|
|
FPSlocationStage = WAIT_TO_SETTLE
|
|
|
|
// average_repeat = 3
|
|
BREAK
|
|
|
|
CASE WAIT_TO_SETTLE
|
|
|
|
IF TIMERA() > settle_time
|
|
//SET_GAMEPLAY_CAM_RELATIVE_PITCH(0)
|
|
// METRICS_ZONES_HIDE()
|
|
SETTIMERA(0)
|
|
FPSlocationStage = CAMERA_PITCH
|
|
IF index = 1 OR index = 2 OR index = 4 OR index = 5 OR index = 8
|
|
IF average_repeat = 0
|
|
METRICS_ZONE_START(FPSlocationName[index])
|
|
PRINTLN("FPS TEST METRICS_ZONE_START - STREAMING OFF")
|
|
ENDIF
|
|
SET_STREAMING(TRUE)
|
|
FPSlocationStage = CREATE_CAR
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
IF IS_KEYBOARD_KEY_JUST_PRESSED(KEY_J) //Debug skip camera rotateF
|
|
SETTIMERA(5000)
|
|
FPSlocationStage = CLEANUP_ZONE
|
|
ENDIF
|
|
|
|
IF index = 6
|
|
FREEZE_ENTITY_POSITION(PLAYER_PED_ID(), TRUE)
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
CASE CAMERA_PITCH
|
|
|
|
IF TIMERA() > 30
|
|
SETTIMERA(0)
|
|
new_heading = new_heading + camera_pitch_mod
|
|
IF new_heading < 0
|
|
SET_GAMEPLAY_CAM_RELATIVE_PITCH(new_heading)
|
|
ELSE
|
|
new_heading = 0
|
|
FPSlocationStage = CAMERA_ROTATE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_KEYBOARD_KEY_JUST_PRESSED(KEY_J) //Debug skip camera rotate
|
|
SETTIMERA(5000)
|
|
FPSlocationStage = CLEANUP_ZONE
|
|
ENDIF
|
|
|
|
IF index = 6
|
|
FREEZE_ENTITY_POSITION(PLAYER_PED_ID(), TRUE)
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
CASE CAMERA_ROTATE
|
|
|
|
IF TIMERA() > 30
|
|
SETTIMERA(0)
|
|
new_heading = new_heading + camera_pan_mod
|
|
IF new_heading < 360
|
|
SET_GAMEPLAY_CAM_RELATIVE_HEADING(new_heading)
|
|
ELSE
|
|
new_heading = 0
|
|
IF average_repeat < 4
|
|
|
|
average_repeat ++
|
|
|
|
IF average_repeat = 1
|
|
METRICS_ZONE_START(FPSlocationName[index])
|
|
PRINTLN("FPS TEST METRICS_ZONE_START - STREAMING OFF")
|
|
average_repeat ++
|
|
ENDIF
|
|
|
|
|
|
// METRICS_ZONE_STOP()
|
|
// METRICS_ZONES_SHOW()
|
|
SETTIMERA(settle_time)
|
|
FPSlocationStage = WAIT_TO_SETTLE
|
|
ELSE
|
|
FPSlocationStage = CLEANUP_ZONE
|
|
ENDIF
|
|
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_KEYBOARD_KEY_JUST_PRESSED(KEY_J) //Debug skip camera rotate
|
|
SETTIMERA(5000)
|
|
FPSlocationStage = CLEANUP_ZONE
|
|
ENDIF
|
|
|
|
IF index = 6
|
|
FREEZE_ENTITY_POSITION(PLAYER_PED_ID(), TRUE)
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
CASE CREATE_CAR
|
|
|
|
PRINTSTRING("...Create car")
|
|
PRINTNL()
|
|
|
|
IF NOT DOES_ENTITY_EXIST(veh_car)
|
|
IF index = 5
|
|
model_car = FROGGER
|
|
REQUEST_MODEL(model_car)
|
|
ELSE
|
|
model_car = NINEF2
|
|
REQUEST_MODEL(model_car)
|
|
ENDIF
|
|
|
|
IF HAS_MODEL_LOADED(model_car)
|
|
CLEAR_AREA(FPSlocation[index], 20, TRUE)
|
|
veh_car = CREATE_VEHICLE(model_car, FPSlocation[index], car_heading[index])
|
|
ENDIF
|
|
ELSE
|
|
IF IS_VEHICLE_DRIVEABLE(veh_car)
|
|
SET_PED_INTO_VEHICLE(PLAYER_PED_ID(), veh_car)
|
|
SET_ENTITY_COORDS(veh_car, FPSlocation[index])
|
|
SET_ENTITY_HEADING(veh_car, car_heading[index])
|
|
SET_GAMEPLAY_CAM_RELATIVE_HEADING()
|
|
SET_ENTITY_INVINCIBLE(veh_car, TRUE)
|
|
IF index = 5
|
|
TASK_HELI_MISSION(PLAYER_PED_ID(), veh_car, NULL, NULL, v_car_destination[index], MISSION_GOTO, 30, 50, 0, 340, 100)
|
|
ELSE
|
|
TASK_VEHICLE_DRIVE_TO_COORD(PLAYER_PED_ID(),veh_car, v_car_destination[index],20.0,DRIVINGSTYLE_ACCURATE,model_car,DRIVINGMODE_PLOUGHTHROUGH,7.0,1.0)
|
|
ENDIF
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(model_car)
|
|
ENDIF
|
|
FPSlocationStage = CAR_DRIVE
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
CASE CAR_DRIVE
|
|
|
|
IF index = 5
|
|
IF IS_VEHICLE_DRIVEABLE(veh_car) AND IS_ENTITY_AT_COORD(veh_car, v_car_destination[index], <<60, 60, 200>> )
|
|
SETTIMERA(0)
|
|
SET_VEHICLE_AS_NO_LONGER_NEEDED(veh_car)
|
|
// IF average_repeat < 2
|
|
// average_repeat ++
|
|
// METRICS_ZONE_STOP()
|
|
// METRICS_ZONES_SHOW()
|
|
// FPSlocationStage = WAIT_TO_SETTLE
|
|
// ELSE
|
|
FPSlocationStage = CLEANUP_ZONE
|
|
// ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF IS_VEHICLE_DRIVEABLE(veh_car) AND FINISHED_TASK = GET_SCRIPT_TASK_STATUS( PLAYER_PED_ID(), SCRIPT_TASK_VEHICLE_DRIVE_TO_COORD )
|
|
SETTIMERA(0)
|
|
SET_VEHICLE_AS_NO_LONGER_NEEDED(veh_car)
|
|
// IF average_repeat < 2
|
|
// average_repeat ++
|
|
// METRICS_ZONE_STOP()
|
|
// METRICS_ZONES_SHOW()
|
|
// FPSlocationStage = WAIT_TO_SETTLE
|
|
// ELSE
|
|
FPSlocationStage = CLEANUP_ZONE
|
|
// ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF TIMERA() > 250
|
|
vehicles_coords = GET_ENTITY_COORDS(PLAYER_PED_ID())
|
|
CLEAR_AREA(vehicles_coords, 12, TRUE)
|
|
SETTIMERA(0)
|
|
ENDIF
|
|
|
|
IF IS_KEYBOARD_KEY_JUST_PRESSED(KEY_J) //Debug skip camera rotate
|
|
SETTIMERA(5000)
|
|
FPSlocationStage = CLEANUP_ZONE
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
CASE CLEANUP_ZONE
|
|
|
|
IF TIMERA() > settle_time
|
|
METRICS_ZONE_STOP()
|
|
PRINTLN("FPS TEST METRICS_ZONE_STOP")
|
|
WAIT(100)
|
|
METRICS_ZONES_SHOW()
|
|
METRICS_ZONE_SAVE_TO_FILE(FPSlocationName[index])
|
|
METRICS_ZONE_SAVE_TELEMETRY()
|
|
WAIT(2000)
|
|
METRICS_ZONES_CLEAR()
|
|
WAIT(0)
|
|
METRICS_ZONES_HIDE()
|
|
|
|
// IF average_repeat = 0
|
|
// METRICS_ZONES_HIDE()
|
|
SET_DISPLAY_STREAM_GRAPH(TRUE)
|
|
WAIT(2000)
|
|
SAVE_SCREENSHOT(FPSlocationName[index])
|
|
WAIT(500)
|
|
SET_DISPLAY_STREAM_GRAPH(FALSE)
|
|
WAIT(0)
|
|
// ENDIF
|
|
|
|
// METRICS_ZONES_SHOW()
|
|
new_heading = 0
|
|
average_repeat = 0
|
|
index ++
|
|
IF index < numlocation
|
|
IF DOES_ENTITY_EXIST(veh_car)
|
|
SET_VEHICLE_AS_NO_LONGER_NEEDED(veh_car)
|
|
ENDIF
|
|
FPSlocationStage = WARP_TO_LOCATION
|
|
ELSE
|
|
SETTIMERA(0)
|
|
FPSlocationStage = FPS_RESULTS
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
CASE FPS_RESULTS
|
|
|
|
//Gives time to view results before cleaning up
|
|
IF TIMERA() > 2000
|
|
CLEANUP_SCRIPT()
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
ENDIF
|
|
|
|
IF IS_KEYBOARD_KEY_JUST_PRESSED(KEY_F)
|
|
OR IS_KEYBOARD_KEY_JUST_PRESSED(KEY_S)
|
|
CLEANUP_SCRIPT()
|
|
ENDIF
|
|
|
|
ENDWHILE
|
|
ENDSCRIPT
|
|
|
|
#ENDIF
|
|
|