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

235 lines
7.7 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 "commands_ped.sch"
USING "commands_task.sch"
USING "commands_misc.sch"
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]
BOOL density, MetricsEnd
//FLOAT new_heading
REL_GROUP_HASH relGroupCop, relGroupCrim
ENUM FPS_TEST_STAGE
SETUP,
WAIT_FOR_CLEANUP
ENDENUM
FPS_TEST_STAGE GangStartPosStage = SETUP
PROC CLEANUP_SCRIPT()
METRICS_ZONES_CLEAR()
METRICS_ZONES_HIDE()
SET_VEHICLE_POPULATION_BUDGET(3)
SET_PED_POPULATION_BUDGET(3)
SET_ENTITY_PROOFS(PLAYER_PED_ID(), FALSE, FALSE, FALSE, FALSE, FALSE)
TERMINATE_THIS_THREAD()
ENDPROC
SCRIPT
IF HAS_FORCE_CLEANUP_OCCURRED(DEFAULT_FORCE_CLEANUP_FLAGS | FORCE_CLEANUP_FLAG_RANDOM_EVENTS)
CLEANUP_SCRIPT()
ENDIF
PRINTLN("AIcover_test SCRIPT STARTING")
WHILE TRUE
WAIT(0)
IF IS_PLAYER_PLAYING(PLAYER_ID())
SWITCH GangStartPosStage
CASE SETUP
MetricsEnd = FALSE
SET_VEHICLE_POPULATION_BUDGET(0)
SET_PED_POPULATION_BUDGET(0)
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, 5000, TRUE, 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
METRICS_ZONE_START("Physics")
METRICS_ZONES_SHOW()
SETTIMERA(0)
GangStartPosStage = WAIT_FOR_CLEANUP
BREAK
CASE WAIT_FOR_CLEANUP
IF NOT MetricsEnd
IF TIMERA() > 30000
METRICS_ZONE_STOP()
METRICS_ZONE_SAVE_TO_FILE("PhysicsTest")
MetricsEnd = TRUE
ENDIF
ENDIF
IF IS_KEYBOARD_KEY_JUST_PRESSED(KEY_P)
REPEAT numlocation index
IF NOT IS_PED_INJURED(pedCop[index])
SET_PED_AS_NO_LONGER_NEEDED(pedCop[index])
ENDIF
ENDREPEAT
SET_MODEL_AS_NO_LONGER_NEEDED(S_M_Y_COP_01)
REPEAT numlocation index
IF NOT IS_PED_INJURED(pedCriminal[index])
SET_PED_AS_NO_LONGER_NEEDED(pedCriminal[index])
ENDIF
ENDREPEAT
SET_MODEL_AS_NO_LONGER_NEEDED(A_M_Y_MEXTHUG_01)
REMOVE_RELATIONSHIP_GROUP(relGroupCop)
REMOVE_RELATIONSHIP_GROUP(relGroupCrim)
METRICS_ZONE_STOP()
METRICS_ZONES_CLEAR()
CLEAR_AREA(player_start_pos, 5000, TRUE, TRUE)
GangStartPosStage = SETUP
ENDIF
IF IS_KEYBOARD_KEY_JUST_PRESSED(KEY_F)
OR IS_KEYBOARD_KEY_JUST_PRESSED(KEY_S)
METRICS_ZONE_STOP()
CLEANUP_SCRIPT()
ENDIF
IF (IS_KEYBOARD_KEY_JUST_PRESSED(KEY_T))
IF NOT density
SET_VEHICLE_POPULATION_BUDGET(3)
SET_PED_POPULATION_BUDGET(3)
PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", "Traffic ON", 1000, 1)
WAIT(500)
density = TRUE
ELSE
SET_VEHICLE_POPULATION_BUDGET(0)
SET_PED_POPULATION_BUDGET(0)
CLEAR_AREA(player_start_pos, 5000, TRUE, TRUE)
PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", "Traffic OFF", 1000, 1)
WAIT(500)
density = FALSE
ENDIF
ENDIF
IF NOT density
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)
ELSE
SET_RANDOM_VEHICLE_DENSITY_MULTIPLIER_THIS_FRAME(1)
SET_PARKED_VEHICLE_DENSITY_MULTIPLIER_THIS_FRAME(1)
SET_PED_DENSITY_MULTIPLIER_THIS_FRAME(1)
SET_SCENARIO_PED_DENSITY_MULTIPLIER_THIS_FRAME(1, 1)
ENDIF
PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", "Press P to start test. F to fail, T to toggle traffic", 1000, 1)
BREAK
ENDSWITCH
ENDIF
ENDWHILE
ENDSCRIPT
#ENDIF