Files
2025-09-29 00:52:08 +02:00

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