235 lines
7.7 KiB
Python
Executable File
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
|
|
|