310 lines
10 KiB
Python
Executable File
310 lines
10 KiB
Python
Executable File
|
|
//╒═════════════════════════════════════════════════════════════════════════════╕
|
|
//│ Date: 07/07/11 │
|
|
//╞═════════════════════════════════════════════════════════════════════════════╡
|
|
//│ │
|
|
//│ Smoketest Startup Script │
|
|
//│ │
|
|
//╘═════════════════════════════════════════════════════════════════════════════╛
|
|
|
|
#IF IS_FINAL_BUILD
|
|
SCRIPT
|
|
ENDSCRIPT
|
|
#ENDIF
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
USING "rage_builtins.sch"
|
|
USING "globals.sch"
|
|
USING "commands_camera.sch"
|
|
USING "commands_entity.sch"
|
|
USING "commands_ped.sch"
|
|
USING "commands_script.sch"
|
|
USING "commands_streaming.sch"
|
|
USING "script_player.sch"
|
|
USING "commands_pad.sch"
|
|
USING "flow_public_core_override.sch"
|
|
|
|
|
|
|
|
VECTOR vStartingPosition = << -829.8442, 169.6196, 69.0172 >>
|
|
FLOAT fStartingHeading = 140.6081
|
|
|
|
//Streaming Test vars
|
|
VECTOR v_car_pos = << -190.45, -699.04, 33.31 >>
|
|
VECTOR v_car_destination = << 542.70, -853.72, 40.36 >>
|
|
FLOAT car_heading = -120
|
|
BOOL stream_test_finished, physics_test_finished
|
|
|
|
VEHICLE_INDEX veh_car
|
|
MODEL_NAMES model_car = NINEF2
|
|
|
|
GLOBALS TRUE
|
|
|
|
ENUM eSCRIPT_STATE
|
|
SCRIPT_STATE_START = 0,
|
|
SCRIPT_STATE_CREATE_CAR,
|
|
SCRIPT_STATE_DRIVE_CAR,
|
|
SCRIPT_STATE_DRIVE_TO_POINT
|
|
ENDENUM
|
|
|
|
eSCRIPT_STATE script_state = SCRIPT_STATE_START
|
|
|
|
//Physics Test vars
|
|
CONST_INT numlocation 5
|
|
INT index
|
|
VECTOR GangStartPos[numlocation], CopStartPos[numlocation], player_start_pos
|
|
FLOAT GangStartHead[numlocation], CopStartHead[numlocation]
|
|
PED_INDEX pedCop[numlocation], pedCriminal[numlocation]
|
|
|
|
REL_GROUP_HASH relGroupCop, relGroupCrim
|
|
|
|
ENUM FPS_TEST_STAGE
|
|
SETUP,
|
|
WAIT_FOR_CLEANUP
|
|
ENDENUM
|
|
FPS_TEST_STAGE GangStartPosStage = SETUP
|
|
|
|
|
|
PROC WAIT_FOR_TIME(INT period)
|
|
PRINTSTRING("// WAIT_FOR_TIME")PRINTNL()
|
|
INT currentTime = GET_GAME_TIMER()
|
|
WHILE GET_GAME_TIMER() - currentTime < period
|
|
PRINTSTRING("// STILL WAITING")PRINTNL()
|
|
WAIT(0)
|
|
ENDWHILE
|
|
ENDPROC
|
|
|
|
SCRIPT
|
|
|
|
IF HAS_FORCE_CLEANUP_OCCURRED(DEFAULT_FORCE_CLEANUP_FLAGS)
|
|
ENDIF
|
|
|
|
PRINTSTRING("----- GAME INITIALISED WITH THE SMOKETEST STARTUP SCRIPT -----\n")
|
|
|
|
//Create player.
|
|
// PLAYER_INDEX player = CREATE_PLAYER(0, vStartingPosition)
|
|
PED_INDEX pedPlayer = PLAYER_PED_ID() // GET_PLAYER_PED(player)
|
|
|
|
//Position player.
|
|
IF NOT IS_ENTITY_DEAD(pedPlayer)
|
|
SET_PED_COORDS_KEEP_VEHICLE(pedPlayer, vStartingPosition)
|
|
SET_ENTITY_HEADING(pedPlayer, fStartingHeading)
|
|
SET_ENTITY_PROOFS(PLAYER_PED_ID(), TRUE, TRUE, TRUE, TRUE, TRUE)
|
|
CLEAR_PLAYER_WANTED_LEVEL(PLAYER_ID())
|
|
ENDIF
|
|
|
|
//Load environment.
|
|
LOAD_SCENE(vStartingPosition)
|
|
|
|
SHUTDOWN_LOADING_SCREEN()
|
|
DO_SCREEN_FADE_IN(500)
|
|
WHILE NOT IS_SCREEN_FADED_IN()
|
|
WAIT(0)
|
|
ENDWHILE
|
|
|
|
// START TESTS
|
|
WHILE NOT SMOKETEST_STARTED()
|
|
WAIT(0)
|
|
PRINTSTRING("//Waiting for smoketest to start()")PRINTNL()
|
|
ENDWHILE
|
|
|
|
PRINTSTRING("//SMOKETEST STARTED")PRINTNL()
|
|
|
|
INT i
|
|
FOR i = 0 to 2
|
|
SET_CURRENT_DEBUG_LOCATION(i)
|
|
WAIT_FOR_TIME(5000)
|
|
STRING name = GET_CURRENT_DEBUG_LOCATION_NAME()
|
|
|
|
PRINTSTRING("//SMOKETEST ")PRINTSTRING(name)PRINTNL()
|
|
SMOKETEST_START_CAPTURE_SECTION(name)
|
|
WAIT_FOR_TIME(5000)
|
|
SMOKETEST_STOP_CAPTURE_SECTION()
|
|
|
|
WAIT(0)
|
|
SAVE_SCREENSHOT(name)
|
|
WAIT(0)
|
|
ENDFOR
|
|
|
|
|
|
WHILE NOT stream_test_finished
|
|
WAIT(0)
|
|
|
|
IF IS_PLAYER_PLAYING(PLAYER_ID())
|
|
|
|
SWITCH script_state
|
|
|
|
CASE SCRIPT_STATE_START
|
|
PRINTSTRING("...Going for a drive")
|
|
PRINTNL()
|
|
SET_PLAYER_CONTROL(PLAYER_ID(), FALSE)
|
|
SET_CLOCK_TIME(12,0,0)
|
|
SET_WEATHER_TYPE_NOW_PERSIST("EXTRASUNNY")
|
|
// SET_VEHICLE_POPULATION_BUDGET(0)
|
|
|
|
SET_ROADS_IN_AREA(<<-2000, -2000, -200>>, <<2000, 2000, 200>>, FALSE)
|
|
CLEAR_AREA(v_car_pos, 5000.0, TRUE, TRUE, TRUE, TRUE)
|
|
script_state = SCRIPT_STATE_CREATE_CAR
|
|
BREAK
|
|
|
|
CASE SCRIPT_STATE_CREATE_CAR
|
|
REQUEST_MODEL(model_car)
|
|
LOAD_ALL_OBJECTS_NOW()
|
|
veh_car = CREATE_VEHICLE(model_car, v_car_pos, car_heading)
|
|
SET_PED_INTO_VEHICLE(PLAYER_PED_ID(), veh_car)
|
|
SET_DEBUG_CAM_ACTIVE(FALSE)
|
|
SET_GAMEPLAY_CAM_RELATIVE_HEADING()
|
|
LOAD_SCENE(v_car_pos)
|
|
script_state = SCRIPT_STATE_DRIVE_CAR
|
|
BREAK
|
|
|
|
CASE SCRIPT_STATE_DRIVE_CAR
|
|
IF IS_VEHICLE_DRIVEABLE(veh_car)
|
|
SMOKETEST_START_CAPTURE_SECTION("Streaming test")
|
|
TASK_VEHICLE_DRIVE_TO_COORD(PLAYER_PED_ID(),veh_car, v_car_destination,30.0,DRIVINGSTYLE_RACING,model_car,DRIVINGMODE_PLOUGHTHROUGH,5.0,1.0)
|
|
script_state = SCRIPT_STATE_DRIVE_TO_POINT
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE SCRIPT_STATE_DRIVE_TO_POINT
|
|
IF IS_VEHICLE_DRIVEABLE(veh_car) AND FINISHED_TASK = GET_SCRIPT_TASK_STATUS( PLAYER_PED_ID(), SCRIPT_TASK_VEHICLE_DRIVE_TO_COORD )
|
|
SMOKETEST_STOP_CAPTURE_SECTION()
|
|
WAIT(0)
|
|
SAVE_SCREENSHOT("Streaming test")
|
|
WAIT(0)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(model_car)
|
|
SET_VEHICLE_AS_NO_LONGER_NEEDED(veh_car)
|
|
stream_test_finished = TRUE
|
|
ENDIF
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
SET_RANDOM_VEHICLE_DENSITY_MULTIPLIER_THIS_FRAME(0)
|
|
SET_PARKED_VEHICLE_DENSITY_MULTIPLIER_THIS_FRAME(0)
|
|
SET_PED_DENSITY_MULTIPLIER_THIS_FRAME(0)
|
|
SET_SCENARIO_PED_DENSITY_MULTIPLIER_THIS_FRAME(0, 0)
|
|
|
|
ENDIF
|
|
|
|
ENDWHILE
|
|
|
|
|
|
WHILE NOT physics_test_finished
|
|
|
|
WAIT(0)
|
|
|
|
IF IS_PLAYER_PLAYING(PLAYER_ID())
|
|
|
|
SWITCH GangStartPosStage
|
|
|
|
CASE SETUP
|
|
REQUEST_MODEL(S_M_Y_COP_01)
|
|
REQUEST_MODEL(A_M_Y_MEXTHUG_01)
|
|
LOAD_ALL_OBJECTS_NOW()
|
|
|
|
player_start_pos = << -592.5580, -1652.5548, 23.4580 >>
|
|
CLEAR_AREA(player_start_pos, 300, TRUE)
|
|
SET_ENTITY_PROOFS(PLAYER_PED_ID(), TRUE, TRUE, TRUE, TRUE, TRUE)
|
|
CLEAR_PLAYER_WANTED_LEVEL(PLAYER_ID())
|
|
SET_ENTITY_COORDS(PLAYER_PED_ID(), player_start_pos)
|
|
SET_ENTITY_HEADING(PLAYER_PED_ID(), 195)
|
|
SET_GAMEPLAY_CAM_RELATIVE_HEADING()
|
|
SET_CLOCK_TIME(17, 0, 0)
|
|
LOAD_SCENE(player_start_pos)
|
|
|
|
ADD_RELATIONSHIP_GROUP("RE_ARREST_COP", relGroupCop)
|
|
ADD_RELATIONSHIP_GROUP("RE_ARREST_CRIM", relGroupCrim)
|
|
|
|
CopStartPos[0] = << -579.2419, -1656.8274, 18.7912 >>
|
|
CopStartHead[0] = 118
|
|
CopStartPos[1] = << -572.1108, -1662.7108, 18.2502 >>
|
|
CopStartHead[1] = 94
|
|
CopStartPos[2] = << -581.9711, -1671.4646, 18.2560 >>
|
|
CopStartHead[2] = 94
|
|
CopStartPos[3] = << -566.4862, -1671.4352, 18.2296 >>
|
|
CopStartHead[3] = 87
|
|
CopStartPos[4] = << -571.9099, -1675.8474, 18.7016 >>
|
|
CopStartHead[4] = 48
|
|
|
|
REPEAT numlocation index
|
|
pedCop[index] = CREATE_PED(PEDTYPE_COP, S_M_Y_COP_01, CopStartPos[index])
|
|
SET_PED_HEADING_AND_PITCH(pedCop[index], CopStartHead[index], 0)
|
|
SET_PED_COMBAT_MOVEMENT(pedCop[index], CM_DEFENSIVE )
|
|
SET_PED_FLEE_ATTRIBUTES(pedCop[index], FA_USE_COVER, TRUE)
|
|
SET_PED_COMBAT_ATTRIBUTES(pedCop[index], CA_CAN_CAPTURE_ENEMY_PEDS, FALSE)
|
|
SET_ENTITY_PROOFS(pedCop[index], TRUE, TRUE, TRUE, TRUE, TRUE)
|
|
SET_PED_RELATIONSHIP_GROUP_HASH(pedCop[index], relGroupCop)
|
|
GIVE_WEAPON_TO_PED(pedCop[index], WEAPONTYPE_PISTOL, INFINITE_AMMO, TRUE, TRUE)
|
|
SET_CURRENT_PED_WEAPON(pedCop[index], WEAPONTYPE_PISTOL, TRUE)
|
|
ENDREPEAT
|
|
|
|
GangStartPos[0] = << -601.7824, -1674.6423, 18.5608 >>
|
|
GangStartHead[0] = 285
|
|
GangStartPos[1] = << -600.7036, -1669.3536, 18.5807 >>
|
|
GangStartHead[1] = 285
|
|
GangStartPos[2] = << -606.2323, -1669.1875, 18.8904 >>
|
|
GangStartHead[2] = 274
|
|
GangStartPos[3] = << -605.7510, -1678.3025, 18.6469 >>
|
|
GangStartHead[3] = 289
|
|
GangStartPos[4] = << -596.6554, -1674.1642, 18.4122 >>
|
|
GangStartHead[4] = 286
|
|
|
|
REPEAT numlocation index
|
|
pedCriminal[index] = CREATE_PED(PEDTYPE_MISSION, A_M_Y_MEXTHUG_01, GangStartPos[index])
|
|
SET_PED_HEADING_AND_PITCH(pedCriminal[index], GangStartHead[index], 0)
|
|
SET_PED_COMBAT_MOVEMENT(pedCriminal[index], CM_DEFENSIVE )
|
|
SET_PED_FLEE_ATTRIBUTES(pedCriminal[index], FA_USE_COVER, TRUE)
|
|
SET_ENTITY_PROOFS(pedCriminal[index], TRUE, TRUE, TRUE, TRUE, TRUE)
|
|
SET_PED_RELATIONSHIP_GROUP_HASH(pedCriminal[index], relGroupCrim)
|
|
GIVE_WEAPON_TO_PED(pedCriminal[index], WEAPONTYPE_PISTOL, INFINITE_AMMO, TRUE, TRUE)
|
|
SET_CURRENT_PED_WEAPON(pedCriminal[index], WEAPONTYPE_PISTOL, TRUE)
|
|
ENDREPEAT
|
|
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_HATE, relGroupCrim, relGroupCop)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_HATE, relGroupCop, relGroupCrim)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE, relGroupCop, RELGROUPHASH_PLAYER)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE, relGroupCrim, RELGROUPHASH_PLAYER)
|
|
|
|
REPEAT numlocation index
|
|
REGISTER_HATED_TARGETS_IN_AREA(pedCop[index], CopStartPos[index], 200)
|
|
TASK_TURN_PED_TO_FACE_ENTITY(pedCop[index], pedCriminal[index])
|
|
ENDREPEAT
|
|
REPEAT numlocation index
|
|
REGISTER_HATED_TARGETS_IN_AREA(pedCriminal[index], GangStartPos[index], 200)
|
|
TASK_TURN_PED_TO_FACE_ENTITY(pedCriminal[index], pedCop[index])
|
|
ENDREPEAT
|
|
|
|
GangStartPosStage = WAIT_FOR_CLEANUP
|
|
BREAK
|
|
|
|
CASE WAIT_FOR_CLEANUP
|
|
SMOKETEST_START_CAPTURE_SECTION("Physics test")
|
|
WAIT_FOR_TIME(20000)
|
|
SMOKETEST_STOP_CAPTURE_SECTION()
|
|
WAIT(0)
|
|
SAVE_SCREENSHOT("Physics test")
|
|
WAIT(0)
|
|
physics_test_finished = TRUE
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
ENDIF
|
|
|
|
ENDWHILE
|
|
|
|
SMOKETEST_END()
|
|
PRINTSTRING("//SMOKETEST ENDED")PRINTNL()
|
|
|
|
SET_VEHICLE_POPULATION_BUDGET(1)
|
|
SET_PED_POPULATION_BUDGET(1)
|
|
SET_ENTITY_PROOFS(PLAYER_PED_ID(), FALSE, FALSE, FALSE, FALSE, FALSE)
|
|
SET_PLAYER_CONTROL(PLAYER_ID(), TRUE)
|
|
SET_ROADS_BACK_TO_ORIGINAL(<<-2000, -2000, -200>>, <<2000, 2000, 200>>)
|
|
|
|
TERMINATE_THIS_THREAD()
|
|
|
|
ENDSCRIPT
|
|
|
|
#ENDIF |