3146 lines
131 KiB
Python
Executable File
3146 lines
131 KiB
Python
Executable File
// Do nothing in release mode
|
|
#IF IS_FINAL_BUILD
|
|
SCRIPT
|
|
ENDSCRIPT
|
|
#ENDIF
|
|
|
|
// Only include in debug mode
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
USING "rage_builtins.sch"
|
|
USING "script_xml.sch"
|
|
USING "commands_ped.sch"
|
|
USING "commands_task.sch"
|
|
USING "commands_streaming.sch"
|
|
USING "commands_graphics.sch"
|
|
USING "commands_debug.sch"
|
|
USING "test_tools.sch"
|
|
USING "commands_vehicle.sch"
|
|
USING "commands_camera.sch"
|
|
USING "commands_player.sch"
|
|
USING "commands_physics.sch"
|
|
USING "script_DEBUG.sch"
|
|
USING "commands_event.sch"
|
|
USING "commands_script.sch"
|
|
USING "commands_entity.sch"
|
|
USING "commands_itemsets.sch"
|
|
|
|
//Notes: This is script is to allow easy setup of test scenarios for the code department. It works in conjunction with test_tools.sch
|
|
//It is a data driven system
|
|
|
|
//Defaults values when the test is reset to factory the standard values are used
|
|
|
|
STRING XMLMenu = "Testbed/TestCombatmenu"
|
|
VECTOR gvMapOffset //offset all coords from the origin by the psoition of the mapin world coords
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
///
|
|
//These enums must match with the /build/dev/common/data/script/xml/Testbed/TestCombatMenu.xml
|
|
ENUM Scenarios
|
|
TEST_TASK_COMBAT_PED = 0,
|
|
TEST_TASK_COMBAT_HATED_TARGETS_AROUND_PED,
|
|
TEST_TASK_COMBAT_HATED_TARGETS_AROUND_PED_TIMED,
|
|
TEST_TASK_COMBAT_TIMED,
|
|
TEST_TASK_COMBAT_HATED_PED_IN_AREA,
|
|
TEST_TASK_AIM_GUN_AT_COORD,
|
|
TEST_TASK_AIM_GUN_AT_ENTITY,
|
|
TEST_TASK_SHOOT_AT_COORD,
|
|
TEST_TASK_GOTO_X_WHILE_AIMING_AT_X,
|
|
TEST_TASK_SEEK_COVER_FROM_POS,
|
|
TEST_TASK_SEEK_COVER_FROM_PED,
|
|
TEST_TASK_SEEK_COVER_TO_COVER_POINT,
|
|
TEST_TASK_SEEK_COVER_TO_COVER_COORD,
|
|
TEST_TASK_PUT_PED_DIRECTLY_INTO_COVER,
|
|
TEST_TASK_GUARD_ASSIGNED_DEFENSIVE_AREA,
|
|
TEST_TASK_GUARD_ANGLED_DEFENSIVE_AREA,
|
|
TEST_TASK_GUARD_SPHERE_DEFENSIVE_AREA,
|
|
TEST_TASK_GUARD_CURRENT_POS,
|
|
TEST_TASK_STAND_GUARD,
|
|
SET_PED_PREFERRED_COVER,
|
|
TEST_TASK_PATROL,
|
|
TEST_IS_PED_RESPONDING_TO_EVENT,
|
|
TEST_HAS_PED_RECEIVED_EVENT,
|
|
SCENARIO_PED_MOVE_TO_COVER_PED_STAYS_STILL,
|
|
SCENARIO_BOTH_PEDS_MOVE_TO_COVER,
|
|
SCENARIO_TWO_PEDS_NO_COVER,
|
|
ARifle_guy_in_cover_breaking,
|
|
SquadOfPedsMovingBetweenVehicles,
|
|
SquadStaysDefensiveBehindVehicle,
|
|
SquadDefendingPos,
|
|
PedDoesWeirdThingsSeekingCover,
|
|
ScenarioCombatRanges,
|
|
ScenarioPedShootsCoord,
|
|
BugPedsNotShootingThroughFreindlyPed,
|
|
TestPedsUsingRandomPaths,
|
|
BugAiCantDriveTank,
|
|
ScenarioTaskStayInCover,
|
|
TargetDummy,
|
|
SWAT_VAN_DRIVE_BY,
|
|
TASK_RAPPEL_DOWN_WALL_PlayerTest,
|
|
TASK_RAPPEL_DOWN_WALL_AITest,
|
|
TEST_TASK_MELEE_COMBAT_ONE,
|
|
TEST_TASK_MELEE_COMBAT_MANY,
|
|
TEST_TASK_DRAG_INJURED_PED,
|
|
TEST_TASK_SHOOT_AT_PLAYER,
|
|
TEST_TASK_SHOOT_AT_VEHICLE,
|
|
TEST_TASK_AI_STEALTH_KILL,
|
|
TEST_TASK_ANIMAL_MELEE,
|
|
TEST_TASK_ARMED_MELEE_IN_COVER,
|
|
|
|
DefaultTest = 1000
|
|
ENDENUM
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
//Ped Vars
|
|
CONST_INT MAX_NUMBER_OF_PEDS 10
|
|
|
|
peds_struct TestPeds [MAX_NUMBER_OF_PEDS]
|
|
|
|
//Vehicle Vars
|
|
CONST_INT MAX_NUMBER_OF_VEHICLES 10
|
|
|
|
vehicle_struct TestVehicles[MAX_NUMBER_OF_VEHICLES]
|
|
|
|
//Route Vars
|
|
CONST_INT MAX_NUMBER_OF_NODES 7
|
|
|
|
RouteStruct Route[MAX_NUMBER_OF_NODES]
|
|
|
|
//Camera Vars
|
|
CONST_INT MAX_NUMBER_OF_CAMERAS 2
|
|
CONST_INT FixedCamera 0
|
|
CONST_INT TrackingCamera 1
|
|
|
|
StCameraData TestCams[MAX_NUMBER_OF_CAMERAS]
|
|
|
|
//Defensive are
|
|
INT MAX_NUMBER_DEFENSIVE_AREA = 0
|
|
|
|
//Object Vars
|
|
CONST_INT MAX_NUMBER_OF_OBJECTS 1
|
|
Object_struct TestObjects[MAX_NUMBER_OF_OBJECTS]
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Define Widget Variables
|
|
|
|
FLOAT DYNAMIC_MOVE_BLEND_RATIO = PEDMOVEBLENDRATIO_WALK
|
|
FLOAT SlideSpeed = 1.0
|
|
FLOAT BlendSpeed = 8.0
|
|
BOOL bLoopAnim = FALSE, bExtractbackwardvel = TRUE, bExtractsidevel = TRUE, bholdlastframe = FALSE
|
|
Int seatindex = -1
|
|
FLOAT Ground_z
|
|
COVERPOINT_INDEX SCRIPTED_COVER_INDEX
|
|
BOOL bUseLowCoverPoint = TRUE
|
|
BOOL bUseOneHandedWeapon = FALSE
|
|
BOOL bUseSwatModel = TRUE
|
|
BOOL bTestStanding = TRUE
|
|
|
|
FLOAT gfGoToPointAndAimAtPointMoveState = 0
|
|
INT COMBAT_TARGETS_AROUND_AREA_TIME = 5000
|
|
|
|
ENUM GOTO_POINT_AND_AIM_MODE
|
|
GOTO_COORD_AND_AIM_AT_COORD,
|
|
GOTO_COORD_AND_AIM_AT_PED,
|
|
GOTO_COORD_AND_AIM_AT_VEHICLE,
|
|
GOTO_COORD_AND_AIM_AT_OBJECT,
|
|
GOTO_PED_AND_AIM_AT_COORD,
|
|
GOTO_PED_AND_AIM_AT_PED,
|
|
GOTO_PED_AND_AIM_AT_VEHICLE,
|
|
GOTO_PED_AND_AIM_AT_OBJECT,
|
|
GOTO_PED_AIMING
|
|
ENDENUM
|
|
|
|
INT GOTO_X_AND_AIM_AT_X_MODE = ENUM_TO_INT(GOTO_COORD_AND_AIM_AT_COORD)
|
|
VECTOR GOTO_COORD = <<-36.82, 247.95, 6.35>>
|
|
VECTOR AIM_AT_COORD = <<-42.19, 246.29, 7.72>>
|
|
INT AIM_AT_TIME = 5000
|
|
BOOL MOVE_AND_SHOOT = FALSE
|
|
|
|
BOOL DO_DRIVEBY = FALSE
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Create Widgets
|
|
|
|
PROC CREATE_TEST_WIDGET ()
|
|
START_WIDGET_GROUP("Combat Test")
|
|
SETUP_WIDGET ()
|
|
START_WIDGET_GROUP("Tasks")
|
|
ADD_WIDGET_INT_SLIDER ("COMBAT_TARGETS_AROUND_AREA_TIME",COMBAT_TARGETS_AROUND_AREA_TIME, 0, 20000, 1000)
|
|
ADD_WIDGET_INT_SLIDER ("AIM_AT_TIME",AIM_AT_TIME, -1, 20000, 1000)
|
|
ADD_WIDGET_BOOL ("MOVE_AND_SHOOT", MOVE_AND_SHOOT)
|
|
ADD_WIDGET_BOOL ("SWAT_VAN_DO_DRIVEBY", DO_DRIVEBY)
|
|
ADD_WIDGET_BOOL ("USE_LOW_COVER", bUseLowCoverPoint)
|
|
ADD_WIDGET_BOOL ("USE_ONE_HANDED_WEAPON", bUseOneHandedWeapon)
|
|
ADD_WIDGET_BOOL ("USE_SWAT_MODEL", bUseSwatModel)
|
|
ADD_WIDGET_BOOL ("TEST_STAND_ENTERS", bTestStanding)
|
|
STOP_WIDGET_GROUP()
|
|
START_WIDGET_GROUP("Navigation")
|
|
ADD_WIDGET_BOOL ("Start scenario", gBeginCombatScenario)
|
|
ADD_WIDGET_BOOL ("Restart scenario", gResetCombatScenario)
|
|
ADD_WIDGET_BOOL ("Reset to default", gResetToDefault)
|
|
ADD_WIDGET_BOOL ("Debug scenario", gRun_debuggig)
|
|
ADD_WIDGET_BOOL ("Print all setup info", gPrintAllIinfo)
|
|
ADD_WIDGET_FLOAT_SLIDER ("Start_Coord.x",gPedcoords.x, -2000, 2000, 0.5)
|
|
ADD_WIDGET_FLOAT_SLIDER ("Start_Coord.y",gPedcoords.y, -2000, 2000, 0.5)
|
|
ADD_WIDGET_FLOAT_SLIDER ("Start_Coord.z",gPedcoords.z, -2000, 2000, 0.5)
|
|
ADD_WIDGET_FLOAT_SLIDER ("Start_Heading",gPedheading, -2000, 2000, 0.5)
|
|
ADD_WIDGET_FLOAT_SLIDER ("Target_Coord.x",DynamicTargetPos.x, -2000, 2000, 0.5)
|
|
ADD_WIDGET_FLOAT_SLIDER ("Target_Coord.y",DynamicTargetPos.y, -2000, 2000, 0.5)
|
|
ADD_WIDGET_FLOAT_SLIDER ("Target_Coord.z",DynamicTargetPos.z, -2000, 2000, 0.5)
|
|
ADD_WIDGET_FLOAT_SLIDER ("Target_heading",DynamicTargetHeading, -2000, 2000, 0.5)
|
|
ADD_WIDGET_FLOAT_SLIDER ("GroiundZ",Ground_z, -2000, 2000, 0.5)
|
|
ADD_WIDGET_FLOAT_SLIDER ("Slide speed",SlideSpeed, -2000, 2000, 0.5)
|
|
ADD_WIDGET_INT_SLIDER ("seat", seatindex ,-2, 2, 1 )
|
|
ADD_WIDGET_FLOAT_SLIDER ("Move Blend Ratio", DYNAMIC_MOVE_BLEND_RATIO, PEDMOVEBLENDRATIO_STILL, PEDMOVEBLENDRATIO_SPRINT, 0.1 )
|
|
START_WIDGET_GROUP ("Anim")
|
|
ADD_WIDGET_BOOL ("loop anim", bLoopAnim )
|
|
ADD_WIDGET_BOOL ("Extract y vel", bExtractbackwardvel )
|
|
ADD_WIDGET_BOOL ("Extract x vel ", bExtractsidevel )
|
|
ADD_WIDGET_BOOL ("Hold ladt frame ", bholdlastframe )
|
|
ADD_WIDGET_FLOAT_SLIDER ("blend",BlendSpeed, -2000, 2000, 0.5)
|
|
STOP_WIDGET_GROUP()
|
|
STOP_WIDGET_GROUP()
|
|
START_WIDGET_GROUP ("Ped setup")
|
|
ADD_WIDGET_INT_SLIDER ("Ped_index", gTestPedsIndex ,0, 9, 1 )
|
|
ADD_WIDGET_FLOAT_SLIDER ("Ped_Coord.x",gPedcoords.x, -2000, 2000, 0.25)
|
|
ADD_WIDGET_FLOAT_SLIDER ("Ped_Coord.y",gPedcoords.y, -2000, 2000, 0.25)
|
|
ADD_WIDGET_FLOAT_SLIDER ("Ped_Coord.z",gPedcoords.z, -2000, 2000, 0.25)
|
|
ADD_WIDGET_FLOAT_SLIDER ("Ped_Heading",gPedheading, -2000, 2000, 0.5)
|
|
START_NEW_WIDGET_COMBO()
|
|
ADD_TO_WIDGET_COMBO ("S_M_Y_COP_01")
|
|
ADD_TO_WIDGET_COMBO ("G_M_Y_DESHENCH_01")
|
|
STOP_WIDGET_COMBO("Ped", PedIdentifier)
|
|
ADD_WIDGET_BOOL ("Create ped", gCreatePed)
|
|
ADD_WIDGET_BOOL ("Delete ped", gdeletePed)
|
|
ADD_WIDGET_INT_SLIDER ("Set Ped rel grp", gpedrelgrp ,1, 4, 1 )
|
|
START_NEW_WIDGET_COMBO()
|
|
ADD_TO_WIDGET_COMBO ("WEAPONTYPE_UNARMED")
|
|
ADD_TO_WIDGET_COMBO ("WEAPONTYPE_PISTOL")
|
|
ADD_TO_WIDGET_COMBO ("WEAPONTYPE_ASSAULTRIFLE")
|
|
ADD_TO_WIDGET_COMBO ("WEAPONTYPE_M4")
|
|
STOP_WIDGET_COMBO("weapon", WeaponIdentifier)
|
|
ADD_WIDGET_BOOL ("Swap current peds weapon", gSwapPedWeapons)
|
|
ADD_WIDGET_BOOL ("print ped info", Bprint_ped_info)
|
|
ADD_WIDGET_BOOL ("activate def area",gPedDefAActive)
|
|
STOP_WIDGET_GROUP ()
|
|
START_WIDGET_GROUP ("Route Builder")
|
|
ADD_WIDGET_FLOAT_SLIDER ("RoutePoint.x",gRoutePoint.x, -2000, 2000, 0.25)
|
|
ADD_WIDGET_FLOAT_SLIDER ("RoutePoint.y",gRoutePoint.y, -2000, 2000, 0.25)
|
|
ADD_WIDGET_FLOAT_SLIDER ("RoutePoint.z",gRoutePoint.z, -2000, 2000, 0.25)
|
|
ADD_WIDGET_INT_SLIDER ("Route Node", gRouteNode, 0, 7, 1 )
|
|
ADD_WIDGET_BOOL ("Register Node", BSetNode)
|
|
ADD_WIDGET_BOOL ("copy cam pos", BCopyCamCoords )
|
|
STOP_WIDGET_GROUP ()
|
|
START_WIDGET_GROUP("GOTO_X_AND_AIM_AT_X")
|
|
START_NEW_WIDGET_COMBO()
|
|
ADD_TO_WIDGET_COMBO("GOTO_COORD_AND_AIM_AT_COORD")
|
|
ADD_TO_WIDGET_COMBO("GOTO_COORD_AND_AIM_AT_PED")
|
|
ADD_TO_WIDGET_COMBO("GOTO_COORD_AND_AIM_AT_VEHICLE")
|
|
ADD_TO_WIDGET_COMBO("GOTO_COORD_AND_AIM_AT_OBJECT")
|
|
ADD_TO_WIDGET_COMBO("GOTO_PED_AND_AIM_AT_COORD")
|
|
ADD_TO_WIDGET_COMBO("GOTO_PED_AND_AIM_AT_PED")
|
|
ADD_TO_WIDGET_COMBO("GOTO_PED_AND_AIM_AT_VEHICLE")
|
|
ADD_TO_WIDGET_COMBO("GOTO_PED_AND_AIM_AT_OBJECT")
|
|
ADD_TO_WIDGET_COMBO("GOTO_PED_AIMING")
|
|
STOP_WIDGET_COMBO("GOTO_X_AND_AIM_AT_X_MODE", GOTO_X_AND_AIM_AT_X_MODE)
|
|
ADD_WIDGET_FLOAT_SLIDER("GOTO_COORD.x", GOTO_COORD.x, -2000, 2000, 0.25)
|
|
ADD_WIDGET_FLOAT_SLIDER("GOTO_COORD.y", GOTO_COORD.y, -2000, 2000, 0.25)
|
|
ADD_WIDGET_FLOAT_SLIDER("GOTO_COORD.z", GOTO_COORD.z, -2000, 2000, 0.25)
|
|
ADD_WIDGET_FLOAT_SLIDER("AIM_AT_COORD.x", AIM_AT_COORD.x, -2000, 2000, 0.25)
|
|
ADD_WIDGET_FLOAT_SLIDER("AIM_AT_COORD.y", AIM_AT_COORD.y, -2000, 2000, 0.25)
|
|
ADD_WIDGET_FLOAT_SLIDER("AIM_AT_COORD.z", AIM_AT_COORD.z, -2000, 2000, 0.25)
|
|
ADD_WIDGET_FLOAT_SLIDER ("Move Blend Ratio", gfGoToPointAndAimAtPointMoveState, PEDMOVEBLENDRATIO_STILL, PEDMOVEBLENDRATIO_SPRINT, 0.1 )
|
|
ADD_WIDGET_BOOL("MOVE_AND_SHOOT", MOVE_AND_SHOOT)
|
|
STOP_WIDGET_GROUP()
|
|
STOP_WIDGET_GROUP()
|
|
ENDPROC
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
//Mission flow House keeping
|
|
|
|
|
|
//PUPROSE: REmoves all the scenarios and resets all the relationships
|
|
PROC Cleanup_Scenario_Entities ()
|
|
int index = 0
|
|
for index = 0 to MAX_NUMBER_OF_PEDS -1
|
|
CLEAN_UP_PED_ENTITIES (TestPeds[index].ped)
|
|
ENDFOR
|
|
|
|
for index = 0 to MAX_NUMBER_OF_VEHICLES -1
|
|
CLEAN_UP_VEHICLE_ENTITIES (TestVehicles[index].Vehicle )
|
|
ENDFOR
|
|
|
|
for index = 0 to MAX_NUMBER_OF_OBJECTS -1
|
|
CLEAN_UP_OBJECT_ENTITIES (TestObjects[index].Object)
|
|
ENDFOR
|
|
|
|
Set_Gang_Relationships (FALSE)
|
|
ENDPROC
|
|
|
|
PROC Terminate_test_script ()
|
|
if IS_KEYBOARD_KEY_JUST_PRESSED (KEY_S)
|
|
CLEAR_PRINTS ()
|
|
CLEAR_HELP ()
|
|
Cleanup_Scenario_Entities ()
|
|
Temp_cleanup_scenario_cams ()
|
|
SET_PLAYER_COLISION(scplayer, true)
|
|
IF NOT IS_PED_INJURED (scplayer)
|
|
SET_PED_COORDS_KEEP_VEHICLE(scplayer, GET_PLAYER_START_POS () + gvMapOffset)
|
|
ENDIF
|
|
|
|
TERMINATE_THIS_THREAD ()
|
|
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
|
|
//END: Mission flow House keeping
|
|
|
|
//Function: SCENARIO TASKS
|
|
|
|
SEQUENCE_INDEX TEST_SEQ
|
|
|
|
FUNC SEQUENCE_INDEX TASK_SHOOT_AT_COORD_SEQ ( VECTOR L_Target_Pos)
|
|
|
|
SEQUENCE_INDEX TEST_SEQUENCE
|
|
OPEN_SEQUENCE_TASK (TEST_SEQUENCE)
|
|
TASK_SHOOT_AT_COORD (NULL, L_Target_Pos, -1, FIRING_TYPE_1_BURST)
|
|
CLOSE_SEQUENCE_TASK (TEST_SEQUENCE)
|
|
|
|
RETURN TEST_SEQUENCE
|
|
ENDFUNC
|
|
|
|
FUNC SEQUENCE_INDEX FOLLOW_NAVMESH_TO_COORD_WALK_SEQ ( VECTOR L_Target_Pos)
|
|
|
|
SEQUENCE_INDEX TEST_SEQUENCE
|
|
OPEN_SEQUENCE_TASK (TEST_SEQUENCE)
|
|
TASK_FOLLOW_NAV_MESH_TO_COORD (NULL, L_Target_Pos, PEDMOVE_WALK, -2, 0.25)
|
|
CLOSE_SEQUENCE_TASK (TEST_SEQUENCE)
|
|
|
|
RETURN TEST_SEQUENCE
|
|
ENDFUNC
|
|
|
|
FUNC SEQUENCE_INDEX FOLLOW_NAVMESH_TO_COORD_RUN_SEQ ( VECTOR L_Target_Pos)
|
|
|
|
SEQUENCE_INDEX TEST_SEQUENCE
|
|
OPEN_SEQUENCE_TASK (TEST_SEQUENCE)
|
|
TASK_FOLLOW_NAV_MESH_TO_COORD (NULL, L_Target_Pos, PEDMOVE_RUN, -2, 0.25)
|
|
CLOSE_SEQUENCE_TASK (TEST_SEQUENCE)
|
|
|
|
RETURN TEST_SEQUENCE
|
|
ENDFUNC
|
|
|
|
FUNC SEQUENCE_INDEX FOLLOW_NAVMESH_TO_COORD_SPRINT_SEQ ( VECTOR L_Target_Pos)
|
|
SEQUENCE_INDEX TEST_SEQUENCE
|
|
OPEN_SEQUENCE_TASK (TEST_SEQUENCE)
|
|
TASK_FOLLOW_NAV_MESH_TO_COORD (NULL, L_Target_Pos, PEDMOVE_SPRINT, -2, 0.25)
|
|
CLOSE_SEQUENCE_TASK (TEST_SEQUENCE)
|
|
|
|
RETURN TEST_SEQUENCE
|
|
ENDFUNC
|
|
|
|
FUNC SEQUENCE_INDEX FOLLOW_ROUTE( RouteStruct &TargetRoute[])
|
|
int index
|
|
BOOL BHaveValidNode = FALSE
|
|
VECTOR TempNode
|
|
|
|
//This allows us to pass a sequnce to a ped using 7 points for maximun testing. Iess than 7 nodes can be used, and the last valid node is copied into the remaining array elements.
|
|
//Note all nodes must be in order there can be no gaps between them ie node 1 valid, 2 valid, 3 invalid is ok but not 1 valid, 2 invalid, 3 valid
|
|
//search our node array until we find a invalid array point
|
|
for index = 0 to MAX_NUMBER_OF_NODES -1
|
|
IF TargetRoute[index].RouteNodeState = FALSE
|
|
IF index <> 0
|
|
TempNode = TargetRoute[index - 1].RouteNode //grab the previous point which is valid assuming that all nodes are sequential
|
|
BHaveValidNode = TRUE
|
|
ELSE
|
|
SCRIPT_ASSERT ("Passed in sequnce with no valid nodes ")
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//copy this valid node into the remaing array elements
|
|
IF (BHaveValidNode)
|
|
TargetRoute[index].RouteNode = TempNode
|
|
ENDIF
|
|
|
|
ENDFOR
|
|
|
|
SEQUENCE_INDEX TEST_SEQUENCE
|
|
OPEN_SEQUENCE_TASK (TEST_SEQUENCE)
|
|
TASK_FOLLOW_NAV_MESH_TO_COORD (NULL, TargetRoute[0].routenode, DYNAMIC_MOVE_BLEND_RATIO, -2, 1)
|
|
TASK_FOLLOW_NAV_MESH_TO_COORD (NULL, TargetRoute[1].routenode, DYNAMIC_MOVE_BLEND_RATIO, -2, 1)
|
|
TASK_FOLLOW_NAV_MESH_TO_COORD (NULL, TargetRoute[2].routenode, DYNAMIC_MOVE_BLEND_RATIO, -2, 1)
|
|
TASK_FOLLOW_NAV_MESH_TO_COORD (NULL, TargetRoute[3].routenode, DYNAMIC_MOVE_BLEND_RATIO, -2, 1)
|
|
TASK_FOLLOW_NAV_MESH_TO_COORD (NULL, TargetRoute[4].routenode, DYNAMIC_MOVE_BLEND_RATIO, -2, 1)
|
|
TASK_FOLLOW_NAV_MESH_TO_COORD (NULL, TargetRoute[5].routenode, DYNAMIC_MOVE_BLEND_RATIO, -2, 1)
|
|
TASK_FOLLOW_NAV_MESH_TO_COORD (NULL, TargetRoute[6].routenode, DYNAMIC_MOVE_BLEND_RATIO, -2, 1)
|
|
CLOSE_SEQUENCE_TASK (TEST_SEQUENCE)
|
|
RETURN TEST_SEQUENCE
|
|
ENDFUNC
|
|
|
|
|
|
|
|
//SET UP
|
|
PROC SETUP_PATROL_ROUTES ()
|
|
|
|
GET_GROUND_Z_FOR_3D_COORD (<<1.0, 1.0, 25>>, Ground_z)
|
|
|
|
OPEN_PATROL_ROUTE ("miss_loop")
|
|
ADD_PATROL_ROUTE_NODE ( 1, "StandGuard", <<1.0, 1.0, Ground_z>> , <<-4.94, 11.30, 7.0>>, 4000 )
|
|
ADD_PATROL_ROUTE_NODE ( 2, "StandGuard", <<1.0, 10.0, Ground_z>> , <<0.0, 0.0, 0.0>> , 2000 )
|
|
ADD_PATROL_ROUTE_NODE ( 3, "StandGuard", <<10.0, 1.0, Ground_z>> , <<0.0, 0.0, 0.0>>, 4000 )
|
|
|
|
ADD_PATROL_ROUTE_LINK (1, 2)
|
|
ADD_PATROL_ROUTE_LINK (2, 3)
|
|
ADD_PATROL_ROUTE_LINK (3, 1)
|
|
CLOSE_PATROL_ROUTE ()
|
|
|
|
CREATE_PATROL_ROUTE ()
|
|
|
|
OPEN_PATROL_ROUTE ("miss_branched_loop")
|
|
ADD_PATROL_ROUTE_NODE ( 1, "StandGuard", <<-17.77, 1.77, Ground_z>>, <<0.0, 0.0, 0.0>> )
|
|
ADD_PATROL_ROUTE_NODE ( 2, "StandGuard", <<-17.38, 9.63, Ground_z>>, <<0.0, 0.0, 0.0>> )
|
|
ADD_PATROL_ROUTE_NODE ( 3, "StandGuard", <<-26.82, 17.10, Ground_z>>, <<0.0, 0.0, 0.0>> )
|
|
ADD_PATROL_ROUTE_NODE ( 4, "StandGuard", <<-25.76, -1.33, Ground_z>>, <<0.0, 0.0, 0.0>> )
|
|
ADD_PATROL_ROUTE_NODE ( 5, "StandGuard", <<-10.45, 11.47, Ground_z>>, <<0.0, 0.0, 0.0>> )
|
|
ADD_PATROL_ROUTE_NODE ( 6, "StandGuard", <<-10.61, -3.34, Ground_z>>, <<0.0, 0.0, 0.0>> )
|
|
|
|
ADD_PATROL_ROUTE_LINK (1, 2)
|
|
ADD_PATROL_ROUTE_LINK (2, 3)
|
|
ADD_PATROL_ROUTE_LINK (3, 4)
|
|
ADD_PATROL_ROUTE_LINK (4, 1)
|
|
ADD_PATROL_ROUTE_LINK (2, 5)
|
|
ADD_PATROL_ROUTE_LINK (5, 6)
|
|
ADD_PATROL_ROUTE_LINK (6, 1)
|
|
|
|
|
|
CLOSE_PATROL_ROUTE ()
|
|
CREATE_PATROL_ROUTE ()
|
|
|
|
OPEN_PATROL_ROUTE ("miss_branched")
|
|
ADD_PATROL_ROUTE_NODE ( 1, "StandGuard", <<21.94, -1.26, Ground_z>> , <<0.0, 0.0, 0.0>> )
|
|
ADD_PATROL_ROUTE_NODE ( 2, "StandGuard", <<30.09, 0.43, Ground_z>> , <<0.0, 0.0, 0.0>> )
|
|
ADD_PATROL_ROUTE_NODE ( 3, "StandGuard", <<41.27, -3.28, Ground_z>> , <<0.0, 0.0, 0.0>> )
|
|
ADD_PATROL_ROUTE_NODE ( 4, "StandGuard", <<32.41, 12.16, Ground_z>> , <<0.0, 0.0, 0.0>> )
|
|
ADD_PATROL_ROUTE_NODE ( 5, "StandGuard", <<18.41, 20.38, Ground_z>> , <<0.0, 0.0, 0.0>> )
|
|
ADD_PATROL_ROUTE_NODE ( 6, "StandGuard", <<45.12, 7.63, Ground_z>> , <<0.0, 0.0, 0.0>> )
|
|
|
|
ADD_PATROL_ROUTE_LINK (1, 2)
|
|
ADD_PATROL_ROUTE_LINK (2, 3)
|
|
ADD_PATROL_ROUTE_LINK (2, 4)
|
|
ADD_PATROL_ROUTE_LINK (4, 5)
|
|
ADD_PATROL_ROUTE_LINK (4, 6)
|
|
|
|
CLOSE_PATROL_ROUTE ()
|
|
CREATE_PATROL_ROUTE ()
|
|
|
|
|
|
OPEN_PATROL_ROUTE ("miss_dead_end")
|
|
ADD_PATROL_ROUTE_NODE ( 1, "StandGuard", <<10.63, -17.70, Ground_z>> , <<0.0, 0.0, 0.0>> )
|
|
ADD_PATROL_ROUTE_NODE ( 2, "StandGuard", <<1.46, -16.37, Ground_z>> , <<0.0, 0.0, 0.0>> )
|
|
ADD_PATROL_ROUTE_NODE ( 3, "StandGuard", <<1.57, -7.94, Ground_z>> , <<0.0, 0.0, 0.0>> )
|
|
ADD_PATROL_ROUTE_NODE ( 4, "StandGuard", <<15.67, -7.83, Ground_z>> , <<0.0, 0.0, 0.0>> )
|
|
|
|
ADD_PATROL_ROUTE_LINK (1, 2)
|
|
ADD_PATROL_ROUTE_LINK (2, 3)
|
|
ADD_PATROL_ROUTE_LINK (3, 4)
|
|
|
|
|
|
CLOSE_PATROL_ROUTE ()
|
|
CREATE_PATROL_ROUTE ()
|
|
|
|
|
|
ENDPROC
|
|
|
|
FUNC SEQUENCE_INDEX FOLLOW_PATROL_ROUTE ( STRING RouteName, PATROL_ALERT_STATE alert_state )
|
|
SEQUENCE_INDEX TEST_SEQUENCE
|
|
OPEN_SEQUENCE_TASK (TEST_SEQUENCE)
|
|
TASK_PATROL (null, RouteName, alert_state, true )
|
|
CLOSE_SEQUENCE_TASK (TEST_SEQUENCE)
|
|
|
|
RETURN TEST_SEQUENCE
|
|
ENDFUNC
|
|
|
|
PROC DRIVE_TO_POINT_SEQUENCE (PED_INDEX ped, VEHICLE_INDEX veh)
|
|
SEQUENCE_INDEX SEQ
|
|
OPEN_SEQUENCE_TASK (SEQ)
|
|
// IF NOT IS_PED_INJURED(TestPeds[1].Ped)
|
|
// TASK_VEHICLE_SHOOT_AT_PED(NULL, TestPeds[1].Ped )
|
|
// ENDIF
|
|
TASK_FLUSH_ROUTE()
|
|
TASK_EXTEND_ROUTE(<< -17.30, -6.60, 1.19>>+ gvMapOffset )
|
|
TASK_EXTEND_ROUTE(<<-16.69, 12.23, 1.19 >>+ gvMapOffset )
|
|
TASK_EXTEND_ROUTE(<<12.18, 12.76, 1.19 >> + gvMapOffset)
|
|
TASK_EXTEND_ROUTE(<<13.37, -14.18, 1.19 >>+ gvMapOffset )
|
|
TASK_DRIVE_POINT_ROUTE (NULL, veh, 1.0 )
|
|
// IF bShootAtPed1 = TRUE
|
|
// ADD_VEHICLE_SUBTASK_ATTACK_PED(NULL, TestPeds[1].Ped )
|
|
// ENDIF
|
|
SET_SEQUENCE_TO_REPEAT(seq, REPEAT_FOREVER)
|
|
CLOSE_SEQUENCE_TASK(SEQ)
|
|
|
|
IF NOT IS_PED_INJURED (ped)
|
|
TASK_PERFORM_SEQUENCE (ped, seq)
|
|
|
|
CLEAR_SEQUENCE_TASK (seq)
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
//Function End: SCENARIO TASKS
|
|
|
|
//Functions: DEFENSIVE AREA
|
|
STRUCT DefSphereSt
|
|
VECTOR DefensiveAreaPos
|
|
FLOAT DefensiveAreaRadius
|
|
VECTOR DefensiveAreaDirection
|
|
ENDSTRUCT
|
|
|
|
DefSphereSt DefensiveSphereAreas [4]
|
|
int iCurrentDefensiveArea = 0
|
|
|
|
|
|
|
|
ENUM SCENARIO_STATE_ENUM
|
|
STATE_INIT,
|
|
STATE_1,
|
|
STATE_2,
|
|
STATE_3,
|
|
STATE_4
|
|
ENDENUM
|
|
|
|
SCENARIO_STATE_ENUM SCENARIO_STATE = STATE_INIT
|
|
|
|
ENUM PREFERRED_COVER_FLAGS
|
|
PREFERRED_COVER_INIT,
|
|
PREFERRED_COVER_RUN,
|
|
PREFERRED_COVER_FINISH
|
|
ENDENUM
|
|
|
|
PREFERRED_COVER_FLAGS PREFERRED_COVER_STATE = PREFERRED_COVER_INIT
|
|
|
|
// SCENARIO: SquadOfPedsMovingBetweenVehicles
|
|
|
|
ENUM Scenario_SquadOfPedsMovingBetweenVehicles_Flags
|
|
Scenario_SquadOfPedsMovingBetweenVehicles_init,
|
|
Scenario_SquadOfPedsMovingBetweenVehicles_SwapDefAreas
|
|
ENDENUM
|
|
|
|
|
|
Scenario_SquadOfPedsMovingBetweenVehicles_Flags Scenario_SquadOfPedsMovingBetweenVehicles = Scenario_SquadOfPedsMovingBetweenVehicles_init
|
|
|
|
ENUM Scenario_TaskStayInCover_Flags
|
|
Scenario_TaskStayInCover_init,
|
|
Scenario_TaskStayInCover_SwapDefAreas
|
|
ENDENUM
|
|
|
|
Scenario_TaskStayInCover_Flags Scenario_TaskStayInCover = Scenario_TaskStayInCover_init
|
|
|
|
// Peds moving behind a moving vehicle
|
|
ENUM Scenario_SquadStaysDefensiveBehindVehicle_Flags
|
|
Scenario_SquadStaysDefensiveBehindVehicle_init,
|
|
Scenario_SquadStaysDefensiveBehindVehicle_Run
|
|
ENDENUM
|
|
|
|
Scenario_SquadStaysDefensiveBehindVehicle_Flags Scenario_SquadStaysDefensiveBehindVehicle = Scenario_SquadStaysDefensiveBehindVehicle_init
|
|
|
|
// Scenario_SquadDefendingPos
|
|
ENUM Scenario_SquadDefendingPos_Flags
|
|
Scenario_SquadDefendingPos_init,
|
|
Scenario_SquadDefendingPos_grp2,
|
|
Scenario_SquadDefendingPos_grp3
|
|
ENDENUM
|
|
|
|
Scenario_SquadDefendingPos_Flags Scenario_SquadDefendingPos = Scenario_SquadDefendingPos_init
|
|
|
|
//Scenario_PedDoesWeirdThingsSeekingCover
|
|
ENUM Scenario_PedDoesWeirdThingsSeekingCover_Flags
|
|
Scenario_PedDoesWeirdThingsSeekingCover_init,
|
|
Scenario_PedDoesWeirdThingsSeekingCover_run
|
|
ENDENUM
|
|
|
|
Scenario_PedDoesWeirdThingsSeekingCover_Flags Scenario_PedDoesWeirdThingsSeekingCover_Status = Scenario_PedDoesWeirdThingsSeekingCover_init
|
|
|
|
ENUM Scenario_CombatRanges_Flags
|
|
Scenario_CombatRanges_init,
|
|
Scenario_CombatRanges_run
|
|
ENDENUM
|
|
Scenario_CombatRanges_Flags Scenario_CombatRanges_Status = Scenario_CombatRanges_init
|
|
|
|
PROC INITALISE_TEST_STATE()
|
|
//reset each scenario
|
|
SingleTaskStatus = startSingleTask
|
|
//reset each scenario
|
|
Scenario_SquadOfPedsMovingBetweenVehicles = Scenario_SquadOfPedsMovingBetweenVehicles_init
|
|
Scenario_SquadStaysDefensiveBehindVehicle = Scenario_SquadStaysDefensiveBehindVehicle_Init
|
|
Scenario_SquadDefendingPos = Scenario_SquadDefendingPos_init
|
|
Scenario_PedDoesWeirdThingsSeekingCover_Status = Scenario_PedDoesWeirdThingsSeekingCover_init
|
|
Scenario_TaskStayInCover = Scenario_TaskStayInCover_init
|
|
SCENARIO_STATE = STATE_INIT
|
|
//end reset
|
|
ENDPROC
|
|
|
|
ITEMSET_INDEX PreferredCoverItemSet = NULL
|
|
BOOL ADDED_PREFERRED_COVER_POINTS = FALSE
|
|
|
|
VECTOR COV_POS1 = <<4.21, 184.97, 6.35>>
|
|
VECTOR COV_POS2 = <<9.84, 184.98, 6.35>>
|
|
VECTOR COV_POS3 = <<14.36, 185.07, 6.35>>
|
|
VECTOR COV_POS4 = <<21.17, 178.58, 6.35>>
|
|
|
|
PROC SETUP_COMBAT_TARGETS_DATA ()
|
|
|
|
TestPeds[0].PedsCoords = <<10.76, 238.84, 6.35>>
|
|
TestPeds[0].PedHeading = 0
|
|
TestPeds[0].Pedrelgrp = 1
|
|
TestPeds[0].PedModel = S_M_Y_Cop_01
|
|
TestPeds[0].PedsWeapon = WEAPONTYPE_SMG
|
|
TestPeds[0].PedcombatMove = 0
|
|
TestPeds[0].pedcombatrange = 2
|
|
TestPeds[0].combatcover = CA_USE_COVER
|
|
TestPeds[0].bcombatcover = TRUE
|
|
|
|
TestPeds[1].PedsCoords = <<8.91, 244.60, 6.35>>
|
|
TestPeds[1].PedHeading = 0
|
|
TestPeds[1].Pedrelgrp = 2
|
|
TestPeds[1].PedModel = S_M_Y_MARINE_01
|
|
TestPeds[1].PedsWeapon = WEAPONTYPE_CARBINERIFLE
|
|
TestPeds[1].PedcombatMove = 0
|
|
TestPeds[1].pedcombatrange = 2
|
|
TestPeds[1].combatcover = CA_USE_COVER
|
|
TestPeds[1].bcombatcover = TRUE
|
|
|
|
TestPeds[2].PedsCoords = <<11.04, 244.83, 6.35>>
|
|
TestPeds[2].PedHeading = 0
|
|
TestPeds[2].Pedrelgrp = 2
|
|
TestPeds[2].PedModel = S_M_Y_MARINE_02
|
|
TestPeds[2].PedsWeapon = WEAPONTYPE_CARBINERIFLE
|
|
TestPeds[2].PedcombatMove = 0
|
|
TestPeds[2].pedcombatrange = 2
|
|
TestPeds[2].combatcover = CA_USE_COVER
|
|
TestPeds[2].bcombatcover = TRUE
|
|
|
|
TestCams[FixedCamera].cam_pos = <<12.399977,229.328735,13.197482>>
|
|
TestCams[FixedCamera].cam_rot = <<-31.897488,-0.000000,-9.631414>>
|
|
TestCams[FixedCamera].cam_fov = 65.0
|
|
TestCams[FixedCamera].bActivateCam = TRUE
|
|
|
|
ENDPROC
|
|
|
|
PROC SETUP_AIM_GUN_DATA()
|
|
|
|
TestPeds[0].PedsCoords = <<-41.63, 243.31, 6.35>>
|
|
TestPeds[0].PedHeading = 0
|
|
TestPeds[0].Pedrelgrp = 1
|
|
TestPeds[0].PedModel = S_M_Y_Cop_01
|
|
TestPeds[0].PedsWeapon = WEAPONTYPE_MINIGUN
|
|
TestPeds[0].PedcombatMove = 0
|
|
TestPeds[0].pedcombatrange = 2
|
|
TestPeds[0].combatcover = CA_USE_COVER
|
|
TestPeds[0].bcombatcover = TRUE
|
|
|
|
TestPeds[1].PedsCoords = <<-34.78, 243.96, 6.35>>
|
|
TestPeds[1].PedHeading = 0
|
|
TestPeds[1].Pedrelgrp = 2
|
|
TestPeds[1].PedModel = S_M_Y_MARINE_01
|
|
TestPeds[1].PedsWeapon = WEAPONTYPE_CARBINERIFLE
|
|
TestPeds[1].PedcombatMove = 0
|
|
TestPeds[1].pedcombatrange = 2
|
|
TestPeds[1].combatcover = CA_USE_COVER
|
|
TestPeds[1].bcombatcover = TRUE
|
|
|
|
TestPeds[2].PedsCoords = <<-34.78, 240.96, 6.35>>
|
|
TestPeds[2].PedHeading = 0
|
|
TestPeds[2].Pedrelgrp = 2
|
|
TestPeds[2].PedModel = S_M_Y_MARINE_01
|
|
TestPeds[2].PedsWeapon = WEAPONTYPE_CARBINERIFLE
|
|
TestPeds[2].PedcombatMove = 0
|
|
TestPeds[2].pedcombatrange = 2
|
|
TestPeds[2].combatcover = CA_USE_COVER
|
|
TestPeds[2].bcombatcover = TRUE
|
|
|
|
TestVehicles [0].vehicleCoords = <<-33.68, 249.10, 6.35>>
|
|
TestVehicles [0].vehicleHeading = 90
|
|
TestVehicles [0].vehiclemodel = TAILGATER
|
|
|
|
TestObjects[0].ObjectCoords = <<-43.51, 242.88, 6.35>>
|
|
TestObjects[0].ObjectModel = PROP_LETTERBOX_01
|
|
|
|
TestCams[FixedCamera].cam_pos = <<-42.041958,239.649292,10.411165>>
|
|
TestCams[FixedCamera].cam_rot = <<-36.519039,-0.000000,-13.888417>>
|
|
TestCams[FixedCamera].cam_fov = 65.0
|
|
TestCams[FixedCamera].bActivateCam = TRUE
|
|
|
|
ENDPROC
|
|
|
|
PROC SETUP_COVER_DATA()
|
|
|
|
IF bUseLowCoverPoint
|
|
TestPeds[0].PedsCoords = <<-64.11, 92.81, 6.35>>
|
|
ELSE
|
|
TestPeds[0].PedsCoords = <<-63.36, 98.82, 6.35>>
|
|
ENDIF
|
|
|
|
TestPeds[0].PedHeading = 98.00
|
|
TestPeds[0].Pedrelgrp = 1
|
|
IF bUseSwatModel
|
|
TestPeds[0].PedModel = S_M_Y_SWAT_01
|
|
ELSE
|
|
TestPeds[0].PedModel = S_M_Y_Cop_01
|
|
ENDIF
|
|
|
|
IF bUseOneHandedWeapon
|
|
TestPeds[0].PedsWeapon = WEAPONTYPE_PISTOL
|
|
ELSE
|
|
TestPeds[0].PedsWeapon = WEAPONTYPE_CARBINERIFLE
|
|
ENDIF
|
|
|
|
TestPeds[0].PedcombatMove = 0
|
|
TestPeds[0].pedcombatrange = 2
|
|
TestPeds[0].combatcover = CA_USE_COVER
|
|
TestPeds[0].bcombatcover = TRUE
|
|
|
|
TestPeds[1].PedsCoords = <<-68.53, 101.53, 6.35>>
|
|
TestPeds[1].PedHeading = 0
|
|
TestPeds[1].Pedrelgrp = 2
|
|
TestPeds[1].PedModel = S_F_M_MAID_01
|
|
TestPeds[1].PedsWeapon = WEAPONTYPE_MINIGUN
|
|
TestPeds[1].PedcombatMove = 0
|
|
TestPeds[1].pedcombatrange = 2
|
|
TestPeds[1].combatcover = CA_USE_COVER
|
|
TestPeds[1].bcombatcover = TRUE
|
|
|
|
TestCams[FixedCamera].cam_pos = <<-55.604721,99.186378,11.271409>>
|
|
TestCams[FixedCamera].cam_rot = <<-34.457100,-0.000000,106.999374>>
|
|
TestCams[FixedCamera].cam_fov = 65.0
|
|
TestCams[FixedCamera].bActivateCam = TRUE
|
|
|
|
ENDPROC
|
|
|
|
PROC SETUP_GUARD_DATA()
|
|
|
|
TestPeds[0].PedsCoords = <<13.77, 182.27, 6.35>>
|
|
TestPeds[0].PedHeading = 0
|
|
TestPeds[0].Pedrelgrp = 1
|
|
TestPeds[0].PedModel = S_M_Y_Cop_01
|
|
TestPeds[0].PedsWeapon = WEAPONTYPE_PISTOL
|
|
TestPeds[0].PedcombatMove = 0
|
|
TestPeds[0].pedcombatrange = 2
|
|
TestPeds[0].combatcover = CA_USE_COVER
|
|
TestPeds[0].bcombatcover = TRUE
|
|
|
|
TestCams[FixedCamera].cam_pos = <<6.797447,175.978683,15.128465>>
|
|
TestCams[FixedCamera].cam_rot = <<-38.216122,0.225905,-52.729095>>
|
|
TestCams[FixedCamera].cam_fov = 65.0
|
|
TestCams[FixedCamera].bActivateCam = TRUE
|
|
|
|
ENDPROC
|
|
|
|
PROC SETUP_COMBAT_PED_DATA ()
|
|
|
|
gbPlayerShouldBeAtCamPos = TRUE
|
|
|
|
TestPeds[0].PedsCoords = <<21.75, -56.00, 6.35>>
|
|
TestPeds[0].PedHeading = 0
|
|
TestPeds[0].Pedrelgrp = 1
|
|
TestPeds[0].PedModel = S_M_Y_Cop_01
|
|
TestPeds[0].PedsWeapon = WEAPONTYPE_SMG
|
|
TestPeds[0].PedcombatMove = 0
|
|
TestPeds[0].pedcombatrange = 2
|
|
TestPeds[0].combatcover = CA_USE_COVER
|
|
TestPeds[0].bcombatcover = TRUE
|
|
|
|
TestPeds[1].PedsCoords = <<24.13, -46.20, 6.35>>
|
|
TestPeds[1].PedHeading = 180
|
|
TestPeds[1].Pedrelgrp = 2
|
|
TestPeds[1].PedModel = S_M_Y_MARINE_01
|
|
TestPeds[1].PedsWeapon = WEAPONTYPE_CARBINERIFLE
|
|
TestPeds[1].PedcombatMove = 0
|
|
TestPeds[1].pedcombatrange = 2
|
|
TestPeds[1].combatcover = CA_USE_COVER
|
|
TestPeds[1].bcombatcover = TRUE
|
|
|
|
TestCams[FixedCamera].cam_pos = <<13.917382,-50.876545,7.909274>>
|
|
TestCams[FixedCamera].cam_rot = <<-3.043049,0.000000,-102.989365>>
|
|
TestCams[FixedCamera].cam_fov = 65.0
|
|
TestCams[FixedCamera].bActivateCam = TRUE
|
|
|
|
ENDPROC
|
|
|
|
PROC SETUP_PREFERRED_COVER_DATA ()
|
|
ENDPROC
|
|
|
|
PROC SETUP_TEST_DATA ()
|
|
|
|
SWITCH int_to_enum (scenarios, gcurrentselection)
|
|
CASE TEST_TASK_COMBAT_PED
|
|
SETUP_COMBAT_PED_DATA ()
|
|
BREAK
|
|
CASE TEST_TASK_COMBAT_HATED_TARGETS_AROUND_PED
|
|
CASE TEST_TASK_COMBAT_HATED_TARGETS_AROUND_PED_TIMED
|
|
CASE TEST_TASK_COMBAT_TIMED
|
|
CASE TEST_TASK_COMBAT_HATED_PED_IN_AREA
|
|
|
|
SETUP_COMBAT_TARGETS_DATA ()
|
|
|
|
BREAK
|
|
|
|
CASE TEST_TASK_AIM_GUN_AT_COORD
|
|
CASE TEST_TASK_AIM_GUN_AT_ENTITY
|
|
CASE TEST_TASK_SHOOT_AT_COORD
|
|
CASE TEST_TASK_GOTO_X_WHILE_AIMING_AT_X
|
|
|
|
SETUP_AIM_GUN_DATA()
|
|
|
|
BREAK
|
|
|
|
CASE TEST_TASK_SEEK_COVER_FROM_POS
|
|
CASE TEST_TASK_SEEK_COVER_FROM_PED
|
|
CASE TEST_TASK_SEEK_COVER_TO_COVER_POINT
|
|
CASE TEST_TASK_SEEK_COVER_TO_COVER_COORD
|
|
CASE TEST_TASK_PUT_PED_DIRECTLY_INTO_COVER
|
|
|
|
gbPlayerShouldBeAtCamPos = FALSE
|
|
PlayerStartPos = <<-62.38, 88.74, 6.35>>
|
|
|
|
SETUP_COVER_DATA()
|
|
|
|
BREAK
|
|
|
|
CASE TEST_TASK_GUARD_ASSIGNED_DEFENSIVE_AREA
|
|
CASE TEST_TASK_GUARD_ANGLED_DEFENSIVE_AREA
|
|
CASE TEST_TASK_GUARD_SPHERE_DEFENSIVE_AREA
|
|
CASE TEST_TASK_GUARD_CURRENT_POS
|
|
CASE TEST_TASK_STAND_GUARD
|
|
|
|
gbPlayerShouldBeAtCamPos = TRUE
|
|
SETUP_GUARD_DATA()
|
|
|
|
BREAK
|
|
|
|
CASE SET_PED_PREFERRED_COVER
|
|
|
|
gbPlayerShouldBeAtCamPos = FALSE
|
|
PlayerStartPos = <<13.96, 193.80, 6.35>>
|
|
|
|
TestPeds[0].PedsCoords = <<11.90, 172.52, 6.35>>
|
|
TestPeds[0].PedHeading = 359.6439
|
|
TestPeds[0].Pedrelgrp = 1
|
|
TestPeds[0].PedModel = S_M_Y_Cop_01
|
|
TestPeds[0].PedsWeapon = WEAPONTYPE_ASSAULTRIFLE
|
|
TestPeds[0].PedcombatMove = 0
|
|
TestPeds[0].pedcombatrange = 2
|
|
TestPeds[0].combatcover = CA_USE_COVER
|
|
TestPeds[0].bcombatcover = TRUE
|
|
|
|
IF NOT ADDED_PREFERRED_COVER_POINTS
|
|
COVERPOINT_INDEX coverIndex
|
|
PreferredCoverItemSet = CREATE_ITEMSET(true)
|
|
coverIndex = ADD_COVER_POINT(COV_POS1, 0.0, COVUSE_WALLTOLEFT, COVHEIGHT_LOW, COVARC_120)
|
|
ADD_TO_ITEMSET(coverIndex, PreferredCoverItemSet)
|
|
coverIndex = ADD_COVER_POINT(COV_POS2, 0.0, COVUSE_WALLTOLEFT, COVHEIGHT_LOW, COVARC_120)
|
|
ADD_TO_ITEMSET(coverIndex, PreferredCoverItemSet)
|
|
coverIndex = ADD_COVER_POINT(COV_POS3, 0.0, COVUSE_WALLTOLEFT, COVHEIGHT_LOW, COVARC_120)
|
|
ADD_TO_ITEMSET(coverIndex, PreferredCoverItemSet)
|
|
coverIndex = ADD_COVER_POINT(COV_POS4, 0.0, COVUSE_WALLTOLEFT, COVHEIGHT_LOW, COVARC_120)
|
|
ADD_TO_ITEMSET(coverIndex, PreferredCoverItemSet)
|
|
ADDED_PREFERRED_COVER_POINTS = TRUE
|
|
ENDIF
|
|
|
|
PREFERRED_COVER_STATE = PREFERRED_COVER_INIT
|
|
BREAK
|
|
|
|
CASE TEST_TASK_PATROL
|
|
|
|
TestPeds[0].PedsCoords = << 0.95, -5.32, 7.36>>
|
|
TestPeds[0].PedHeading = 359.6439
|
|
TestPeds[0].Pedrelgrp = 1
|
|
TestPeds[0].PedModel = S_M_Y_Cop_01
|
|
TestPeds[0].PedsWeapon = WEAPONTYPE_UNARMED
|
|
TestPeds[0].pedsstringweapon = "WEAPONTYPE_PISTOL"
|
|
TestPeds[0].PedcombatMove = 0
|
|
TestPeds[0].pedcombatrange = 2
|
|
TestPeds[0].combatcover = CA_USE_COVER
|
|
TestPeds[0].bcombatcover = FALSE
|
|
|
|
TestPeds[1].PedsCoords = <<4.59, -5.45, 7.36>>
|
|
TestPeds[1].PedHeading = 359.6439
|
|
TestPeds[1].Pedrelgrp = 1
|
|
TestPeds[1].PedModel = S_M_Y_Cop_01
|
|
TestPeds[1].PedsWeapon = WEAPONTYPE_UNARMED
|
|
TestPeds[1].pedsstringweapon = "WEAPONTYPE_PISTOL"
|
|
TestPeds[1].PedcombatMove = 0
|
|
TestPeds[1].pedcombatrange = 2
|
|
TestPeds[1].combatcover = CA_USE_COVER
|
|
TestPeds[1].bcombatcover = FALSE
|
|
|
|
TestPeds[2].PedsCoords = << 8.09, -5.49, 7.36>>
|
|
TestPeds[2].PedHeading = 359.6439
|
|
TestPeds[2].Pedrelgrp = 1
|
|
TestPeds[2].PedModel = S_M_Y_Cop_01
|
|
TestPeds[2].PedsWeapon = WEAPONTYPE_UNARMED
|
|
TestPeds[2].pedsstringweapon = "WEAPONTYPE_PISTOL"
|
|
TestPeds[2].PedcombatMove = 0
|
|
TestPeds[2].pedcombatrange = 2
|
|
TestPeds[2].combatcover = CA_USE_COVER
|
|
TestPeds[2].bcombatcover = FALSE
|
|
|
|
TestPeds[3].PedsCoords = <<13.40, -5.49, 7.36>>
|
|
TestPeds[3].PedHeading = 359.6439
|
|
TestPeds[3].Pedrelgrp = 1
|
|
TestPeds[3].PedModel = S_M_Y_Cop_01
|
|
TestPeds[3].PedsWeapon = WEAPONTYPE_UNARMED
|
|
TestPeds[3].pedsstringweapon = "WEAPONTYPE_PISTOL"
|
|
TestPeds[3].PedcombatMove = 0
|
|
TestPeds[3].pedcombatrange = 2
|
|
TestPeds[3].combatcover = CA_USE_COVER
|
|
TestPeds[3].bcombatcover = FALSE
|
|
|
|
TestCams[FixedCamera].cam_pos = <<-5.19, 16.72, 14>>
|
|
TestCams[FixedCamera].cam_rot = <<-16.42, 0, -154.76>>
|
|
TestCams[FixedCamera].bActivateCam = TRUE
|
|
|
|
BREAK
|
|
|
|
CASE TEST_IS_PED_RESPONDING_TO_EVENT
|
|
SETUP_COMBAT_PED_DATA ()
|
|
BREAK
|
|
|
|
CASE TEST_HAS_PED_RECEIVED_EVENT
|
|
|
|
gbPlayerShouldBeAtCamPos = FALSE
|
|
PlayerStartPos = <<13.96, 193.80, 6.35>>
|
|
|
|
TestPeds[0].PedsCoords = <<11.90, 172.52, 6.35>>
|
|
TestPeds[0].PedHeading = 359.6439
|
|
TestPeds[0].Pedrelgrp = 1
|
|
TestPeds[0].PedModel = S_M_Y_Cop_01
|
|
TestPeds[0].PedsWeapon = WEAPONTYPE_ASSAULTRIFLE
|
|
TestPeds[0].PedcombatMove = 0
|
|
TestPeds[0].pedcombatrange = 2
|
|
TestPeds[0].combatcover = CA_USE_COVER
|
|
TestPeds[0].bcombatcover = TRUE
|
|
|
|
TestVehicles [0].vehicleCoords = <<-33.68, 249.10, 6.35>>
|
|
TestVehicles [0].vehicleHeading = 90
|
|
TestVehicles [0].vehiclemodel = TAILGATER
|
|
|
|
BREAK
|
|
|
|
CASE SCENARIO_PED_MOVE_TO_COVER_PED_STAYS_STILL
|
|
|
|
gbPlayerShouldBeAtCamPos = TRUE
|
|
|
|
TestPeds[0].PedsCoords = <<-1.48, 93.43, 6.35>>
|
|
TestPeds[0].PedHeading = 180
|
|
TestPeds[0].Pedrelgrp = 1
|
|
TestPeds[0].PedModel = S_M_Y_Cop_01
|
|
TestPeds[0].PedsWeapon = WEAPONTYPE_PISTOL
|
|
TestPeds[0].pedsstringweapon = "WEAPONTYPE_PISTOL"
|
|
TestPeds[0].PedcombatMove = 0
|
|
TestPeds[0].pedcombatrange = 2
|
|
TestPeds[0].combatcover = CA_USE_COVER
|
|
TestPeds[0].bcombatcover = FALSE
|
|
|
|
TestPeds[1].PedsCoords = <<-1.91, 80.54, 6.35>>
|
|
TestPeds[1].PedHeading = -180.0000
|
|
TestPeds[1].Pedrelgrp = 2
|
|
TestPeds[1].PedModel = S_M_M_ARMOURED_01
|
|
TestPeds[1].PedsWeapon = WEAPONTYPE_PISTOL
|
|
TestPeds[1].pedsstringweapon = "WEAPONTYPE_PISTOL"
|
|
|
|
TestVehicles[0].vehicleCoords = <<-1.20, 84.55, 6.35>>
|
|
TestVehicles[0].vehicleHeading = 90.0001
|
|
TestVehicles[0].vehiclemodel = TAILGATER
|
|
|
|
TestCams[FixedCamera].cam_pos = <<-18.172731,81.990250,11.204312>>
|
|
TestCams[FixedCamera].cam_rot = <<-15.434171,0.000000,-85.945595>>
|
|
TestCams[FixedCamera].bActivateCam = TRUE
|
|
|
|
BREAK
|
|
|
|
CASE BugPedsNotShootingThroughFreindlyPed
|
|
TestPeds[0].PedsCoords = << -1.4167, 0.0727, 7.36>>
|
|
TestPeds[0].PedHeading = 359.6439
|
|
TestPeds[0].Pedrelgrp = 1
|
|
TestPeds[0].PedModel = S_M_Y_Cop_01
|
|
TestPeds[0].PedsWeapon = WEAPONTYPE_ASSAULTRIFLE
|
|
TestPeds[0].PedcombatMove = 0
|
|
TestPeds[0].pedcombatrange = 2
|
|
TestPeds[0].combatcover = CA_USE_COVER
|
|
TestPeds[0].bcombatcover = TRUE
|
|
|
|
TestPeds[1].PedsCoords = << -1.2937, 0.9857, 7.36>>
|
|
TestPeds[1].PedHeading = 5.0422
|
|
TestPeds[1].Pedrelgrp = 1
|
|
TestPeds[1].PedModel = S_M_Y_Cop_01
|
|
TestPeds[1].PedsWeapon = WEAPONTYPE_ASSAULTRIFLE
|
|
|
|
TestPeds[2].PedsCoords = << -1.0437, 8.4857, 7.36>>
|
|
TestPeds[2].PedHeading = 181.0422
|
|
TestPeds[2].Pedrelgrp = 2
|
|
TestPeds[2].PedModel = S_M_Y_Cop_01
|
|
TestPeds[2].PedsWeapon = WEAPONTYPE_PISTOL
|
|
TestPeds[2].PedcombatMove = 0
|
|
TestPeds[2].combatcover = CA_USE_COVER
|
|
TestPeds[2].bcombatcover = FALSE
|
|
|
|
TestCams[FixedCamera].cam_pos = <<-10.2,6.3,4.3>>
|
|
TestCams[FixedCamera].cam_rot = <<-11.27, 0.0, -98.75>>
|
|
TestCams[FixedCamera].cam_fov = 65.0
|
|
TestCams[FixedCamera].bActivateCam = TRUE
|
|
BREAK
|
|
|
|
CASE SCENARIO_BOTH_PEDS_MOVE_TO_COVER
|
|
TestPeds[0].PedsCoords = << -1.4167, 0.0727, 1.1959>> + gvMapOffset
|
|
TestPeds[0].PedHeading = 359.6439
|
|
TestPeds[0].Pedrelgrp = 1
|
|
TestPeds[0].PedModel = S_M_Y_Cop_01
|
|
TestPeds[0].PedsWeapon = WEAPONTYPE_PISTOL
|
|
TestPeds[0].pedsstringweapon = "WEAPONTYPE_PISTOL"
|
|
TestPeds[0].PedcombatMove = 2
|
|
TestPeds[0].pedcombatrange = 2
|
|
TestPeds[0].combatcover = CA_USE_COVER
|
|
TestPeds[0].bcombatcover = TRUE
|
|
|
|
TestPeds[2].PedsCoords = << 0.0000, 20.2500, 1.1959>> + gvMapOffset
|
|
TestPeds[2].PedHeading = 180.0000
|
|
TestPeds[2].Pedrelgrp = 2
|
|
TestPeds[2].PedModel = S_M_Y_Cop_01
|
|
TestPeds[2].PedsWeapon = WEAPONTYPE_PISTOL
|
|
TestPeds[1].pedsstringweapon = "WEAPONTYPE_PISTOL"
|
|
TestPeds[2].combatcover = CA_USE_COVER
|
|
TestPeds[2].bcombatcover = TRUE
|
|
|
|
TestVehicles [0 ].vehicleCoords = << -0.2515, 9.7511, 1.9393>> + gvMapOffset
|
|
TestVehicles [0 ].vehicleHeading = 89.9995
|
|
TestVehicles [0 ].vehiclemodel = FBI
|
|
|
|
TestCams[FixedCamera].cam_pos = <<-19.069626,7.701386,6.704120>>+ gvMapOffset
|
|
TestCams[FixedCamera].cam_rot = <<-19.276978,0.000002,-93.249466>>
|
|
TestCams[FixedCamera].bActivateCam = TRUE
|
|
|
|
BREAK
|
|
|
|
CASE SCENARIO_TWO_PEDS_NO_COVER
|
|
|
|
TestPeds[0].PedsCoords = << -0.9167, -5.9273, 1.1959>> + gvMapOffset
|
|
TestPeds[0].PedHeading = 359.6439
|
|
TestPeds[0].Pedrelgrp = 1
|
|
TestPeds[0].PedModel = S_M_Y_Cop_01
|
|
TestPeds[0].PedsWeapon = WEAPONTYPE_PISTOL
|
|
TestPeds[0].pedsstringweapon = "WEAPONTYPE_PISTOL"
|
|
TestPeds[0].PedcombatMove = 2 //will advance
|
|
TestPeds[0].pedcombatrange = 0 //combat_range
|
|
TestPeds[0].combatcover = CA_USE_COVER
|
|
TestPeds[0].bcombatcover = FALSE
|
|
|
|
TestPeds[2].PedsCoords = << -3.8539, 22.2401, 1.1959>> + gvMapOffset
|
|
TestPeds[2].PedHeading = 178.7689
|
|
TestPeds[2].Pedrelgrp = 2
|
|
TestPeds[2].PedModel = S_M_Y_Cop_01
|
|
TestPeds[2].PedsWeapon = WEAPONTYPE_PISTOL
|
|
TestPeds[2].pedsstringweapon = "WEAPONTYPE_PISTOL"
|
|
TestPeds[2].PedcombatMove = 2
|
|
TestPeds[2].pedcombatrange = 0
|
|
TestPeds[2].combatcover = CA_USE_COVER
|
|
TestPeds[2].bcombatcover = FALSE
|
|
|
|
TestCams[FixedCamera].cam_pos = <<-19.069626,7.701386,6.704120>>+ gvMapOffset
|
|
TestCams[FixedCamera].cam_rot = <<-19.276978,0.000002,-93.249466>>
|
|
TestCams[FixedCamera].bActivateCam = TRUE
|
|
|
|
BREAK
|
|
|
|
CASE ARifle_guy_in_cover_breaking
|
|
TestPeds[0].PedsCoords = << -2.1667, -1.4273, 1.1959>> + gvMapOffset
|
|
TestPeds[0].PedHeading = 359.6439
|
|
TestPeds[0].Pedrelgrp = 1
|
|
TestPeds[0].PedModel = S_M_Y_Cop_01
|
|
TestPeds[0].PedsWeapon = WEAPONTYPE_UNARMED
|
|
TestPeds[0].pedsstringweapon = "WEAPONTYPE_UNARMED"
|
|
TestPeds[0].PedcombatMove = 2
|
|
TestPeds[0].pedcombatrange = 2
|
|
TestPeds[0].combatcover = CA_USE_COVER
|
|
TestPeds[0].bcombatcover = FALSE
|
|
|
|
TestPeds[1].PedsCoords = << -4.6667, -1.4273, 1.1959>> + gvMapOffset
|
|
TestPeds[1].PedHeading = -0.0000
|
|
TestPeds[1].Pedrelgrp = 1
|
|
TestPeds[1].PedModel = S_M_Y_Cop_01
|
|
TestPeds[1].PedsWeapon = WEAPONTYPE_PISTOL
|
|
TestPeds[1].pedsstringweapon = "WEAPONTYPE_PISTOL"
|
|
|
|
TestPeds[2].PedsCoords = << -2.5000, 19.5000, 1.1959>> + gvMapOffset
|
|
TestPeds[2].PedHeading = 180.0000
|
|
TestPeds[2].Pedrelgrp = 2
|
|
TestPeds[2].PedModel = S_M_Y_Cop_01
|
|
TestPeds[2].PedsWeapon = WEAPONTYPE_ASSAULTRIFLE
|
|
TestPeds[2].pedsstringweapon = "WEAPONTYPE_ASSAULTRIFLE"
|
|
|
|
TestVehicles [0 ].vehicleCoords = << -3.2515, 17.2517, 1.9393>> + gvMapOffset
|
|
TestVehicles [0 ].vehicleHeading = 90.0001
|
|
TestVehicles [0 ].vehiclemodel = FBI
|
|
|
|
TestCams[0].cam_pos = <<-27.408384,8.174817,9.370035>>+ gvMapOffset
|
|
TestCams[0].cam_rot = <<-19.276978,0.000002,-93.249466>>
|
|
TestCams[FixedCamera].bActivateCam = TRUE
|
|
|
|
BREAK
|
|
|
|
CASE SquadOfPedsMovingBetweenVehicles
|
|
CASE ScenarioCombatRanges
|
|
TestPeds[0].PedsCoords = << -2.1667, -8.4273, 1.1959>> + gvMapOffset
|
|
TestPeds[0].PedHeading = 359.6439
|
|
TestPeds[0].Pedrelgrp = 1
|
|
TestPeds[0].PedModel = S_M_Y_Cop_01
|
|
TestPeds[0].PedsWeapon = WEAPONTYPE_PISTOL
|
|
TestPeds[0].pedsstringweapon = "WEAPONTYPE_PISTOL"
|
|
TestPeds[0].PedcombatMove = 1
|
|
TestPeds[0].combatcover = CA_USE_COVER
|
|
TestPeds[0].bcombatcover = TRUE
|
|
|
|
TestPeds[1].PedsCoords = << -8.6667, -8.6773, 1.1959>> + gvMapOffset
|
|
TestPeds[1].PedHeading = -0.0000
|
|
TestPeds[1].Pedrelgrp = 1
|
|
TestPeds[1].PedModel = S_M_Y_Cop_01
|
|
TestPeds[1].PedsWeapon = WEAPONTYPE_PISTOL
|
|
TestPeds[1].pedsstringweapon = "WEAPONTYPE_PISTOL"
|
|
TestPeds[1].PedcombatMove = 1
|
|
TestPeds[1].combatcover = CA_USE_COVER
|
|
TestPeds[1].bcombatcover = TRUE
|
|
|
|
|
|
TestPeds[2].PedsCoords = << -5.5000, 22.7500, 1.1959>> + gvMapOffset
|
|
TestPeds[2].PedHeading = 180.0000
|
|
TestPeds[2].Pedrelgrp = 2
|
|
TestPeds[2].PedModel = S_M_Y_Cop_01
|
|
TestPeds[2].PedsWeapon = WEAPONTYPE_PISTOL
|
|
TestPeds[2].pedsstringweapon = "WEAPONTYPE_PISTOL"
|
|
TestPeds[2].PedActiveDefArea = TRUE
|
|
TestPeds[2].PedDefCoord = <<-3.0, 21.25, 2.25>>
|
|
TestPeds[2].PedDefArea = 6.25
|
|
TestPeds[2].PedcombatMove = 1
|
|
TestPeds[2].combatcover = CA_USE_COVER
|
|
TestPeds[2].bcombatcover = TRUE
|
|
|
|
TestPeds[3].PedsCoords = << -3.7500, 22.5000, 1.1959>> + gvMapOffset
|
|
TestPeds[3].PedHeading = 188.0000
|
|
TestPeds[3].Pedrelgrp = 2
|
|
TestPeds[3].PedModel = S_M_Y_Cop_01
|
|
TestPeds[3].pedsstringweapon = "WEAPONTYPE_PISTOL"
|
|
TestPeds[3].PedsWeapon = WEAPONTYPE_PISTOL
|
|
TestPeds[3].PedActiveDefArea = TRUE
|
|
TestPeds[3].PedDefCoord = <<-3.0, 21.25, 2.25>>
|
|
TestPeds[3].PedDefArea = 6.25
|
|
TestPeds[3].PedcombatMove = 1
|
|
TestPeds[3].combatcover = CA_USE_COVER
|
|
TestPeds[3].bcombatcover = TRUE
|
|
|
|
TestPeds[4].PedsCoords = << -2.0000, 22.5000, 1.1959>> + gvMapOffset
|
|
TestPeds[4].PedHeading = 178.0000
|
|
TestPeds[4].Pedrelgrp = 2
|
|
TestPeds[4].PedModel = S_M_Y_Cop_01
|
|
TestPeds[4].PedsWeapon = WEAPONTYPE_PISTOL
|
|
TestPeds[4].pedsstringweapon = "WEAPONTYPE_PISTOL"
|
|
TestPeds[4].PedActiveDefArea = TRUE
|
|
TestPeds[4].PedDefCoord = <<-3.0, 21.25, 2.25>>
|
|
TestPeds[4].PedDefArea = 6.25
|
|
TestPeds[4].PedcombatMove = 1
|
|
TestPeds[4].combatcover = CA_USE_COVER
|
|
TestPeds[4].bcombatcover = TRUE
|
|
|
|
TestPeds[5].PedsCoords = << -0.7500, -6.2500, 1.1959>> + gvMapOffset
|
|
TestPeds[5].PedHeading = -0.0000
|
|
TestPeds[5].Pedrelgrp = 1
|
|
TestPeds[5].PedModel = S_M_Y_Cop_01
|
|
TestPeds[5].PedsWeapon = WEAPONTYPE_PISTOL
|
|
TestPeds[5].pedsstringweapon = "WEAPONTYPE_PISTOL"
|
|
TestPeds[5].PedcombatMove = 1
|
|
TestPeds[5].combatcover = CA_USE_COVER
|
|
TestPeds[5].bcombatcover = TRUE
|
|
|
|
TestVehicles [0 ].vehicleCoords = << -0.7516, 20.0020, 1.9393>> + gvMapOffset
|
|
TestVehicles [0 ].vehicleHeading = 90.0001
|
|
TestVehicles [0 ].vehiclemodel = FBI
|
|
|
|
TestVehicles [1 ].vehicleCoords = << -5.5018, 20.2520, 1.9343>> + gvMapOffset
|
|
TestVehicles [1 ].vehicleHeading = 268.0000
|
|
TestVehicles [1 ].vehiclemodel = FBI
|
|
|
|
TestVehicles [2 ].vehicleCoords = << 2.7483, -4.4986, 1.9392>> + gvMapOffset
|
|
TestVehicles [2 ].vehicleHeading = 114.0000
|
|
TestVehicles [2 ].vehiclemodel = FBI
|
|
|
|
TestVehicles [3 ].vehicleCoords = << -8.7512, 4.5025, 1.9393>> + gvMapOffset
|
|
TestVehicles [3 ].vehicleHeading = 246.0001
|
|
TestVehicles [3 ].vehiclemodel = FBI
|
|
|
|
TestVehicles [4 ].vehicleCoords = << -13.2511, -2.7475, 1.9393>> + gvMapOffset
|
|
TestVehicles [4 ].vehicleHeading = 258.0002
|
|
TestVehicles [4 ].vehiclemodel = FBI
|
|
|
|
TestVehicles [5 ].vehicleCoords = << 0.4979, 8.7521, 1.9393>> + gvMapOffset
|
|
TestVehicles [5 ].vehicleHeading = 284.0001
|
|
TestVehicles [5 ].vehiclemodel = FBI
|
|
|
|
TestCams[0].cam_pos = <<9.449883,-7.967893,12.322974>> + gvMapOffset
|
|
TestCams[0].cam_rot = <<-38.123238,-0.000001,50.392761>>
|
|
TestCams[FixedCamera].bActivateCam = TRUE
|
|
|
|
DefensiveSphereAreas[0].DefensiveAreaPos = <<-14.0, -1.25, 1.25 >> + gvMapOffset
|
|
DefensiveSphereAreas[0].DefensiveAreaRadius = 4.25
|
|
DefensiveSphereAreas[0].DefensiveAreaDirection = <<3.25, -3.25, 1.25 >> + gvMapOffset
|
|
DefensiveSphereAreas[1].DefensiveAreaPos = <<3.25, -3.25, 1.25 >>
|
|
DefensiveSphereAreas[1].DefensiveAreaRadius = 4.25
|
|
DefensiveSphereAreas[1].DefensiveAreaDirection = <<-14.0, -1.25, 1.25 >> + gvMapOffset
|
|
DefensiveSphereAreas[2].DefensiveAreaPos = <<-8.75, 4.0, 1.25>>
|
|
DefensiveSphereAreas[2].DefensiveAreaRadius = 4.25
|
|
DefensiveSphereAreas[2].DefensiveAreaDirection = <<0.75, 8.5, 1.25 >> + gvMapOffset
|
|
DefensiveSphereAreas[3].DefensiveAreaPos = <<0.75, 8.5, 1.25 >>
|
|
DefensiveSphereAreas[3].DefensiveAreaRadius = 4.25
|
|
DefensiveSphereAreas[3].DefensiveAreaDirection = <<-8.75, 4.0, 1.25>> + gvMapOffset
|
|
|
|
MAX_NUMBER_DEFENSIVE_AREA = 4
|
|
BREAK
|
|
|
|
CASE ScenarioTaskStayInCover
|
|
TestPeds[0].PedsCoords = << -2.1667, -8.4273, 1.1959>> + gvMapOffset
|
|
TestPeds[0].PedHeading = 359.6439
|
|
TestPeds[0].Pedrelgrp = 1
|
|
TestPeds[0].PedModel = S_M_Y_COP_01
|
|
TestPeds[0].PedsWeapon = WEAPONTYPE_PISTOL
|
|
TestPeds[0].pedsstringweapon = "WEAPONTYPE_PISTOL"
|
|
TestPeds[0].PedcombatMove = 1
|
|
TestPeds[0].combatcover = CA_USE_COVER
|
|
TestPeds[0].bcombatcover = TRUE
|
|
|
|
TestPeds[1].PedsCoords = << -8.6667, -8.6773, 1.1959>> + gvMapOffset
|
|
TestPeds[1].PedHeading = -0.0000
|
|
TestPeds[1].Pedrelgrp = 1
|
|
TestPeds[1].PedModel = S_M_Y_COP_01
|
|
TestPeds[1].PedsWeapon = WEAPONTYPE_PISTOL
|
|
TestPeds[1].pedsstringweapon = "WEAPONTYPE_PISTOL"
|
|
TestPeds[1].PedcombatMove = 1
|
|
TestPeds[1].combatcover = CA_USE_COVER
|
|
TestPeds[1].bcombatcover = TRUE
|
|
|
|
|
|
TestPeds[2].PedsCoords = << -5.5000, 22.7500, 1.1959>> + gvMapOffset
|
|
TestPeds[2].PedHeading = 180.0000
|
|
TestPeds[2].Pedrelgrp = 2
|
|
TestPeds[2].PedModel = S_M_Y_COP_01
|
|
TestPeds[2].PedsWeapon = WEAPONTYPE_PISTOL
|
|
TestPeds[2].pedsstringweapon = "WEAPONTYPE_PISTOL"
|
|
TestPeds[2].PedActiveDefArea = TRUE
|
|
TestPeds[2].PedDefCoord = <<-3.0, 21.25, 2.25>>
|
|
TestPeds[2].PedDefArea = 6.25
|
|
TestPeds[2].PedcombatMove = 1
|
|
TestPeds[2].combatcover = CA_USE_COVER
|
|
TestPeds[2].bcombatcover = TRUE
|
|
|
|
TestPeds[3].PedsCoords = << -3.7500, 22.5000, 1.1959>> + gvMapOffset
|
|
TestPeds[3].PedHeading = 188.0000
|
|
TestPeds[3].Pedrelgrp = 2
|
|
TestPeds[3].PedModel = S_M_Y_COP_01
|
|
TestPeds[3].pedsstringweapon = "WEAPONTYPE_PISTOL"
|
|
TestPeds[3].PedsWeapon = WEAPONTYPE_PISTOL
|
|
TestPeds[3].PedActiveDefArea = TRUE
|
|
TestPeds[3].PedDefCoord = <<-3.0, 21.25, 2.25>> + gvMapOffset
|
|
TestPeds[3].PedDefArea = 6.25
|
|
TestPeds[3].PedcombatMove = 1
|
|
TestPeds[3].combatcover = CA_USE_COVER
|
|
TestPeds[3].bcombatcover = TRUE
|
|
|
|
TestPeds[4].PedsCoords = << -2.0000, 22.5000, 1.1959>> + gvMapOffset
|
|
TestPeds[4].PedHeading = 178.0000
|
|
TestPeds[4].Pedrelgrp = 2
|
|
TestPeds[4].PedModel = S_M_Y_COP_01
|
|
TestPeds[4].PedsWeapon = WEAPONTYPE_PISTOL
|
|
TestPeds[4].pedsstringweapon = "WEAPONTYPE_PISTOL"
|
|
TestPeds[4].PedActiveDefArea = TRUE
|
|
TestPeds[4].PedDefCoord = <<-3.0, 21.25, 2.25>> + gvMapOffset
|
|
TestPeds[4].PedDefArea = 6.25
|
|
TestPeds[4].PedcombatMove = 1
|
|
TestPeds[4].combatcover = CA_USE_COVER
|
|
TestPeds[4].bcombatcover = TRUE
|
|
|
|
TestPeds[5].PedsCoords = << -0.7500, -6.2500, 1.1959>> + gvMapOffset
|
|
TestPeds[5].PedHeading = -0.0000
|
|
TestPeds[5].Pedrelgrp = 1
|
|
TestPeds[5].PedModel = S_M_Y_COP_01
|
|
TestPeds[5].PedsWeapon = WEAPONTYPE_PISTOL
|
|
TestPeds[5].pedsstringweapon = "WEAPONTYPE_PISTOL"
|
|
TestPeds[5].PedcombatMove = 1
|
|
TestPeds[5].combatcover = CA_USE_COVER
|
|
TestPeds[5].bcombatcover = TRUE
|
|
|
|
TestVehicles [0 ].vehicleCoords = << -0.7516, 20.0020, 1.9393>> + gvMapOffset
|
|
TestVehicles [0 ].vehicleHeading = 90.0001
|
|
TestVehicles [0 ].vehiclemodel = FBI
|
|
|
|
TestVehicles [1 ].vehicleCoords = << -5.5018, 20.2520, 1.9343>> + gvMapOffset
|
|
TestVehicles [1 ].vehicleHeading = 268.0000
|
|
TestVehicles [1 ].vehiclemodel = FBI
|
|
|
|
TestVehicles [2 ].vehicleCoords = << 2.7483, -4.4986, 1.9392>> + gvMapOffset
|
|
TestVehicles [2 ].vehicleHeading = 114.0000
|
|
TestVehicles [2 ].vehiclemodel = FBI
|
|
|
|
TestVehicles [3 ].vehicleCoords = << -8.7512, 4.5025, 1.9393>> + gvMapOffset
|
|
TestVehicles [3 ].vehicleHeading = 246.0001
|
|
TestVehicles [3 ].vehiclemodel = FBI
|
|
|
|
TestVehicles [4 ].vehicleCoords = << -13.2511, -2.7475, 1.9393>> + gvMapOffset
|
|
TestVehicles [4 ].vehicleHeading = 258.0002
|
|
TestVehicles [4 ].vehiclemodel = FBI
|
|
|
|
TestVehicles [5 ].vehicleCoords = << 0.4979, 8.7521, 1.9393>> + gvMapOffset
|
|
TestVehicles [5 ].vehicleHeading = 284.0001
|
|
TestVehicles [5 ].vehiclemodel = FBI
|
|
|
|
TestCams[0].cam_pos = <<9.449883,-7.967893,12.322974>>+ gvMapOffset
|
|
TestCams[0].cam_rot = <<-38.123238,-0.000001,50.392761>>
|
|
TestCams[FixedCamera].bActivateCam = TRUE
|
|
|
|
DefensiveSphereAreas[0].DefensiveAreaPos = <<-14.0, -1.25, 1.25 >>+ gvMapOffset
|
|
DefensiveSphereAreas[0].DefensiveAreaRadius = 4.25
|
|
DefensiveSphereAreas[0].DefensiveAreaDirection = <<3.25, -3.25, 1.25 >>+ gvMapOffset
|
|
DefensiveSphereAreas[1].DefensiveAreaPos = <<3.25, -3.25, 1.25 >>
|
|
DefensiveSphereAreas[1].DefensiveAreaRadius = 4.25
|
|
DefensiveSphereAreas[1].DefensiveAreaDirection = <<-14.0, -1.25, 1.25 >>+ gvMapOffset
|
|
DefensiveSphereAreas[2].DefensiveAreaPos = <<-8.75, 4.0, 1.25>>
|
|
DefensiveSphereAreas[2].DefensiveAreaRadius = 4.25
|
|
DefensiveSphereAreas[2].DefensiveAreaDirection = <<0.75, 8.5, 1.25 >>+ gvMapOffset
|
|
DefensiveSphereAreas[3].DefensiveAreaPos = <<0.75, 8.5, 1.25 >>
|
|
DefensiveSphereAreas[3].DefensiveAreaRadius = 4.25
|
|
DefensiveSphereAreas[3].DefensiveAreaDirection = <<-8.75, 4.0, 1.25>>+ gvMapOffset
|
|
|
|
MAX_NUMBER_DEFENSIVE_AREA = 4
|
|
BREAK
|
|
|
|
CASE BugAiCantDriveTank
|
|
TestPeds[0].PedsCoords = << 0.9833, -15.0394, 1.1959>> + gvMapOffset
|
|
TestPeds[0].PedHeading = -0.0000
|
|
TestPeds[0].Pedrelgrp = 1
|
|
TestPeds[0].PedModel = S_M_Y_COP_01
|
|
TestPeds[0].PedsWeapon = WEAPONTYPE_UNARMED
|
|
TestPeds[0].pedsstringweapon = "WEAPONTYPE_UNARMED"
|
|
TestPeds[0].PedDefCoord = << -4.4804, -10.3374, 2.0797>> + gvMapOffset
|
|
TestPeds[0].PedDefArea = 5.0000
|
|
TestPeds[0].PedActiveDefArea = TRUE
|
|
|
|
// TestPeds[1].PedsCoords = << 20.9833, -15.0394, 1.1959>>
|
|
// TestPeds[1].PedHeading = -0.0000
|
|
// TestPeds[1].Pedrelgrp = 2
|
|
// TestPeds[1].PedModel = S_M_Y_COP_01
|
|
// TestPeds[1].PedsWeapon = WEAPONTYPE_UNARMED
|
|
// TestPeds[1].pedsstringweapon = "WEAPONTYPE_UNARMED"
|
|
// TestPeds[1].PedDefCoord = << -4.4804, -10.3374, 2.0797>>
|
|
// TestPeds[1].PedDefArea = 5.0000
|
|
// TestPeds[1].PedActiveDefArea = TRUE
|
|
|
|
TestVehicles [5].vehicleCoords = << -5.0020, -9.9980, 1.9393>> + gvMapOffset
|
|
TestVehicles [5].vehicleHeading = 90.0
|
|
TestVehicles [5].vehiclemodel = FIRETRUK
|
|
|
|
TestCams[0].cam_pos = <<-27.408384,8.174817,9.370035>>+ gvMapOffset
|
|
TestCams[0].cam_rot = <<-19.276978,0.000002,-93.249466>>
|
|
TestCams[FixedCamera].bActivateCam = TRUE
|
|
|
|
BREAK
|
|
|
|
CASE SquadStaysDefensiveBehindVehicle
|
|
TestPeds[0].PedsCoords = << 0.9833, -15.0394, 1.1959>> + gvMapOffset
|
|
TestPeds[0].PedHeading = -0.0000
|
|
TestPeds[0].Pedrelgrp = 1
|
|
TestPeds[0].PedModel = S_M_Y_COP_01
|
|
TestPeds[0].PedsWeapon = WEAPONTYPE_UNARMED
|
|
TestPeds[0].pedsstringweapon = "WEAPONTYPE_UNARMED"
|
|
TestPeds[0].PedDefCoord = << -4.4804, -10.3374, 2.0797>> + gvMapOffset
|
|
TestPeds[0].PedDefArea = 5.0000
|
|
TestPeds[0].PedActiveDefArea = TRUE
|
|
|
|
|
|
TestPeds[1].PedsCoords = << -7.9167, -15.6773, 1.1959>> + gvMapOffset
|
|
TestPeds[1].PedHeading = -0.0000
|
|
TestPeds[1].Pedrelgrp = 1
|
|
TestPeds[1].PedModel = S_M_Y_COP_01
|
|
TestPeds[1].PedsWeapon = WEAPONTYPE_PISTOL
|
|
TestPeds[1].pedsstringweapon = "WEAPONTYPE_PISTOL"
|
|
TestPeds[1].PedDefCoord = << 3.2500, -3.2500, 1.2500>> + gvMapOffset
|
|
TestPeds[1].PedDefArea = 4.2500
|
|
TestPeds[1].PedActiveDefArea = TRUE
|
|
TestPeds[1].PedcombatMove = 1
|
|
TestPeds[1].combatcover = CA_USE_COVER
|
|
TestPeds[1].bcombatcover = TRUE
|
|
|
|
TestPeds[2].PedsCoords = << -5.5000, 22.7500, 1.1959>> + gvMapOffset
|
|
TestPeds[2].PedHeading = 180.0000
|
|
TestPeds[2].Pedrelgrp = 2
|
|
TestPeds[2].PedModel = S_M_Y_COP_01
|
|
TestPeds[2].PedsWeapon = WEAPONTYPE_PISTOL
|
|
TestPeds[2].pedsstringweapon = "WEAPONTYPE_PISTOL"
|
|
TestPeds[2].PedDefCoord = << -3.0000, 21.2500, 2.2500>> + gvMapOffset
|
|
TestPeds[2].PedDefArea = 6.2500
|
|
TestPeds[2].PedActiveDefArea = TRUE
|
|
TestPeds[2].PedcombatMove = 1
|
|
TestPeds[2].combatcover = CA_USE_COVER
|
|
TestPeds[2].bcombatcover = TRUE
|
|
|
|
TestPeds[3].PedsCoords = << -3.7500, 22.5000, 1.1959>> + gvMapOffset
|
|
TestPeds[3].PedHeading = 188.0000
|
|
TestPeds[3].Pedrelgrp = 2
|
|
TestPeds[3].PedModel = S_M_Y_COP_01
|
|
TestPeds[3].PedsWeapon = WEAPONTYPE_PISTOL
|
|
TestPeds[3].pedsstringweapon = "WEAPONTYPE_PISTOL"
|
|
TestPeds[3].PedDefCoord = << -3.0000, 21.2500, 2.2500>> + gvMapOffset
|
|
TestPeds[3].PedDefArea = 6.2500
|
|
TestPeds[3].PedActiveDefArea = TRUE
|
|
TestPeds[3].PedcombatMove = 1
|
|
TestPeds[3].combatcover = CA_USE_COVER
|
|
TestPeds[3].bcombatcover = TRUE
|
|
|
|
TestPeds[4].PedsCoords = << -2.0000, 22.5000, 1.1959>> + gvMapOffset
|
|
TestPeds[4].PedHeading = 178.0000
|
|
TestPeds[4].Pedrelgrp = 2
|
|
TestPeds[4].PedModel = S_M_Y_COP_01
|
|
TestPeds[4].PedsWeapon = WEAPONTYPE_PISTOL
|
|
TestPeds[4].pedsstringweapon = "WEAPONTYPE_PISTOL"
|
|
TestPeds[4].PedDefCoord = << -3.0000, 21.2500, 2.2500>> + gvMapOffset
|
|
TestPeds[4].PedDefArea = 6.2500
|
|
TestPeds[4].PedActiveDefArea = TRUE
|
|
TestPeds[4].PedcombatMove = 1
|
|
TestPeds[4].combatcover = CA_USE_COVER
|
|
TestPeds[4].bcombatcover = TRUE
|
|
|
|
TestPeds[5].PedsCoords = << -2.2500, -15.7500, 1.1959>> + gvMapOffset
|
|
TestPeds[5].PedHeading = -0.0000
|
|
TestPeds[5].Pedrelgrp = 1
|
|
TestPeds[5].PedModel = S_M_Y_COP_01
|
|
TestPeds[5].PedsWeapon = WEAPONTYPE_PISTOL
|
|
TestPeds[5].pedsstringweapon = "WEAPONTYPE_PISTOL"
|
|
TestPeds[5].PedDefCoord = << 3.2500, -3.2500, 1.2500>> + gvMapOffset
|
|
TestPeds[5].PedDefArea = 4.2500
|
|
TestPeds[5].PedActiveDefArea = TRUE
|
|
TestPeds[5].PedcombatMove = 1
|
|
TestPeds[5].combatcover = CA_USE_COVER
|
|
TestPeds[5].bcombatcover = TRUE
|
|
|
|
TestVehicles [0 ].vehicleCoords = << -0.5532, 19.9923, 1.9328>> + gvMapOffset
|
|
TestVehicles [0 ].vehicleHeading = 90.1937
|
|
TestVehicles [0 ].vehiclemodel = FBI
|
|
|
|
TestVehicles [1 ].vehicleCoords = << -5.7134, 20.2718, 1.9398>> + gvMapOffset
|
|
TestVehicles [1 ].vehicleHeading = 268.5231
|
|
TestVehicles [1 ].vehiclemodel = FBI
|
|
|
|
TestVehicles [5].vehicleCoords = << -5.0020, -9.9980, 1.9393>> + gvMapOffset
|
|
TestVehicles [5].vehicleHeading = 360.0001
|
|
TestVehicles [5].vehiclemodel = FBI
|
|
|
|
TestCams[0].cam_pos = <<-27.408384,8.174817,9.370035>>+ gvMapOffset
|
|
TestCams[0].cam_rot = <<-19.276978,0.000002,-93.249466>>
|
|
TestCams[FixedCamera].bActivateCam = TRUE
|
|
|
|
BREAK
|
|
|
|
CASE SquadDefendingPos
|
|
|
|
|
|
TestPeds[1].PedsCoords = << -12.0000, 7.7500, 1.1959>> + gvMapOffset
|
|
TestPeds[1].PedHeading = 352.0000
|
|
TestPeds[1].Pedrelgrp = 1
|
|
TestPeds[1].PedModel = S_M_Y_COP_01
|
|
TestPeds[1].PedsWeapon = WEAPONTYPE_ASSAULTRIFLE
|
|
TestPeds[1].pedsstringweapon = "WEAPONTYPE_ASSAULTRIFLE"
|
|
TestPeds[1].PedDefCoord = << -7.0000, 8.2500, 1.2500>> + gvMapOffset
|
|
TestPeds[1].PedDefArea = 11.7500
|
|
TestPeds[1].PedActiveDefArea = TRUE
|
|
TestPeds[1].PedcombatMove = 1
|
|
TestPeds[1].combatcover = CA_USE_COVER
|
|
TestPeds[1].bcombatcover = TRUE
|
|
|
|
TestPeds[2].PedsCoords = << -8.7500, 7.7500, 1.1959>> + gvMapOffset
|
|
TestPeds[2].PedHeading = -0.0000
|
|
TestPeds[2].Pedrelgrp = 1
|
|
TestPeds[2].PedModel = S_M_Y_COP_01
|
|
TestPeds[2].PedsWeapon = WEAPONTYPE_ASSAULTRIFLE
|
|
TestPeds[2].pedsstringweapon = "WEAPONTYPE_ASSAULTRIFLE"
|
|
TestPeds[2].PedDefCoord = << -7.0000, 8.2500, 1.2500>> + gvMapOffset
|
|
TestPeds[2].PedDefArea = 11.7500
|
|
TestPeds[2].PedActiveDefArea = TRUE
|
|
TestPeds[2].PedcombatMove = 1
|
|
TestPeds[2].combatcover = CA_USE_COVER
|
|
TestPeds[2].bcombatcover = TRUE
|
|
|
|
TestPeds[3].PedsCoords = << -6.0000, 7.7500, 1.1959>> + gvMapOffset
|
|
TestPeds[3].PedHeading = -0.0000
|
|
TestPeds[3].Pedrelgrp = 1
|
|
TestPeds[3].PedModel = S_M_Y_COP_01
|
|
TestPeds[3].PedsWeapon = WEAPONTYPE_ASSAULTRIFLE
|
|
TestPeds[3].pedsstringweapon = "WEAPONTYPE_ASSAULTRIFLE"
|
|
TestPeds[3].PedDefCoord = << -7.0000, 8.2500, 1.2500>> + gvMapOffset
|
|
TestPeds[3].PedDefArea = 11.7500
|
|
TestPeds[3].PedActiveDefArea = TRUE
|
|
TestPeds[3].PedcombatMove = 1
|
|
TestPeds[3].combatcover = CA_USE_COVER
|
|
TestPeds[3].bcombatcover = TRUE
|
|
|
|
TestPeds[4].PedsCoords = << -2.5000, 7.7500, 1.1959>> + gvMapOffset
|
|
TestPeds[4].PedHeading = -0.0000
|
|
TestPeds[4].Pedrelgrp = 1
|
|
TestPeds[4].PedModel = S_M_Y_COP_01
|
|
TestPeds[4].PedsWeapon = WEAPONTYPE_ASSAULTRIFLE
|
|
TestPeds[4].pedsstringweapon = "WEAPONTYPE_ASSAULTRIFLE"
|
|
TestPeds[4].PedDefCoord = << -7.0000, 8.2500, 1.2500>> + gvMapOffset
|
|
TestPeds[4].PedDefArea = 11.7500
|
|
TestPeds[4].PedActiveDefArea = TRUE
|
|
TestPeds[4].PedcombatMove = 1
|
|
TestPeds[4].combatcover = CA_USE_COVER
|
|
TestPeds[4].bcombatcover = TRUE
|
|
|
|
TestPeds[5].PedsCoords = << -2.7500, 31.0000, 1.1959>> + gvMapOffset
|
|
TestPeds[5].PedHeading = 176.0000
|
|
TestPeds[5].Pedrelgrp = 2
|
|
TestPeds[5].PedModel = S_M_Y_COP_01
|
|
TestPeds[5].PedsWeapon = WEAPONTYPE_ASSAULTRIFLE
|
|
TestPeds[5].pedsstringweapon = "WEAPONTYPE_ASSAULTRIFLE"
|
|
|
|
TestPeds[6].PedsCoords = << -6.0000, 31.0000, 1.1959>> + gvMapOffset
|
|
TestPeds[6].PedHeading = 192.0000
|
|
TestPeds[6].Pedrelgrp = 2
|
|
TestPeds[6].PedModel = S_M_Y_COP_01
|
|
TestPeds[6].PedsWeapon = WEAPONTYPE_ASSAULTRIFLE
|
|
TestPeds[6].pedsstringweapon = "WEAPONTYPE_ASSAULTRIFLE"
|
|
|
|
TestVehicles [0].vehicleCoords = << -4.7522, 2.7254, 1.9343>> + gvMapOffset
|
|
TestVehicles [0 ].vehicleHeading = -92.0000
|
|
TestVehicles [0 ].vehiclemodel = FBI
|
|
|
|
TestVehicles [1].vehicleCoords = << -11.0024, 2.9754, 1.9343>> + gvMapOffset
|
|
TestVehicles [1 ].vehicleHeading = 86.0000
|
|
TestVehicles [1 ].vehiclemodel = FBI
|
|
|
|
TestVehicles [2].vehicleCoords = << -10.7526, 15.7254, 1.9343>> + gvMapOffset
|
|
TestVehicles [2 ].vehicleHeading = -92.0000
|
|
TestVehicles [2 ].vehiclemodel = FBI
|
|
|
|
TestVehicles [3].vehicleCoords = << -3.7528, 15.7254, 1.9343>> + gvMapOffset
|
|
TestVehicles [3 ].vehicleHeading = 86.0000
|
|
TestVehicles [3 ].vehiclemodel = FBI
|
|
|
|
TestVehicles [4].vehicleCoords = << -0.2531, 28.4757, 1.9343>> + gvMapOffset
|
|
TestVehicles [4 ].vehicleHeading = 68.0000
|
|
TestVehicles [4 ].vehiclemodel = FBI
|
|
|
|
TestVehicles [5].vehicleCoords = << -8.7532, 27.9757, 1.9343>> + gvMapOffset
|
|
TestVehicles [5 ].vehicleHeading = -78.0000
|
|
TestVehicles [5 ].vehiclemodel = FBI
|
|
|
|
TestVehicles [6].vehicleCoords = << -14.7534, -11.0243, 1.9343>> + gvMapOffset
|
|
TestVehicles [6 ].vehicleHeading = -104.0000
|
|
TestVehicles [6 ].vehiclemodel = FBI
|
|
|
|
TestVehicles [7].vehicleCoords = << 0.9964, -11.5243, 1.9343>> + gvMapOffset
|
|
TestVehicles [7].vehicleHeading = -76.0000
|
|
TestVehicles [7].vehiclemodel = FBI
|
|
|
|
TestCams[0].cam_pos = <<-34.791626,9.048415,15.266695>>+ gvMapOffset
|
|
TestCams[0].cam_rot = <<-26.172144,0.000001,-91.914223>>
|
|
TestCams[FixedCamera].bActivateCam = TRUE
|
|
|
|
BREAK
|
|
|
|
CASE PedDoesWeirdThingsSeekingCover
|
|
TestPeds[0].PedsCoords = << -2.4167, -1.4273, 1.1959>> + gvMapOffset
|
|
TestPeds[0].PedHeading = 359.6439
|
|
TestPeds[0].Pedrelgrp = 1
|
|
TestPeds[0].PedModel = S_M_Y_COP_01
|
|
TestPeds[0].PedsWeapon = WEAPONTYPE_PISTOL
|
|
TestPeds[0].pedsstringweapon = "WEAPONTYPE_PISTOL"
|
|
TestPeds[0].PedcombatMove = 0 //CM_STATIONARY
|
|
TestPeds[0].pedcombatrange = 2 //CR_FAR
|
|
TestPeds[0].combatcover = CA_USE_COVER
|
|
TestPeds[0].bcombatcover = FALSE //WONT USE COVER
|
|
|
|
|
|
TestPeds[2].PedsCoords = << 0.0000, 20.2500, 1.1959>> + gvMapOffset
|
|
TestPeds[2].PedHeading = 180.0000
|
|
TestPeds[2].Pedrelgrp = 2
|
|
TestPeds[2].PedModel = S_M_Y_COP_01
|
|
TestPeds[2].PedsWeapon = WEAPONTYPE_PISTOL
|
|
TestPeds[2].pedsstringweapon = "WEAPONTYPE_PISTOL"
|
|
|
|
TestVehicles [0 ].vehicleCoords = << -0.0012, 10.0009, 1.9393>> + gvMapOffset
|
|
TestVehicles [0 ].vehicleHeading = 90.0001
|
|
TestVehicles [0 ].vehiclemodel = FBI
|
|
|
|
TestCams[0].cam_pos = <<-27.408384,8.174817,9.370035>>+ gvMapOffset
|
|
TestCams[0].cam_rot = <<-19.276978,0.000002,-93.249466>>
|
|
TestCams[FixedCamera].bActivateCam = TRUE
|
|
|
|
BREAK
|
|
|
|
CASE TestPedsUsingRandomPaths
|
|
TestPeds[1].PedsCoords = << -12.2500, -7.7500, 1.1959>> + gvMapOffset
|
|
TestPeds[1].PedHeading = 352.0000
|
|
TestPeds[1].Pedrelgrp = 1
|
|
TestPeds[1].PedModel = S_M_Y_COP_01
|
|
TestPeds[1].PedsWeapon = WEAPONTYPE_ASSAULTRIFLE
|
|
TestPeds[1].PedDefCoord = << -11.0000, -4.5000, 1.5000>> + gvMapOffset
|
|
TestPeds[1].PedDefArea = -5.2500
|
|
TestPeds[1].PedActiveDefArea = TRUE
|
|
TestPeds[1].PedcombatMove = 1
|
|
TestPeds[1].combatcover = CA_USE_COVER
|
|
TestPeds[1].bcombatcover = TRUE
|
|
|
|
TestPeds[2].PedsCoords = << -8.7500, -9.0000, 1.1959>> + gvMapOffset
|
|
TestPeds[2].PedHeading = -0.0000
|
|
TestPeds[2].Pedrelgrp = 1
|
|
TestPeds[2].PedModel = S_M_Y_COP_01
|
|
TestPeds[2].PedsWeapon = WEAPONTYPE_ASSAULTRIFLE
|
|
TestPeds[2].PedDefCoord = << -6.2500, 23.7500, 1.2500>> + gvMapOffset
|
|
TestPeds[2].PedDefArea = 7.7500
|
|
TestPeds[2].PedActiveDefArea = TRUE
|
|
TestPeds[2].PedcombatMove = 1
|
|
TestPeds[2].combatcover = CA_USE_COVER
|
|
TestPeds[2].bcombatcover = TRUE
|
|
|
|
TestPeds[3].PedsCoords = << -6.0000, -9.0000, 1.1959>> + gvMapOffset
|
|
TestPeds[3].PedHeading = -0.0000
|
|
TestPeds[3].Pedrelgrp = 1
|
|
TestPeds[3].PedModel = S_M_Y_COP_01
|
|
TestPeds[3].PedsWeapon = WEAPONTYPE_ASSAULTRIFLE
|
|
TestPeds[3].PedDefCoord = << -7.0000, 8.2500, 1.2500>> + gvMapOffset
|
|
TestPeds[3].PedDefArea = 11.7500
|
|
TestPeds[3].PedActiveDefArea = TRUE
|
|
TestPeds[3].PedcombatMove = 1
|
|
TestPeds[3].combatcover = CA_USE_COVER
|
|
TestPeds[3].bcombatcover = TRUE
|
|
|
|
TestPeds[4].PedsCoords = << -2.5000, -9.7500, 1.1959>> + gvMapOffset
|
|
TestPeds[4].PedHeading = -0.0000
|
|
TestPeds[4].Pedrelgrp = 1
|
|
TestPeds[4].PedModel = S_M_Y_COP_01
|
|
TestPeds[4].PedsWeapon = WEAPONTYPE_ASSAULTRIFLE
|
|
TestPeds[4].PedDefCoord = << -7.0000, 8.2500, 1.2500>> + gvMapOffset
|
|
TestPeds[4].PedDefArea = 11.7500
|
|
TestPeds[4].PedActiveDefArea = TRUE
|
|
TestPeds[4].PedcombatMove = 1
|
|
TestPeds[4].combatcover = CA_USE_COVER
|
|
TestPeds[4].bcombatcover = TRUE
|
|
|
|
TestPeds[5].PedsCoords = << -9.0108, 10.7228, 1.1959>> + gvMapOffset
|
|
TestPeds[5].PedHeading = 176.0000
|
|
TestPeds[5].Pedrelgrp = 2
|
|
TestPeds[5].PedModel = S_M_Y_COP_01
|
|
TestPeds[5].PedsWeapon = WEAPONTYPE_ASSAULTRIFLE
|
|
|
|
TestVehicles [0].vehicleCoords = << -7.6633, 10.1550, 1.9750>> + gvMapOffset
|
|
TestVehicles [0].vehicleHeading = 182.5181
|
|
TestVehicles [0].vehiclemodel = FBI
|
|
|
|
TestVehicles [1].vehicleCoords = << -11.5364, 8.4755, 1.6070>> + gvMapOffset
|
|
TestVehicles [1].vehicleHeading = 86.5097
|
|
TestVehicles [1].vehiclemodel = FBI
|
|
|
|
TestVehicles [2].vehicleCoords = << -12.5460, 11.9288, 1.6016>> + gvMapOffset
|
|
TestVehicles [2].vehicleHeading = 172.5550
|
|
TestVehicles [2].vehiclemodel = FBI
|
|
|
|
TestVehicles [3].vehicleCoords = << -8.9682, 13.2184, 1.6011>> + gvMapOffset
|
|
TestVehicles [3].vehicleHeading = 86.2281
|
|
TestVehicles [3].vehiclemodel = FBI
|
|
|
|
TestVehicles [4].vehicleCoords = << -4.2551, 23.7287, 1.6070>> + gvMapOffset
|
|
TestVehicles [4].vehicleHeading = 92.0432
|
|
TestVehicles [4].vehiclemodel = FBI
|
|
|
|
TestVehicles [5].vehicleCoords = << -9.7513, 23.2251, 1.6070>> + gvMapOffset
|
|
TestVehicles [5].vehicleHeading = 272.0267
|
|
TestVehicles [5].vehiclemodel = FBI
|
|
|
|
TestVehicles [6].vehicleCoords = << -12.8695, -3.6767, 1.6081>> + gvMapOffset
|
|
TestVehicles [6].vehicleHeading = 250.7110
|
|
TestVehicles [6].vehiclemodel = FBI
|
|
|
|
TestVehicles [7].vehicleCoords = << -8.0016, -5.7747, 1.6020>> + gvMapOffset
|
|
TestVehicles [7].vehicleHeading = 242.0266
|
|
TestVehicles [7].vehiclemodel = FBI
|
|
|
|
TestVehicles [8].vehicleCoords = << -16.7516, 12.2253, 1.6070>> + gvMapOffset
|
|
TestVehicles [8].vehicleHeading = 252.0001
|
|
TestVehicles [8].vehiclemodel = FBI
|
|
|
|
TestVehicles [9].vehicleCoords = << -2.7516, 10.7253, 1.6020>> + gvMapOffset
|
|
TestVehicles [9].vehicleHeading = -92.0000
|
|
TestVehicles [9].vehiclemodel = FBI
|
|
|
|
TestCams[0].Cam_Pos = <<16.756636,5.160227,10.248656>>+ gvMapOffset
|
|
TestCams[0].Cam_Rot =<<-17.394821,0.000026,81.399506>>
|
|
TestCams[0].Cam_Fov = 60.0000
|
|
TestCams[0].bActivateCam = TRUE
|
|
|
|
DefensiveSphereAreas[0].DefensiveAreaPos = <<-10.25, -4.0, 2.0 >>+ gvMapOffset
|
|
DefensiveSphereAreas[0].DefensiveAreaRadius = 7.5
|
|
DefensiveSphereAreas[1].DefensiveAreaPos = <<-6.5, 25.25, 1.75 >>+ gvMapOffset
|
|
DefensiveSphereAreas[1].DefensiveAreaRadius = 7.75
|
|
mAX_NUMBER_DEFENSIVE_AREA = 2
|
|
BREAK
|
|
|
|
CASE TargetDummy
|
|
TestPeds[0].PedsCoords = << -2.4167, -1.4273, 1.1959>> + gvMapOffset
|
|
TestPeds[0].PedHeading = 359.6439
|
|
TestPeds[0].Pedrelgrp = 0
|
|
TestPeds[0].PedModel = S_M_Y_COP_01
|
|
TestPeds[0].PedsWeapon = WEAPONTYPE_PISTOL
|
|
TestPeds[0].pedsstringweapon = "WEAPONTYPE_PISTOL"
|
|
BREAK
|
|
|
|
CASE SWAT_VAN_DRIVE_BY
|
|
|
|
gbPlayerShouldBeAtCamPos = FALSE
|
|
PlayerStartPos = <<-25.11, 79.15, 6.35>>
|
|
|
|
TestPeds[0].PedsCoords = <<-24.79, 74.05, 6.35>>
|
|
TestPeds[0].PedHeading = 359.6439
|
|
TestPeds[0].Pedrelgrp = 0
|
|
TestPeds[0].PedModel = S_M_Y_SWAT_01
|
|
TestPeds[0].PedsWeapon = WEAPONTYPE_CARBINERIFLE
|
|
TestPeds[0].pedsstringweapon = "WEAPONTYPE_CARBINERIFLE"
|
|
|
|
TestPeds[1].PedsCoords = <<-24.63, 74.11, 6.35>>
|
|
TestPeds[1].PedHeading = 359.6439
|
|
TestPeds[1].Pedrelgrp = 0
|
|
TestPeds[1].PedModel = S_M_Y_SWAT_01
|
|
TestPeds[1].PedsWeapon = WEAPONTYPE_CARBINERIFLE
|
|
TestPeds[1].pedsstringweapon = "WEAPONTYPE_CARBINERIFLE"
|
|
|
|
TestPeds[2].PedsCoords = <<-27.65, 83.66, 6.35>>
|
|
TestPeds[2].PedHeading = 359.6439
|
|
TestPeds[2].Pedrelgrp = 0
|
|
TestPeds[2].PedModel = S_M_Y_SWAT_01
|
|
TestPeds[2].PedsWeapon = WEAPONTYPE_CARBINERIFLE
|
|
TestPeds[2].pedsstringweapon = "WEAPONTYPE_CARBINERIFLE"
|
|
|
|
TestPeds[3].PedsCoords = <<-32.36, 85.47, 6.35>>
|
|
TestPeds[3].PedHeading = 359.6439
|
|
TestPeds[3].Pedrelgrp = 0
|
|
TestPeds[3].PedModel = S_M_Y_SWAT_01
|
|
TestPeds[3].PedsWeapon = WEAPONTYPE_CARBINERIFLE
|
|
TestPeds[3].pedsstringweapon = "WEAPONTYPE_CARBINERIFLE"
|
|
|
|
TestVehicles[0].vehicleCoords = <<-30.10, 78.62, 6.35>>
|
|
TestVehicles[0].vehicleHeading = 182.5181
|
|
TestVehicles[0].vehiclemodel = RIOT
|
|
BREAK
|
|
|
|
CASE TASK_RAPPEL_DOWN_WALL_PlayerTest
|
|
|
|
gbPlayerShouldBeAtCamPos = FALSE
|
|
PlayerStartPos = <<-1.9, 132.77, 27.36>>
|
|
|
|
BREAK
|
|
|
|
CASE TASK_RAPPEL_DOWN_WALL_AITest
|
|
|
|
gbPlayerShouldBeAtCamPos = FALSE
|
|
PlayerStartPos = <<-1.9, 132.77, 27.36>>
|
|
|
|
TestPeds[0].PedsCoords = <<-1.9, 126.23, 27.36>>
|
|
TestPeds[0].PedHeading = 270
|
|
TestPeds[0].Pedrelgrp = 0
|
|
TestPeds[0].PedModel = S_M_Y_SWAT_01
|
|
|
|
TestCams[FixedCamera].cam_pos = <<8.91, 116.65, 30.32>>
|
|
TestCams[FixedCamera].cam_rot = <<-36.26, -0.00, 25.74>>
|
|
TestCams[FixedCamera].cam_fov = 65.0
|
|
TestCams[FixedCamera].bActivateCam = TRUE
|
|
|
|
BREAK
|
|
|
|
CASE TEST_TASK_MELEE_COMBAT_ONE
|
|
|
|
TestPeds[0].PedsCoords = <<-4.11, 72.40, 6.35>>
|
|
TestPeds[0].PedHeading = 270
|
|
TestPeds[0].Pedrelgrp = 0
|
|
TestPeds[0].PedModel = S_M_M_GAFFER_01
|
|
|
|
BREAK
|
|
|
|
CASE TEST_TASK_MELEE_COMBAT_MANY
|
|
|
|
TestPeds[0].PedsCoords = <<-4.11, 72.40, 6.35>>
|
|
TestPeds[0].PedHeading = 270
|
|
TestPeds[0].Pedrelgrp = 0
|
|
TestPeds[0].PedModel = S_M_M_GAFFER_01
|
|
|
|
TestPeds[1].PedsCoords = <<-4.11, 75.40, 6.35>>
|
|
TestPeds[1].PedHeading = 270
|
|
TestPeds[1].Pedrelgrp = 0
|
|
TestPeds[1].PedModel = S_M_M_BOUNCER_01
|
|
|
|
TestPeds[2].PedsCoords = <<-7.77, 73.23, 6.35>>
|
|
TestPeds[2].PedHeading = 270
|
|
TestPeds[2].Pedrelgrp = 0
|
|
TestPeds[2].PedModel = S_M_M_DOCKWORK_01
|
|
|
|
TestPeds[3].PedsCoords = <<-7.77, 78.23, 6.35>>
|
|
TestPeds[3].PedHeading = 270
|
|
TestPeds[3].Pedrelgrp = 0
|
|
TestPeds[3].PedModel = S_M_M_GAFFER_01
|
|
|
|
TestPeds[4].PedsCoords = <<-10.77, 73.23, 6.35>>
|
|
TestPeds[4].PedHeading = 270
|
|
TestPeds[4].Pedrelgrp = 0
|
|
TestPeds[4].PedModel = S_M_M_BOUNCER_01
|
|
|
|
TestPeds[5].PedsCoords = <<-10.77, 77.23, 6.35>>
|
|
TestPeds[5].PedHeading = 270
|
|
TestPeds[5].Pedrelgrp = 0
|
|
TestPeds[5].PedModel = S_M_M_DOCKWORK_01
|
|
|
|
BREAK
|
|
|
|
CASE TEST_TASK_DRAG_INJURED_PED
|
|
|
|
gbPlayerShouldBeAtCamPos = FALSE
|
|
PlayerStartPos = <<-3.43, 74.00, 7.36>>
|
|
|
|
TestPeds[0].PedsCoords = <<-3.26, 77.88, 7.36>>
|
|
TestPeds[0].PedHeading = 180
|
|
TestPeds[0].Pedrelgrp = 0
|
|
TestPeds[0].PedModel = S_M_Y_Cop_01
|
|
|
|
TestPeds[1].PedsCoords = <<-2.81, 93.63, 7.36>>
|
|
TestPeds[1].PedHeading = 180
|
|
TestPeds[1].Pedrelgrp = 0
|
|
TestPeds[1].PedModel = S_M_Y_Cop_01
|
|
|
|
BREAK
|
|
|
|
CASE TEST_TASK_SHOOT_AT_PLAYER
|
|
|
|
TestPeds[0].PedsCoords = <<-4.11, 72.40, 6.35>>
|
|
TestPeds[0].PedHeading = 270
|
|
TestPeds[0].Pedrelgrp = 0
|
|
TestPeds[0].PedModel = S_M_M_GAFFER_01
|
|
|
|
BREAK
|
|
|
|
CASE TEST_TASK_SHOOT_AT_VEHICLE
|
|
|
|
TestPeds[0].PedsCoords = <<-4.11, 72.40, 6.35>>
|
|
TestPeds[0].PedHeading = 270
|
|
TestPeds[0].Pedrelgrp = 0
|
|
TestPeds[0].PedModel = S_M_M_GAFFER_01
|
|
|
|
TestVehicles[0].vehicleCoords = <<-3.7,78.9,6.35>>
|
|
TestVehicles[0].vehicleHeading = 180.0
|
|
TestVehicles[0].vehiclemodel = TAILGATER
|
|
|
|
BREAK
|
|
|
|
CASE TEST_TASK_AI_STEALTH_KILL
|
|
|
|
TestPeds[0].PedsCoords = <<-4.11, 72.40, 6.35>>
|
|
TestPeds[0].PedHeading = 270
|
|
TestPeds[0].Pedrelgrp = 0
|
|
TestPeds[0].PedModel = S_M_M_GAFFER_01
|
|
|
|
TestPeds[1].PedsCoords = <<2.1, 72.8, 7.4>>
|
|
TestPeds[1].PedHeading = 270
|
|
TestPeds[1].Pedrelgrp = 0
|
|
TestPeds[1].PedModel = S_M_M_DOCKWORK_01
|
|
|
|
BREAK
|
|
|
|
CASE TEST_TASK_ANIMAL_MELEE
|
|
|
|
TestPeds[0].PedsCoords = <<-4.11, 72.40, 6.35>>
|
|
TestPeds[0].PedHeading = 270
|
|
TestPeds[0].Pedrelgrp = 0
|
|
TestPeds[0].PedModel = A_C_ROTTWEILER
|
|
|
|
BREAK
|
|
|
|
CASE TEST_TASK_ARMED_MELEE_IN_COVER
|
|
|
|
PlayerStartPos = <<6.5, 126.5, 7.4>>
|
|
|
|
TestPeds[0].PedsCoords = <<1.6, 131.4, 7.4>>
|
|
TestPeds[0].PedHeading = 90
|
|
TestPeds[0].Pedrelgrp = 0
|
|
TestPeds[0].PedModel = S_M_M_GAFFER_01
|
|
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
ENDPROC
|
|
|
|
ENUM PREFERRED_COVER_MISSION_STATE
|
|
SET_FIRST_DEFENSIVE_AREA,
|
|
WAIT_1,
|
|
SET_SECOND_DEFENSIVE_AREA,
|
|
WAIT_2,
|
|
SET_THIRD_DEFENSIVE_AREA,
|
|
WAIT_3,
|
|
SET_FOURTH_DEFENSIVE_AREA,
|
|
WAIT_4
|
|
ENDENUM
|
|
|
|
PROC SET_UP_RELATIONSHIP_GROUPS ()
|
|
INT index = 0
|
|
|
|
FOR index = 0 to MAX_NUMBER_OF_PEDS -1
|
|
ADD_RELATIONSHIP_GROUP_TO_STRUCT(TestPeds[index])
|
|
ENDFOR
|
|
ENDPROC
|
|
|
|
PREFERRED_COVER_MISSION_STATE PC_STATE
|
|
INT TIME_BETWEEN_DEFENSIVE_MOVEMENT = 15000
|
|
|
|
PROC RUN_TEST()
|
|
int index= 0, dead_attacking_peds = 0, j
|
|
|
|
VECTOR offsetvec
|
|
// VECTOR vPatrolPoint1 = <<-11.96, -9.73, -0.07>> + gvMapOffset
|
|
//VECTOR vPatrolPoint2 = <<-13.69, 14.58, -0.07>> + gvMapOffset
|
|
|
|
SWITCH int_to_enum (scenarios, gcurrentselection) // the ENUM corresponds to the values from the XML file
|
|
//setup scenario
|
|
CASE TEST_TASK_COMBAT_PED
|
|
|
|
SWITCH SCENARIO_STATE
|
|
CASE STATE_INIT
|
|
SET_UP_RELATIONSHIP_GROUPS ()
|
|
|
|
FOR Index = 0 to MAX_NUMBER_OF_PEDS -1
|
|
Block_Peds_Temp_Events(TestPeds[Index], FALSE )
|
|
ENDFOR
|
|
|
|
SCENARIO_STATE = STATE_1
|
|
BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
|
|
CASE TEST_TASK_COMBAT_HATED_TARGETS_AROUND_PED
|
|
|
|
SWITCH SCENARIO_STATE
|
|
CASE STATE_INIT
|
|
SET_UP_RELATIONSHIP_GROUPS ()
|
|
TASK_COMBAT_HATED_TARGETS_AROUND_PED(TestPeds[0].Ped, 10.0)
|
|
SCENARIO_STATE = STATE_1
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
BREAK
|
|
|
|
CASE TEST_TASK_COMBAT_HATED_TARGETS_AROUND_PED_TIMED
|
|
|
|
SWITCH SCENARIO_STATE
|
|
CASE STATE_INIT
|
|
SET_UP_RELATIONSHIP_GROUPS ()
|
|
TASK_COMBAT_HATED_TARGETS_AROUND_PED_TIMED(TestPeds[0].Ped, 10.0, COMBAT_TARGETS_AROUND_AREA_TIME)
|
|
SCENARIO_STATE = STATE_1
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
BREAK
|
|
|
|
CASE TEST_TASK_COMBAT_TIMED
|
|
|
|
SWITCH SCENARIO_STATE
|
|
CASE STATE_INIT
|
|
SET_UP_RELATIONSHIP_GROUPS ()
|
|
TASK_COMBAT_PED_TIMED(TestPeds[0].Ped, TestPeds[1].Ped, COMBAT_TARGETS_AROUND_AREA_TIME)
|
|
SCENARIO_STATE = STATE_1
|
|
ENDSWITCH
|
|
|
|
BREAK
|
|
|
|
CASE TEST_TASK_COMBAT_HATED_PED_IN_AREA
|
|
|
|
SWITCH SCENARIO_STATE
|
|
CASE STATE_INIT
|
|
SET_UP_RELATIONSHIP_GROUPS ()
|
|
TASK_COMBAT_HATED_TARGETS_IN_AREA(TestPeds[0].Ped, TestPeds[1].PedsCoords, 10.0)
|
|
SCENARIO_STATE = STATE_1
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
BREAK
|
|
|
|
CASE TEST_TASK_AIM_GUN_AT_COORD
|
|
|
|
SWITCH SCENARIO_STATE
|
|
CASE STATE_INIT
|
|
TASK_AIM_GUN_AT_COORD(TestPeds[0].Ped, <<-42.33, 246.17, 8.00>>, AIM_AT_TIME)
|
|
SCENARIO_STATE = STATE_1
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
BREAK
|
|
|
|
CASE TEST_TASK_AIM_GUN_AT_ENTITY
|
|
|
|
SWITCH SCENARIO_STATE
|
|
CASE STATE_INIT
|
|
TASK_AIM_GUN_AT_ENTITY(TestPeds[0].Ped, TestPeds[1].Ped, AIM_AT_TIME)
|
|
SCENARIO_STATE = STATE_1
|
|
BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
|
|
CASE TEST_TASK_SHOOT_AT_COORD
|
|
|
|
SWITCH SCENARIO_STATE
|
|
CASE STATE_INIT
|
|
TASK_SHOOT_AT_COORD(TestPeds[0].Ped, <<-42.33, 246.17, 8.00>>, AIM_AT_TIME, FIRING_TYPE_CONTINUOUS) // firing type should be determined from firing pattern
|
|
SCENARIO_STATE = STATE_1
|
|
BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
|
|
CASE TEST_TASK_GOTO_X_WHILE_AIMING_AT_X
|
|
|
|
SWITCH SCENARIO_STATE
|
|
CASE STATE_INIT
|
|
SWITCH INT_TO_ENUM(GOTO_POINT_AND_AIM_MODE, GOTO_X_AND_AIM_AT_X_MODE)
|
|
|
|
CASE GOTO_COORD_AND_AIM_AT_COORD
|
|
TASK_GO_TO_COORD_WHILE_AIMING_AT_COORD(TestPeds[0].Ped, GOTO_COORD, AIM_AT_COORD, DYNAMIC_MOVE_BLEND_RATIO, MOVE_AND_SHOOT, 2.0, 4.0, FALSE) // firing type should be determined from firing pattern
|
|
BREAK
|
|
|
|
CASE GOTO_COORD_AND_AIM_AT_OBJECT
|
|
TASK_GO_TO_COORD_WHILE_AIMING_AT_ENTITY(TestPeds[0].Ped, GOTO_COORD, TestObjects[0].Object, DYNAMIC_MOVE_BLEND_RATIO, MOVE_AND_SHOOT, 2.0, 4.0, FALSE) // firing type should be determined from firing pattern
|
|
BREAK
|
|
|
|
CASE GOTO_COORD_AND_AIM_AT_PED
|
|
IF NOT IS_ENTITY_DEAD(TestPeds[0].Ped) AND NOT IS_ENTITY_DEAD(TestPeds[1].Ped)
|
|
TASK_GO_TO_COORD_WHILE_AIMING_AT_ENTITY(TestPeds[0].Ped, GOTO_COORD, TestPeds[1].Ped, DYNAMIC_MOVE_BLEND_RATIO, MOVE_AND_SHOOT, 2.0, 4.0, FALSE) // firing type should be determined from firing pattern
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE GOTO_COORD_AND_AIM_AT_VEHICLE
|
|
IF NOT IS_ENTITY_DEAD(TestPeds[0].Ped) AND NOT IS_ENTITY_DEAD(TestVehicles[0].Vehicle)
|
|
IF NOT IS_ENTITY_DEAD(TestPeds[2].Ped)
|
|
SET_PED_INTO_VEHICLE(TestPeds[2].Ped, TestVehicles[0].Vehicle)
|
|
ENDIF
|
|
|
|
TASK_GO_TO_COORD_WHILE_AIMING_AT_ENTITY(TestPeds[0].Ped, GOTO_COORD, TestVehicles[0].Vehicle, DYNAMIC_MOVE_BLEND_RATIO, MOVE_AND_SHOOT, 2.0, 4.0, FALSE) // firing type should be determined from firing pattern
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE GOTO_PED_AND_AIM_AT_COORD
|
|
IF NOT IS_ENTITY_DEAD(TestPeds[0].Ped) AND NOT IS_ENTITY_DEAD(TestPeds[1].Ped)
|
|
TASK_GO_TO_ENTITY_WHILE_AIMING_AT_COORD(TestPeds[0].Ped, TestPeds[1].Ped, AIM_AT_COORD, DYNAMIC_MOVE_BLEND_RATIO, MOVE_AND_SHOOT, 2.0, 4.0, FALSE) // firing type should be determined from firing pattern
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE GOTO_PED_AND_AIM_AT_OBJECT
|
|
IF NOT IS_ENTITY_DEAD(TestPeds[0].Ped) AND NOT IS_ENTITY_DEAD(TestPeds[1].Ped)
|
|
TASK_GO_TO_ENTITY_WHILE_AIMING_AT_ENTITY(TestPeds[0].Ped, TestPeds[1].Ped, TestObjects[0].Object, DYNAMIC_MOVE_BLEND_RATIO, MOVE_AND_SHOOT, 2.0, 4.0, FALSE) // firing type should be determined from firing pattern
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE GOTO_PED_AND_AIM_AT_PED
|
|
IF NOT IS_ENTITY_DEAD(TestPeds[0].Ped) AND NOT IS_ENTITY_DEAD(TestPeds[1].Ped)
|
|
TASK_GO_TO_ENTITY_WHILE_AIMING_AT_ENTITY(TestPeds[0].Ped, TestPeds[1].Ped, TestPeds[1].Ped, DYNAMIC_MOVE_BLEND_RATIO, MOVE_AND_SHOOT, 2.0, 4.0, FALSE) // firing type should be determined from firing pattern
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE GOTO_PED_AND_AIM_AT_VEHICLE
|
|
IF NOT IS_ENTITY_DEAD(TestPeds[0].Ped) AND NOT IS_ENTITY_DEAD(TestPeds[1].Ped)
|
|
IF NOT IS_ENTITY_DEAD(TestVehicles[0].Vehicle)
|
|
TASK_GO_TO_ENTITY_WHILE_AIMING_AT_ENTITY(TestPeds[0].Ped, TestPeds[1].Ped, TestVehicles[0].Vehicle, DYNAMIC_MOVE_BLEND_RATIO, MOVE_AND_SHOOT, 2.0, 4.0, FALSE) // firing type should be determined from firing pattern
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE GOTO_PED_AIMING
|
|
IF NOT IS_ENTITY_DEAD(TestPeds[0].Ped) AND NOT IS_ENTITY_DEAD(TestPeds[1].Ped)
|
|
TASK_GOTO_ENTITY_AIMING(TestPeds[0].Ped, TestPeds[1].Ped, 2.0, 5.0) // firing type should be determined from firing pattern
|
|
ENDIF
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
SCENARIO_STATE = STATE_1
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
BREAK
|
|
|
|
CASE TEST_TASK_PUT_PED_DIRECTLY_INTO_COVER
|
|
CASE TEST_TASK_SEEK_COVER_FROM_POS
|
|
CASE TEST_TASK_SEEK_COVER_FROM_PED
|
|
CASE TEST_TASK_SEEK_COVER_TO_COVER_COORD
|
|
CASE TEST_TASK_SEEK_COVER_TO_COVER_POINT
|
|
|
|
SWITCH SCENARIO_STATE
|
|
|
|
CASE STATE_INIT
|
|
|
|
IF NOT gbPlayerShouldBeAtCamPos
|
|
SET_ENTITY_COORDS(scplayer, PlayerStartPos, FALSE, true )
|
|
ENDIF
|
|
|
|
SET_UP_RELATIONSHIP_GROUPS()
|
|
|
|
SETTIMERA(0)
|
|
|
|
IF SCRIPTED_COVER_INDEX <> NULL
|
|
REMOVE_COVER_POINT(SCRIPTED_COVER_INDEX)
|
|
ENDIF
|
|
|
|
IF bUseLowCoverPoint = TRUE
|
|
SCRIPTED_COVER_INDEX = ADD_COVER_POINT(<<-64.11, 92.81, 6.35>>, 90.0, COVUSE_WALLTOLEFT, COVHEIGHT_LOW, COVARC_180)
|
|
ELSE
|
|
SCRIPTED_COVER_INDEX = ADD_COVER_POINT(<<-64.11, 103.75, 6.35>>, 90.0, COVUSE_WALLTORIGHT, COVHEIGHT_TOOHIGH, COVARC_180)
|
|
ENDIF
|
|
|
|
SCENARIO_STATE = STATE_1
|
|
BREAK
|
|
CASE STATE_1
|
|
IF bTestStanding
|
|
// Aim forwards
|
|
VECTOR vAimAtPos
|
|
vAimAtPos = TestPeds[0].PedsCoords + 5.0 *GET_ENTITY_FORWARD_VECTOR(TestPeds[0].Ped) + <<0.0, 0.0, 0.5>>
|
|
TASK_AIM_GUN_AT_COORD(TestPeds[0].Ped, vAimAtPos, -1)
|
|
ELSE
|
|
TASK_AIM_GUN_AT_ENTITY(TestPeds[0].Ped, TestPeds[1].Ped, -1)
|
|
ENDIF
|
|
SCENARIO_STATE = STATE_2
|
|
BREAK
|
|
CASE STATE_2
|
|
IF TIMERA() > 3000
|
|
|
|
IF NOT IS_ENTITY_DEAD(TestPeds[0].Ped) AND NOT IS_ENTITY_DEAD(TestPeds[1].Ped)
|
|
|
|
SEQUENCE_INDEX SEQ
|
|
OPEN_SEQUENCE_TASK (SEQ)
|
|
SWITCH int_to_enum (scenarios, gcurrentselection)
|
|
CASE TEST_TASK_PUT_PED_DIRECTLY_INTO_COVER
|
|
IF SCRIPTED_COVER_INDEX <> NULL
|
|
TASK_PUT_PED_DIRECTLY_INTO_COVER(NULL, <<-64.05, 98.23, 6.35>>, 5000, FALSE, NORMAL_BLEND_DURATION, FALSE, FALSE, SCRIPTED_COVER_INDEX)
|
|
ENDIF
|
|
BREAK
|
|
CASE TEST_TASK_SEEK_COVER_FROM_POS
|
|
TASK_SEEK_COVER_FROM_POS(NULL, TestPeds[1].PedsCoords, 5000)
|
|
BREAK
|
|
CASE TEST_TASK_SEEK_COVER_FROM_PED
|
|
TASK_SEEK_COVER_FROM_PED(NULL, TestPeds[1].Ped, 5000)
|
|
BREAK
|
|
CASE TEST_TASK_SEEK_COVER_TO_COVER_POINT
|
|
IF SCRIPTED_COVER_INDEX <> NULL
|
|
TASK_SEEK_COVER_TO_COVER_POINT(NULL, SCRIPTED_COVER_INDEX, <<-69.58, 104.78, 6.35>>, 5000)
|
|
ENDIF
|
|
BREAK
|
|
CASE TEST_TASK_SEEK_COVER_TO_COVER_COORD
|
|
TASK_SEEK_COVER_TO_COORDS(NULL, <<-64.15, 94.94, 6.35>>, TestPeds[1].PedsCoords, 10000)
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
TASK_COMBAT_PED_TIMED(NULL, TestPeds[1].Ped, 30000)
|
|
CLOSE_SEQUENCE_TASK(SEQ)
|
|
|
|
// Wait till coverpoints are streamed in
|
|
SETTIMERA(0)
|
|
TASK_PERFORM_SEQUENCE (TestPeds[0].Ped, SEQ)
|
|
CLEAR_SEQUENCE_TASK(seq)
|
|
|
|
ENDIF
|
|
|
|
SCENARIO_STATE = STATE_3
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
BREAK
|
|
|
|
CASE TEST_TASK_GUARD_ASSIGNED_DEFENSIVE_AREA
|
|
CASE TEST_TASK_GUARD_ANGLED_DEFENSIVE_AREA
|
|
CASE TEST_TASK_GUARD_SPHERE_DEFENSIVE_AREA
|
|
CASE TEST_TASK_GUARD_CURRENT_POS
|
|
CASE TEST_TASK_STAND_GUARD
|
|
|
|
SWITCH SCENARIO_STATE
|
|
CASE STATE_INIT
|
|
|
|
SET_UP_RELATIONSHIP_GROUPS()
|
|
|
|
SWITCH int_to_enum (scenarios, gcurrentselection)
|
|
CASE TEST_TASK_GUARD_ASSIGNED_DEFENSIVE_AREA
|
|
TASK_GUARD_ASSIGNED_DEFENSIVE_AREA(TestPeds[0].Ped, <<13.77, 182.27, 6.35>>, 0.0, 5.0, 30000)
|
|
BREAK
|
|
CASE TEST_TASK_GUARD_ANGLED_DEFENSIVE_AREA
|
|
TASK_GUARD_ANGLED_DEFENSIVE_AREA(TestPeds[0].Ped, <<13.77, 182.27, 6.35>>, 0.0, 10.0, 30000, <<7.825742,181.893753,6.350637>>, <<21.033215,181.771240,16.350637>>, 11.0)
|
|
BREAK
|
|
CASE TEST_TASK_GUARD_SPHERE_DEFENSIVE_AREA
|
|
TASK_GUARD_SPHERE_DEFENSIVE_AREA(TestPeds[0].Ped, <<13.77, 182.27, 6.35>>, 0.0, 10.0, 30000, <<13.77, 182.27, 6.35>>, 5.0)
|
|
BREAK
|
|
CASE TEST_TASK_GUARD_CURRENT_POS
|
|
TASK_GUARD_CURRENT_POSITION(TestPeds[0].Ped, 10.0, 5.0, TRUE)
|
|
BREAK
|
|
CASE TEST_TASK_STAND_GUARD
|
|
TASK_STAND_GUARD(TestPeds[0].Ped, <<13.77, 182.27, 6.35>>, 0.0, "DEFEND")
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
SCENARIO_STATE = STATE_1
|
|
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
BREAK
|
|
|
|
CASE SET_PED_PREFERRED_COVER
|
|
|
|
SWITCH PREFERRED_COVER_STATE
|
|
CASE PREFERRED_COVER_INIT
|
|
|
|
SET_UP_RELATIONSHIP_GROUPS()
|
|
|
|
FOR Index = 0 to MAX_NUMBER_OF_PEDS -1
|
|
Block_Peds_Temp_Events(TestPeds[0], FALSE )
|
|
ENDFOR
|
|
|
|
// Warp player to scenario location
|
|
IF NOT gbPlayerShouldBeAtCamPos
|
|
SET_ENTITY_COORDS(scplayer, PlayerStartPos, FALSE, true )
|
|
ENDIF
|
|
|
|
SET_PED_PREFERRED_COVER_SET(TestPeds[0].Ped, PreferredCoverItemSet)
|
|
|
|
PC_STATE = SET_FIRST_DEFENSIVE_AREA
|
|
|
|
PREFERRED_COVER_STATE = PREFERRED_COVER_RUN
|
|
BREAK
|
|
CASE PREFERRED_COVER_RUN
|
|
SWITCH PC_STATE
|
|
CASE SET_FIRST_DEFENSIVE_AREA
|
|
SET_PED_SPHERE_DEFENSIVE_AREA(TestPeds[0].Ped, COV_POS2, 8.0)
|
|
SETTIMERA(0)
|
|
PC_STATE = WAIT_1
|
|
BREAK
|
|
CASE WAIT_1
|
|
IF (TIMERA() > TIME_BETWEEN_DEFENSIVE_MOVEMENT)
|
|
PC_STATE = SET_SECOND_DEFENSIVE_AREA
|
|
ENDIF
|
|
BREAK
|
|
CASE SET_SECOND_DEFENSIVE_AREA
|
|
//SET_PED_SPHERE_DEFENSIVE_AREA(TestPeds[0].Ped, COV_POS2, 1.0)
|
|
SETTIMERA(0)
|
|
PC_STATE = WAIT_2
|
|
BREAK
|
|
CASE WAIT_2
|
|
IF (TIMERA() > TIME_BETWEEN_DEFENSIVE_MOVEMENT)
|
|
PC_STATE = SET_THIRD_DEFENSIVE_AREA
|
|
ENDIF
|
|
BREAK
|
|
CASE SET_THIRD_DEFENSIVE_AREA
|
|
//SET_PED_SPHERE_DEFENSIVE_AREA(TestPeds[0].Ped, COV_POS3, 1.0)
|
|
SETTIMERA(0)
|
|
PC_STATE = WAIT_3
|
|
BREAK
|
|
CASE WAIT_3
|
|
IF (TIMERA() > TIME_BETWEEN_DEFENSIVE_MOVEMENT)
|
|
PC_STATE = SET_FOURTH_DEFENSIVE_AREA
|
|
ENDIF
|
|
BREAK
|
|
CASE SET_FOURTH_DEFENSIVE_AREA
|
|
SET_PED_SPHERE_DEFENSIVE_AREA(TestPeds[0].Ped, COV_POS4, 1.0)
|
|
SETTIMERA(0)
|
|
PC_STATE = WAIT_4
|
|
BREAK
|
|
CASE WAIT_4
|
|
IF (TIMERA() > TIME_BETWEEN_DEFENSIVE_MOVEMENT)
|
|
PC_STATE = SET_FIRST_DEFENSIVE_AREA
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
ENDSWITCH
|
|
//Set_Test_State_To_Default()
|
|
BREAK
|
|
|
|
CASE TEST_TASK_PATROL
|
|
|
|
SWITCH SCENARIO_STATE
|
|
CASE STATE_INIT
|
|
|
|
FOR Index = 0 to MAX_NUMBER_OF_PEDS -1
|
|
Block_Peds_Temp_Events(TestPeds[index], FALSE )
|
|
ENDFOR
|
|
|
|
SETUP_PATROL_ROUTES ()
|
|
|
|
TEST_SEQ = FOLLOW_PATROL_ROUTE ("miss_loop", PAS_ALERT)
|
|
PedPerformsSequence (TestPeds[0].ped, TEST_SEQ)
|
|
|
|
TEST_SEQ = FOLLOW_PATROL_ROUTE ("miss_branched_loop", PAS_ALERT)
|
|
PedPerformsSequence (TestPeds[1].ped, TEST_SEQ)
|
|
|
|
TEST_SEQ = FOLLOW_PATROL_ROUTE ("miss_branched", PAS_ALERT)
|
|
PedPerformsSequence (TestPeds[2].ped, TEST_SEQ)
|
|
|
|
TEST_SEQ = FOLLOW_PATROL_ROUTE ("miss_dead_end", PAS_ALERT)
|
|
PedPerformsSequence (TestPeds[3].ped, TEST_SEQ)
|
|
|
|
SCENARIO_STATE = STATE_1
|
|
BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
|
|
CASE TEST_IS_PED_RESPONDING_TO_EVENT
|
|
SWITCH SCENARIO_STATE
|
|
CASE STATE_INIT
|
|
SET_UP_RELATIONSHIP_GROUPS ()
|
|
|
|
Block_Peds_Temp_Events(TestPeds[0], FALSE )
|
|
Block_Peds_Temp_Events(TestPeds[1], TRUE )
|
|
|
|
SCENARIO_STATE = STATE_1
|
|
BREAK
|
|
CASE STATE_1
|
|
IF NOT IS_ENTITY_DEAD(TestPeds[0].Ped) AND IS_PED_RESPONDING_TO_EVENT(TestPeds[0].Ped, EVENT_ACQUAINTANCE_PED_HATE)
|
|
TASK_AIM_GUN_AT_COORD(TestPeds[0].Ped, <<-42.33, 246.17, 8.00>>, AIM_AT_TIME)
|
|
Block_Peds_Temp_Events(TestPeds[0], TRUE)
|
|
SCENARIO_STATE = STATE_2
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
|
|
CASE TEST_HAS_PED_RECEIVED_EVENT
|
|
|
|
SWITCH SCENARIO_STATE
|
|
CASE STATE_INIT
|
|
SET_UP_RELATIONSHIP_GROUPS()
|
|
|
|
// Warp player to scenario location
|
|
IF NOT gbPlayerShouldBeAtCamPos
|
|
SET_ENTITY_COORDS(scplayer, PlayerStartPos, FALSE, true )
|
|
ENDIF
|
|
|
|
Block_Peds_Temp_Events(TestPeds[0], TRUE)
|
|
|
|
SCENARIO_STATE = STATE_1
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
IF NOT IS_ENTITY_DEAD(TestPeds[0].Ped)
|
|
IF GET_SCRIPT_TASK_STATUS(TestPeds[0].Ped, SCRIPT_TASK_HANDS_UP) = FINISHED_TASK
|
|
IF HAS_PED_RECEIVED_EVENT(TestPeds[0].Ped, EVENT_GUN_AIMED_AT)
|
|
TASK_HANDS_UP(TestPeds[0].Ped, 5000)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
CASE SCENARIO_PED_MOVE_TO_COVER_PED_STAYS_STILL
|
|
|
|
SWITCH SCENARIO_STATE
|
|
CASE STATE_INIT
|
|
|
|
SET_UP_RELATIONSHIP_GROUPS()
|
|
|
|
FOR Index = 0 to MAX_NUMBER_OF_PEDS -1
|
|
Block_Peds_Temp_Events(TestPeds[index], FALSE )
|
|
ENDFOR
|
|
|
|
SCENARIO_STATE = STATE_1
|
|
BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
|
|
CASE BugPedsNotShootingThroughFreindlyPed
|
|
FOR Index = 0 to MAX_NUMBER_OF_PEDS -1
|
|
Block_Peds_Temp_Events(TestPeds[index], FALSE )
|
|
IF NOT IS_PED_INJURED(TestPeds[index].ped)
|
|
SET_PED_CAN_RAGDOLL (TestPeds[index].ped, FALSE )
|
|
SET_ENTITY_INVINCIBLE(TestPeds[index].ped, TRUE)
|
|
ENDIF
|
|
ENDFOR
|
|
BREAK
|
|
|
|
|
|
CASE SCENARIO_BOTH_PEDS_MOVE_TO_COVER
|
|
CASE ARifle_guy_in_cover_breaking
|
|
CASE SCENARIO_TWO_PEDS_NO_COVER
|
|
|
|
FOR Index = 0 to MAX_NUMBER_OF_PEDS -1
|
|
Block_Peds_Temp_Events(TestPeds[index], FALSE )
|
|
ENDFOR
|
|
|
|
Set_Test_State_To_Default()
|
|
BREAK
|
|
|
|
|
|
//scenario
|
|
CASE ScenarioTaskStayInCover
|
|
SWITCH Scenario_TaskStayInCover
|
|
CASE Scenario_TaskStayInCover_init
|
|
FOR Index = 0 to MAX_NUMBER_OF_PEDS -1
|
|
IF NOT IS_PED_INJURED(TestPeds[index].ped)
|
|
SET_PED_CAN_RAGDOLL (TestPeds[index].ped, FALSE )
|
|
SET_ENTITY_PROOFS(TestPeds[index].ped, TRUE, TRUE, TRUE, TRUE, TRUE)
|
|
TASK_STAY_IN_COVER(TestPeds[index].ped)
|
|
ENDIF
|
|
Block_Peds_Temp_Events(TestPeds[index], TRUE )
|
|
|
|
ENDFOR
|
|
|
|
FOR Index = 0 to MAX_NUMBER_OF_VEHICLES -1
|
|
IF IS_VEHICLE_DRIVEABLE (TestVehicles[index].vehicle)
|
|
SET_ENTITY_PROOFS(TestVehicles[index].vehicle, true, FALSE, FALSE, FALSE, FALSE)
|
|
ENDIF
|
|
ENDFOR
|
|
|
|
|
|
Scenario_TaskStayInCover = Scenario_TaskStayInCover_SwapDefAreas
|
|
|
|
|
|
BREAK
|
|
|
|
CASE Scenario_TaskStayInCover_SwapDefAreas
|
|
|
|
IF IS_BUTTON_JUST_PRESSED (PAD1, TRIANGLE)
|
|
iCurrentDefensiveArea += 1
|
|
|
|
IF iCurrentDefensiveArea > MAX_NUMBER_DEFENSIVE_AREA -1
|
|
iCurrentDefensiveArea = 0
|
|
ENDIF
|
|
|
|
for index = 0 to MAX_NUMBER_OF_PEDS -1
|
|
IF NOT IS_PED_INJURED(TestPeds[index].ped)
|
|
IF TestPeds[index].Pedrelgrp = 1
|
|
TestPeds[index].PedDefCoord = DefensiveSphereAreas[iCurrentDefensiveArea].DefensiveAreaPos
|
|
TestPeds[index].PedDefArea = DefensiveSphereAreas[iCurrentDefensiveArea].DefensiveAreaRadius
|
|
TestPeds[index].PedDefDirection = DefensiveSphereAreas[iCurrentDefensiveArea].DefensiveAreaDirection
|
|
PRINTSTRING("PedDefDirection: <<")
|
|
PRINTFLOAT(TestPeds[index].PedDefDirection.x)
|
|
PRINTSTRING(", ")
|
|
PRINTFLOAT(TestPeds[index].PedDefDirection.y)
|
|
PRINTSTRING(", ")
|
|
PRINTFLOAT(TestPeds[index].PedDefDirection.z)
|
|
PRINTSTRING(">>")
|
|
PRINTNL()
|
|
TestPeds[index].PedActiveDefArea = TRUE
|
|
SET_PED_DEFENSIVE_AREAS(TestPeds[index] )
|
|
ENDIF
|
|
ENDIF
|
|
ENDFOR
|
|
ENDIF
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
BREAK
|
|
|
|
CASE SquadOfPedsMovingBetweenVehicles
|
|
CASE TestPedsUsingRandomPaths
|
|
SWITCH Scenario_SquadOfPedsMovingBetweenVehicles
|
|
CASE Scenario_SquadOfPedsMovingBetweenVehicles_init
|
|
FOR Index = 0 to MAX_NUMBER_OF_PEDS -1
|
|
IF NOT IS_PED_INJURED(TestPeds[index].ped)
|
|
SET_PED_CAN_RAGDOLL (TestPeds[index].ped, FALSE )
|
|
SET_ENTITY_PROOFS(TestPeds[index].ped, TRUE, TRUE, TRUE, TRUE, TRUE)
|
|
ENDIF
|
|
Block_Peds_Temp_Events(TestPeds[index], FALSE )
|
|
|
|
ENDFOR
|
|
|
|
FOR Index = 0 to MAX_NUMBER_OF_VEHICLES -1
|
|
IF IS_VEHICLE_DRIVEABLE (TestVehicles[index].vehicle)
|
|
SET_ENTITY_PROOFS(TestVehicles[index].vehicle, true, FALSE, FALSE, FALSE, FALSE)
|
|
ENDIF
|
|
ENDFOR
|
|
|
|
|
|
Scenario_SquadOfPedsMovingBetweenVehicles = Scenario_SquadOfPedsMovingBetweenVehicles_SwapDefAreas
|
|
|
|
|
|
BREAK
|
|
|
|
CASE Scenario_SquadOfPedsMovingBetweenVehicles_SwapDefAreas
|
|
|
|
IF IS_BUTTON_JUST_PRESSED (PAD1, TRIANGLE)
|
|
iCurrentDefensiveArea += 1
|
|
|
|
IF iCurrentDefensiveArea > MAX_NUMBER_DEFENSIVE_AREA -1
|
|
iCurrentDefensiveArea = 0
|
|
ENDIF
|
|
|
|
for index = 0 to MAX_NUMBER_OF_PEDS -1
|
|
IF NOT IS_PED_INJURED(TestPeds[index].ped)
|
|
IF TestPeds[index].Pedrelgrp = 1
|
|
TestPeds[index].PedDefCoord = DefensiveSphereAreas[iCurrentDefensiveArea].DefensiveAreaPos
|
|
TestPeds[index].PedDefArea = DefensiveSphereAreas[iCurrentDefensiveArea].DefensiveAreaRadius
|
|
TestPeds[index].PedActiveDefArea = TRUE
|
|
SET_PED_DEFENSIVE_AREAS(TestPeds[index] )
|
|
ENDIF
|
|
ENDIF
|
|
ENDFOR
|
|
ENDIF
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
BREAK
|
|
|
|
CASE BugAiCantDriveTank
|
|
IF NOT IS_PED_INJURED (TestPeds[0].ped)
|
|
IF IS_VEHICLE_DRIVEABLE (TestVehicles [5].Vehicle)
|
|
Block_Peds_Temp_Events (TestPeds[0], TRUE)
|
|
SET_PED_INTO_VEHICLE (TestPeds[0].ped, TestVehicles [5].Vehicle )
|
|
DRIVE_TO_POINT_SEQUENCE (TestPeds[0].ped, TestVehicles [5].Vehicle)
|
|
ENDIF
|
|
ENDIF
|
|
Set_Test_State_To_Default()
|
|
BREAK
|
|
|
|
|
|
|
|
CASE SquadStaysDefensiveBehindVehicle
|
|
SWITCH Scenario_SquadStaysDefensiveBehindVehicle
|
|
CASE Scenario_SquadStaysDefensiveBehindVehicle_Init
|
|
|
|
FOR INDEX = 0 to MAX_NUMBER_OF_PEDS-1
|
|
// SET_PED_SENSE_RANGE (TestPeds[index].ped, 100)
|
|
ENDFOR
|
|
|
|
IF NOT IS_PED_INJURED (TestPeds[0].ped)
|
|
IF IS_VEHICLE_DRIVEABLE (TestVehicles [5].Vehicle)
|
|
Block_Peds_Temp_Events (TestPeds[0], TRUE)
|
|
SET_PED_INTO_VEHICLE (TestPeds[0].ped, TestVehicles [5].Vehicle )
|
|
DRIVE_TO_POINT_SEQUENCE (TestPeds[0].ped, TestVehicles [5].Vehicle)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
FOR Index = 1 to MAX_NUMBER_OF_PEDS -1
|
|
SetPedsInvincible (TestPeds[index].ped, TRUE)
|
|
Block_Peds_Temp_Events(TestPeds[index], FALSE )
|
|
ENDFOR
|
|
Scenario_SquadStaysDefensiveBehindVehicle = Scenario_SquadStaysDefensiveBehindVehicle_Run
|
|
break
|
|
CASE Scenario_SquadStaysDefensiveBehindVehicle_Run
|
|
IF IS_VEHICLE_DRIVEABLE (TestVehicles [5].Vehicle)
|
|
// offsetvec = GET_ENTITY_COORDS( TestVehicles [5].Vehicle)
|
|
offsetvec = GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS (TestVehicles [5].Vehicle, <<0.0, -3.0, 0.0>>)
|
|
|
|
for index = 1 to MAX_NUMBER_OF_PEDS -1
|
|
IF TestPeds[index].Pedrelgrp = 1
|
|
TestPeds[index].PedDefCoord = offsetvec
|
|
TestPeds[index].PedDefArea = 6.0
|
|
TestPeds[index].PedActiveDefArea = TRUE
|
|
SET_PED_DEFENSIVE_AREAS(TestPeds[index] )
|
|
ENDIF
|
|
ENDFOR
|
|
ENDIF
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
BREAK
|
|
|
|
CASE SquadDefendingPos
|
|
|
|
SWITCH Scenario_SquadDefendingPos
|
|
CASE Scenario_SquadDefendingPos_init
|
|
|
|
FOR Index = 0 to MAX_NUMBER_OF_PEDS -1
|
|
Block_Peds_Temp_Events(TestPeds[index], FALSE )
|
|
ENDFOR
|
|
|
|
TestPeds[7].PedsCoords = << -4.7500, -14.5000, 1.1959>> + gvMapOffset
|
|
TestPeds[7].PedHeading = -0.0000
|
|
TestPeds[7].Pedrelgrp = 3
|
|
TestPeds[7].PedModel = S_M_Y_COP_01
|
|
TestPeds[7].PedsWeapon = WEAPONTYPE_PISTOL
|
|
|
|
TestPeds[8].PedsCoords = << -7.5000, -14.5000, 1.1959>> + gvMapOffset
|
|
TestPeds[8].PedHeading = -0.0000
|
|
TestPeds[8].Pedrelgrp = 3
|
|
TestPeds[8].PedModel = S_M_Y_COP_01
|
|
TestPeds[8].PedsWeapon = WEAPONTYPE_PISTOL
|
|
|
|
Scenario_SquadDefendingPos = Scenario_SquadDefendingPos_grp2
|
|
BREAK
|
|
|
|
CASE Scenario_SquadDefendingPos_grp2
|
|
dead_attacking_peds = 0
|
|
for index = 0 to MAX_NUMBER_OF_PEDS-1
|
|
IF TestPeds[index].Pedrelgrp = 2 //check rel grp 2
|
|
|
|
IF IS_PED_INJURED (TestPeds[index].ped)
|
|
dead_attacking_peds += 1
|
|
ENDIF
|
|
|
|
IF dead_attacking_peds = 2 //all rel 2 peds are dead create a new group
|
|
for j = 0 to MAX_NUMBER_OF_PEDS-1
|
|
IF TestPeds[j].Pedrelgrp = 2
|
|
CLEAN_UP_PED_ENTITIES (TestPeds[j].ped)
|
|
ENDIF
|
|
IF TestPeds[j].Pedrelgrp = 3
|
|
CREATE_PED_ENTITY(TestPeds[j])
|
|
GIVEBLIPSTOPEDSGRPS (TestPeds[j])
|
|
ALTER_COMBAT_STATS (TestPeds[j] )
|
|
SWAP_PED_WEAPONS (TestPeds[j])
|
|
Scenario_SquadDefendingPos = Scenario_SquadDefendingPos_grp3
|
|
ENDIF
|
|
|
|
ENDFOR
|
|
dead_attacking_peds = 0
|
|
index = MAX_NUMBER_OF_PEDS-1
|
|
ENDIF
|
|
ENDIF
|
|
ENDFOR
|
|
BREAK
|
|
|
|
CASE Scenario_SquadDefendingPos_grp3
|
|
for index = 0 to MAX_NUMBER_OF_PEDS-1
|
|
IF TestPeds[index].Pedrelgrp = 3 //check rel grp 2
|
|
IF IS_PED_INJURED (TestPeds[index].ped)
|
|
dead_attacking_peds += 1
|
|
ENDIF
|
|
|
|
IF dead_attacking_peds = 2 //all rel 2 peds are dead create a new group
|
|
for j = 0 to MAX_NUMBER_OF_PEDS-1
|
|
IF TestPeds[j].Pedrelgrp = 3
|
|
CLEAN_UP_PED_ENTITIES (TestPeds[j].ped)
|
|
ENDIF
|
|
IF TestPeds[j].Pedrelgrp = 2
|
|
CREATE_PED_ENTITY(TestPeds[j])
|
|
GIVEBLIPSTOPEDSGRPS (TestPeds[j])
|
|
ALTER_COMBAT_STATS (TestPeds[j] )
|
|
SWAP_PED_WEAPONS (TestPeds[j])
|
|
|
|
Scenario_SquadDefendingPos = Scenario_SquadDefendingPos_grp2
|
|
ENDIF
|
|
ENDFOR
|
|
dead_attacking_peds = 0
|
|
index = MAX_NUMBER_OF_PEDS-1
|
|
ENDIF
|
|
ENDIF
|
|
ENDFOR
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
BREAK
|
|
|
|
CASE PedDoesWeirdThingsSeekingCover
|
|
SWITCH Scenario_PedDoesWeirdThingsSeekingCover_Status
|
|
CASE Scenario_PedDoesWeirdThingsSeekingCover_init
|
|
|
|
SetPedsInvincible (TestPeds[2].ped, TRUE)
|
|
IF NOT IS_PED_INJURED (TestPeds[2].ped)
|
|
TASK_SEEK_COVER_FROM_POS ( TestPeds[2].ped, <<0.0, 10.0, 1.5 >>+ gvMapOffset, -1 )
|
|
ENDIF
|
|
Scenario_PedDoesWeirdThingsSeekingCover_Status = Scenario_PedDoesWeirdThingsSeekingCover_run
|
|
BREAK
|
|
|
|
CASE Scenario_PedDoesWeirdThingsSeekingCover_run
|
|
|
|
|
|
BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
|
|
CASE ScenarioCombatRanges
|
|
SWITCH Scenario_CombatRanges_Status
|
|
CASE Scenario_CombatRanges_init
|
|
|
|
FOR Index = 0 to MAX_NUMBER_OF_PEDS -1
|
|
SetPedsInvincible (TestPeds[index].ped, TRUE)
|
|
Block_Peds_Temp_Events(TestPeds[index], FALSE )
|
|
ENDFOR
|
|
BREAK
|
|
|
|
CASE Scenario_CombatRanges_run
|
|
IF IS_BUTTON_JUST_PRESSED (PAD1, TRIANGLE)
|
|
iCurrentDefensiveArea += 1
|
|
|
|
IF iCurrentDefensiveArea > 2
|
|
iCurrentDefensiveArea = 0
|
|
ENDIF
|
|
|
|
for index = 0 to MAX_NUMBER_OF_PEDS -1
|
|
IF NOT IS_PED_INJURED(TestPeds[index].ped)
|
|
IF TestPeds[index].Pedrelgrp = 1
|
|
SET_PED_COMBAT_RANGE (TestPeds[index].ped, INT_TO_ENUM(COMBAT_RANGE, TestPeds[index].pedcombatrange ))
|
|
ENDIF
|
|
ENDIF
|
|
ENDFOR
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
|
|
ENDSWITCH
|
|
BREAK
|
|
|
|
|
|
CASE TargetDummy
|
|
FOR Index = 0 to MAX_NUMBER_OF_PEDS -1
|
|
Block_Peds_Temp_Events(TestPeds[index], FALSE )
|
|
IF NOT IS_PED_INJURED(TestPeds[index].ped)
|
|
SET_PED_CAN_RAGDOLL(TestPeds[index].ped, FALSE)
|
|
SET_ENTITY_INVINCIBLE(TestPeds[index].ped, TRUE)
|
|
SET_DECISION_MAKER(TestPeds[index].ped, DECISION_MAKER_EMPTY)
|
|
ENDIF
|
|
ENDFOR
|
|
BREAK
|
|
|
|
CASE SWAT_VAN_DRIVE_BY
|
|
SWITCH SCENARIO_STATE
|
|
CASE STATE_INIT
|
|
|
|
SET_UP_RELATIONSHIP_GROUPS()
|
|
|
|
IF NOT IS_ENTITY_DEAD(TestVehicles[0].Vehicle)
|
|
IF NOT IS_ENTITY_DEAD(TestPeds[0].Ped)
|
|
SET_PED_INTO_VEHICLE(TestPeds[0].Ped, TestVehicles[0].Vehicle, VS_EXTRA_LEFT_1)
|
|
ENDIF
|
|
|
|
IF NOT IS_ENTITY_DEAD(TestPeds[1].Ped)
|
|
SET_PED_INTO_VEHICLE(TestPeds[1].Ped, TestVehicles[0].Vehicle, VS_EXTRA_LEFT_2)
|
|
ENDIF
|
|
|
|
IF NOT IS_ENTITY_DEAD(TestPeds[2].Ped)
|
|
SET_PED_INTO_VEHICLE(TestPeds[2].Ped, TestVehicles[0].Vehicle, VS_EXTRA_RIGHT_1)
|
|
ENDIF
|
|
|
|
IF NOT IS_ENTITY_DEAD(TestPeds[3].Ped)
|
|
SET_PED_INTO_VEHICLE(TestPeds[3].Ped, TestVehicles[0].Vehicle, VS_EXTRA_RIGHT_2)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// Warp player to scenario location
|
|
IF NOT gbPlayerShouldBeAtCamPos
|
|
SET_ENTITY_COORDS(scplayer, PlayerStartPos, FALSE, true )
|
|
ENDIF
|
|
|
|
SCENARIO_STATE = STATE_1
|
|
|
|
BREAK
|
|
|
|
CASE STATE_1
|
|
IF NOT IS_ENTITY_DEAD(TestVehicles[0].Vehicle) AND DO_DRIVEBY
|
|
IF NOT IS_PED_IN_VEHICLE(scplayer, TestVehicles[0].Vehicle) AND NOT IS_PED_GETTING_INTO_A_VEHICLE(scplayer)
|
|
FOR Index = 0 to MAX_NUMBER_OF_PEDS -1
|
|
IF NOT IS_ENTITY_DEAD(TestPeds[index].Ped)
|
|
SET_PED_AMMO(TestPeds[index].Ped, WEAPONTYPE_CARBINERIFLE, -1)
|
|
Block_Peds_Temp_Events(TestPeds[index], TRUE )
|
|
TASK_DRIVE_BY(TestPeds[index].Ped, scplayer, NULL, <<0.0,0.0,0.0>>, 50.0, 100)
|
|
ENDIF
|
|
ENDFOR
|
|
SCENARIO_STATE = STATE_2
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE STATE_2
|
|
|
|
IF NOT IS_ENTITY_DEAD(TestVehicles[0].Vehicle)
|
|
IF IS_PED_IN_VEHICLE(scplayer, TestVehicles[0].Vehicle)
|
|
FOR Index = 0 to MAX_NUMBER_OF_PEDS -1
|
|
IF NOT IS_ENTITY_DEAD(TestPeds[index].Ped)
|
|
CLEAR_PED_TASKS(TestPeds[index].Ped)
|
|
ENDIF
|
|
ENDFOR
|
|
SCENARIO_STATE = STATE_1
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
|
|
ENDSWITCH
|
|
BREAK
|
|
|
|
CASE TASK_RAPPEL_DOWN_WALL_PlayerTest
|
|
CASE TASK_RAPPEL_DOWN_WALL_AITest
|
|
SWITCH SCENARIO_STATE
|
|
|
|
CASE STATE_INIT
|
|
|
|
IF NOT IS_ENTITY_DEAD(scplayer)
|
|
// Warp player to scenario location
|
|
IF NOT gbPlayerShouldBeAtCamPos
|
|
SET_ENTITY_COORDS(scplayer, PlayerStartPos, FALSE, true )
|
|
SET_ENTITY_HEADING(scplayer, 270)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
SCENARIO_STATE = STATE_1
|
|
BREAK
|
|
|
|
CASE STATE_1
|
|
|
|
PED_INDEX pedIndex
|
|
SWITCH int_to_enum (scenarios, gcurrentselection)
|
|
CASE TASK_RAPPEL_DOWN_WALL_PlayerTest
|
|
pedIndex = scplayer
|
|
BREAK
|
|
CASE TASK_RAPPEL_DOWN_WALL_AITest
|
|
pedIndex = TestPeds[0].Ped
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
IF NOT IS_ENTITY_DEAD(pedIndex)
|
|
ROPE_INDEX serverLocalRope
|
|
VECTOR vRopeCoords
|
|
VECTOR vCurrentCoords
|
|
vCurrentCoords = GET_ENTITY_COORDS(pedIndex)
|
|
vRopeCoords = vCurrentCoords
|
|
vRopeCoords.x = 0.0
|
|
serverLocalRope = ADD_ROPE(vRopeCoords, <<0.0, 90.0, 0.0>>, 30.0, PHYSICS_ROPE_DEFAULT_32, -1, 0.5, 0.5, TRUE)
|
|
TASK_RAPPEL_DOWN_WALL(pedIndex, vCurrentCoords, vRopeCoords, vCurrentCoords.z - 18.0, serverLocalRope)
|
|
ENDIF
|
|
|
|
SCENARIO_STATE = STATE_2
|
|
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
BREAK
|
|
|
|
CASE TEST_TASK_MELEE_COMBAT_ONE
|
|
SWITCH SCENARIO_STATE
|
|
CASE STATE_INIT
|
|
IF NOT IS_ENTITY_DEAD( TestPeds[0].Ped ) AND NOT IS_ENTITY_DEAD( PLAYER_PED_ID() )
|
|
SET_PED_RELATIONSHIP_GROUP_HASH( TestPeds[0].Ped, RELGROUPHASH_AMBIENT_GANG_LOST )
|
|
TASK_COMBAT_PED( TestPeds[0].Ped, PLAYER_PED_ID() )
|
|
ENDIF
|
|
SCENARIO_STATE = STATE_1
|
|
BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
|
|
CASE TEST_TASK_MELEE_COMBAT_MANY
|
|
SWITCH SCENARIO_STATE
|
|
CASE STATE_INIT
|
|
IF NOT IS_ENTITY_DEAD( TestPeds[0].Ped ) AND NOT IS_ENTITY_DEAD( TestPeds[1].Ped ) AND NOT IS_ENTITY_DEAD( TestPeds[2].Ped ) AND NOT IS_ENTITY_DEAD( TestPeds[4].Ped ) AND NOT IS_ENTITY_DEAD( TestPeds[5].Ped ) AND NOT IS_ENTITY_DEAD( PLAYER_PED_ID() )
|
|
SET_PED_RELATIONSHIP_GROUP_HASH( TestPeds[0].Ped, RELGROUPHASH_AMBIENT_GANG_LOST )
|
|
SET_PED_RELATIONSHIP_GROUP_HASH( TestPeds[1].Ped, RELGROUPHASH_AMBIENT_GANG_LOST )
|
|
SET_PED_RELATIONSHIP_GROUP_HASH( TestPeds[2].Ped, RELGROUPHASH_AMBIENT_GANG_LOST )
|
|
SET_PED_RELATIONSHIP_GROUP_HASH( TestPeds[3].Ped, RELGROUPHASH_AMBIENT_GANG_LOST )
|
|
SET_PED_RELATIONSHIP_GROUP_HASH( TestPeds[4].Ped, RELGROUPHASH_AMBIENT_GANG_LOST )
|
|
SET_PED_RELATIONSHIP_GROUP_HASH( TestPeds[5].Ped, RELGROUPHASH_AMBIENT_GANG_LOST )
|
|
TASK_COMBAT_PED( TestPeds[0].Ped, PLAYER_PED_ID() )
|
|
TASK_COMBAT_PED( TestPeds[1].Ped, PLAYER_PED_ID() )
|
|
TASK_COMBAT_PED( TestPeds[2].Ped, PLAYER_PED_ID() )
|
|
TASK_COMBAT_PED( TestPeds[3].Ped, PLAYER_PED_ID() )
|
|
TASK_COMBAT_PED( TestPeds[4].Ped, PLAYER_PED_ID() )
|
|
TASK_COMBAT_PED( TestPeds[5].Ped, PLAYER_PED_ID() )
|
|
ENDIF
|
|
SCENARIO_STATE = STATE_1
|
|
BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
|
|
CASE TEST_TASK_DRAG_INJURED_PED
|
|
SWITCH SCENARIO_STATE
|
|
|
|
CASE STATE_INIT
|
|
APPLY_DAMAGE_TO_PED(TestPeds[0].ped, 1000, FALSE)
|
|
SCENARIO_STATE = STATE_1
|
|
BREAK
|
|
|
|
CASE STATE_1
|
|
IF IS_ENTITY_DEAD(TestPeds[0].ped)
|
|
TASK_DRAG_PED_TO_COORD(TestPeds[1].ped, TestPeds[0].ped, <<-2.92, 84.14, 7.36>>)
|
|
SCENARIO_STATE = STATE_2
|
|
ENDIF
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
BREAK
|
|
|
|
CASE TEST_TASK_SHOOT_AT_PLAYER
|
|
SWITCH SCENARIO_STATE
|
|
CASE STATE_INIT
|
|
|
|
IF NOT IS_ENTITY_DEAD(PLAYER_PED_ID()) AND NOT IS_ENTITY_DEAD(TestPeds[0].Ped)
|
|
GIVE_WEAPON_TO_PED( TestPeds[0].Ped, WEAPONTYPE_PISTOL, 1000, TRUE )
|
|
//TASK_SHOOT_AT_ENTITY( TestPeds[0].Ped, PLAYER_PED_ID(), -1, FIRING_TYPE_1_BURST )
|
|
TASK_COMBAT_PED( TestPeds[0].Ped, PLAYER_PED_ID() )
|
|
ENDIF
|
|
|
|
SCENARIO_STATE = STATE_1
|
|
BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
|
|
CASE TEST_TASK_SHOOT_AT_VEHICLE
|
|
|
|
SWITCH SCENARIO_STATE
|
|
CASE STATE_INIT
|
|
IF NOT IS_ENTITY_DEAD( TestPeds[0].Ped ) AND NOT IS_ENTITY_DEAD( PLAYER_PED_ID() )
|
|
SET_PED_RELATIONSHIP_GROUP_HASH( TestPeds[0].Ped, RELGROUPHASH_AMBIENT_GANG_LOST )
|
|
SET_ENTITY_ONLY_DAMAGED_BY_PLAYER( PLAYER_PED_ID(), TRUE )
|
|
GIVE_WEAPON_TO_PED( TestPeds[0].Ped, WEAPONTYPE_MINIGUN, 2000, TRUE, TRUE )
|
|
WAIT(100)
|
|
TASK_SHOOT_AT_COORD( TestPeds[0].Ped, <<-3.6,76.4,7.0>>, -1, FIRING_TYPE_CONTINUOUS )
|
|
//TASK_COMBAT_PED( TestPeds[0].Ped, PLAYER_PED_ID() )
|
|
ENDIF
|
|
SCENARIO_STATE = STATE_1
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
BREAK
|
|
|
|
CASE TEST_TASK_AI_STEALTH_KILL
|
|
|
|
SWITCH SCENARIO_STATE
|
|
CASE STATE_INIT
|
|
IF NOT IS_ENTITY_DEAD( TestPeds[0].Ped ) AND NOT IS_ENTITY_DEAD( TestPeds[1].Ped )
|
|
GIVE_WEAPON_TO_PED( TestPeds[0].Ped, WEAPONTYPE_UNARMED, 1, TRUE, TRUE )
|
|
GIVE_WEAPON_TO_PED( TestPeds[1].Ped, WEAPONTYPE_UNARMED, 1, TRUE, TRUE )
|
|
SET_PED_RELATIONSHIP_GROUP_HASH( TestPeds[0].Ped, RELGROUPHASH_AMBIENT_GANG_LOST )
|
|
TASK_STEALTH_KILL( TestPeds[0].Ped, TestPeds[1].Ped, GET_HASH_KEY( "AR_stealth_kill_a" ) )
|
|
ENDIF
|
|
SCENARIO_STATE = STATE_1
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
BREAK
|
|
|
|
CASE TEST_TASK_ANIMAL_MELEE
|
|
SWITCH SCENARIO_STATE
|
|
CASE STATE_INIT
|
|
IF NOT IS_ENTITY_DEAD( TestPeds[0].Ped ) AND NOT IS_ENTITY_DEAD( PLAYER_PED_ID() )
|
|
SET_PED_RELATIONSHIP_GROUP_HASH( TestPeds[0].Ped, RELGROUPHASH_AMBIENT_GANG_LOST )
|
|
GIVE_WEAPON_TO_PED( TestPeds[0].Ped, WEAPONTYPE_ANIMAL, 1, TRUE, TRUE )
|
|
TASK_COMBAT_PED( TestPeds[0].Ped, PLAYER_PED_ID() )
|
|
ENDIF
|
|
SCENARIO_STATE = STATE_1
|
|
BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
|
|
CASE TEST_TASK_ARMED_MELEE_IN_COVER
|
|
SWITCH SCENARIO_STATE
|
|
CASE STATE_INIT
|
|
IF NOT IS_ENTITY_DEAD( TestPeds[0].Ped ) AND NOT IS_ENTITY_DEAD( PLAYER_PED_ID() )
|
|
SET_PED_RELATIONSHIP_GROUP_HASH( TestPeds[0].Ped, RELGROUPHASH_SECURITY_GUARD )
|
|
GIVE_WEAPON_TO_PED( PLAYER_PED_ID(), WEAPONTYPE_PISTOL, 2000, TRUE, TRUE )
|
|
ENDIF
|
|
SCENARIO_STATE = STATE_1
|
|
BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
|
|
ENDPROC
|
|
|
|
|
|
//Purpose: Runs the main scenarios
|
|
PROC Run_Test_Scenario ()
|
|
int index = 0
|
|
|
|
SWITCH TestScenarioAStatus
|
|
//setps up all the data for the sceanrio, this is only called once or if selected in widget
|
|
CASE InitialiseScenarioData
|
|
PlayerStartPos = GET_PLAYER_START_POS() //sets the players start coords at the default
|
|
|
|
Bscenario_running = FALSE
|
|
INITIALISE_PED_DATA (Testpeds)
|
|
INITIALISE_VEHICLE_DATA (TestVehicles)
|
|
INITIALISE_CAM_DATA(TestCams )
|
|
INITIALISE_OBJECT_DATA(TestObjects)
|
|
SETUP_TEST_DATA ()
|
|
|
|
HELP_TEXT_STATE = HTF_SCENARIO_SELECTED_NOT_STARTED
|
|
TestScenarioAStatus = CreateScenarioEntities
|
|
|
|
Temp_Update_Player_With_Scenario(TestCams, scplayer, FALSE, PlayerStartPos) //sets the
|
|
|
|
BREAK
|
|
|
|
// Creates all the scenario data
|
|
CASE CreateScenarioEntities
|
|
Bscenario_running = FALSE
|
|
|
|
Set_Gang_Relationships (TRUE)
|
|
|
|
Temp_Update_Player_With_Scenario(TestCams, scplayer, true, PlayerStartPos)
|
|
|
|
//peds
|
|
FOR index = 0 to MAX_NUMBER_OF_PEDS - 1
|
|
CREATE_PED_ENTITY(Testpeds[index])
|
|
GiveBlipsToPedsGrps (Testpeds[index])
|
|
ALTER_COMBAT_STATS (Testpeds[index] )
|
|
SWAP_PED_WEAPONS (Testpeds[index])
|
|
|
|
Block_Peds_Temp_Events (Testpeds[index], TRUE)
|
|
SET_PED_DEFENSIVE_AREAS(Testpeds[index] )
|
|
ENDFOR
|
|
|
|
//TestVehicles
|
|
FOR Index = 0 to MAX_NUMBER_OF_VEHICLES -1
|
|
CREATE_VEHICLE_ENTITY (TestVehicles[index] )
|
|
ENDFOR
|
|
|
|
//TestCams
|
|
for index = 0 to MAX_NUMBER_OF_CAMERAS -1
|
|
CREATE_CAM_ENTITY (TestCams[index])
|
|
ENDFOR
|
|
|
|
//TestObjects
|
|
FOR Index = 0 to MAX_NUMBER_OF_OBJECTS -1
|
|
CREATE_OBJECT_ENTITY (TestObjects[index])
|
|
ENDFOR
|
|
|
|
TestScenarioAStatus = SetScenarioEntities
|
|
BREAK
|
|
|
|
CASE SetScenarioEntities
|
|
|
|
Temp_Update_Player_With_Scenario(TestCams, scplayer, true, PlayerStartPos)
|
|
|
|
Start_And_Reset_Test ()
|
|
|
|
IF gBeginCombatScenario
|
|
TestScenarioAStatus = RunScenario
|
|
gBeginCombatScenario = FALSE
|
|
gRun_debuggig = FALSE
|
|
Bscenario_running = TRUE
|
|
INITALISE_TEST_STATE()
|
|
TEMP_ACTIVATE_CAMS (TestCams[FixedCamera].cam )
|
|
|
|
IF DOES_CAM_EXIST (TestCams[FixedCamera].cam )
|
|
HELP_TEXT_STATE = HTF_SCENARIO_RUNNING_FIXED_CAM
|
|
ELSE
|
|
HELP_TEXT_STATE = HTF_STARTED_RUNNING_NO_CAMS
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
//Runs the actual selected scenario
|
|
|
|
CASE RunScenario
|
|
|
|
Temp_Run_Scenario_Tracking_Cam (TestPeds, MAX_NUMBER_OF_PEDS, TestCams[TrackingCamera].cam)
|
|
|
|
Temp_Update_Player_With_Scenario(TestCams, scplayer, true, PlayerStartPos)
|
|
|
|
Start_And_Reset_Test ()
|
|
|
|
Check_For_Scenario_Reset ()
|
|
|
|
IF DOES_CAM_EXIST (TestCams[TrackingCamera].cam)
|
|
if IS_CAM_RENDERING (TestCams[TrackingCamera].cam)
|
|
HELP_TEXT_STATE = HTF_SCENARIO_RUNNING_TRACKING_CAM
|
|
ELSE
|
|
HELP_TEXT_STATE = HTF_SCENARIO_RUNNING_FIXED_CAM
|
|
ENDIF
|
|
ENDIF
|
|
|
|
RUN_TEST () //run the main tests
|
|
|
|
BREAK
|
|
|
|
|
|
CASE CleanupScenario
|
|
|
|
HELP_TEXT_STATE = HTF_SCENARIO_SELECTED_NOT_STARTED
|
|
|
|
Cleanup_Scenario_Entities ()
|
|
|
|
PREFERRED_COVER_STATE = PREFERRED_COVER_INIT
|
|
|
|
IF gResetToDefault
|
|
Temp_cleanup_scenario_cams () //here we are changing scenarios so we need to reset cams
|
|
TestScenarioAStatus = InitialiseScenarioData
|
|
gResetToDefault = FALSE
|
|
ENDIF
|
|
|
|
IF gResetCombatScenario
|
|
Temp_Update_Player_With_Scenario(TestCams, scplayer, FALSE, PlayerStartPos)
|
|
gcurrentselection = gSelection
|
|
IF DOES_CAM_EXIST (TestCams[FixedCamera].cam)
|
|
ACTIVATE_CAM (TestCams[FixedCamera].cam)
|
|
ELSE
|
|
Temp_cleanup_scenario_cams ()
|
|
ENDIF
|
|
TestScenarioAStatus = CreateScenarioEntities
|
|
gResetCombatScenario = FALSE
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
ENDPROC
|
|
|
|
SCRIPT
|
|
|
|
gvMapOffset = GET_PLAYER_START_POS ()
|
|
|
|
SET_DEBUG_ACTIVE (TRUE)
|
|
|
|
SETUP_MISSION_XML_MENU (XMLMenu, KEY_Q )
|
|
|
|
SETUP_AREA_FOR_MISSION (<<0.0, 0.0, 0.0>>)
|
|
|
|
//Gets a reference to the player
|
|
Get_The_Player ()
|
|
|
|
CREATE_TEST_WIDGET ()
|
|
|
|
//set the player ready for the script
|
|
SET_PLAYER_COLISION(scplayer, true)
|
|
|
|
WHILE TRUE
|
|
|
|
// controls the help text hides if xml menu is active
|
|
TEXT_CONTROLLER ()
|
|
|
|
// Can set all scenario peds invincible from the widget
|
|
Set_Scenario_Peds_Invincible (TestPeds, MAX_NUMBER_OF_PEDS, gsetpedsinvincible )
|
|
|
|
//User can create a debug cam for setting sceanrios
|
|
Temp_Create_Debug_Cam (TestCams[FixedCamera])
|
|
|
|
//Runs the selected option from the XML menu
|
|
Run_Selection_From_XML_input ()
|
|
|
|
//Checks that a valid selection has been input and runs the scenario
|
|
IF (gcurrentselection <> InvalidSelection)
|
|
|
|
Draw_Debug_Info ( )
|
|
|
|
//Sets the test scenario into debug mode
|
|
Set_To_Debug ()
|
|
|
|
if (gRun_debuggig)
|
|
Temp_Debug_Scenario (TestPeds, TestVehicles, Route, TestCams[FixedCamera].cam, S_M_Y_COP_01) //Allows the entities in the scneario to be adjusted
|
|
Print_Scenario_Data (TestPeds, TestVehicles, Route, TestCams)
|
|
ENDIF
|
|
|
|
Run_Test_Scenario ()
|
|
|
|
SWITCH_BETWEEN_FIXED_AND_TRACKING (TestCams[FixedCamera].cam)
|
|
|
|
PRINT_ACTIVE_TEST (Bscenario_running,gRun_debuggig)
|
|
ENDIF
|
|
|
|
Terminate_test_script ()
|
|
|
|
WAIT (0)
|
|
|
|
|
|
ENDWHILE
|
|
|
|
ENDSCRIPT
|
|
|
|
|
|
#ENDIF // IS_DEBUG_BUILD
|
|
|