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

212 lines
7.3 KiB
Python
Executable File

USING "rage_builtins.sch"
USING "globals.sch"
#IF IS_FINAL_BUILD
script
endscript
#endif
#IF IS_DEBUG_BUILD
USING "locates_public.sch"
USING "bitset_widget.sch"
CONST_INT STATE_IS_PLAYER_AT_LOCATION_ANY_MEANS 0
CONST_INT STATE_IS_PLAYER_AT_LOCATION_ON_FOOT 1
CONST_INT STATE_IS_PLAYER_AT_LOCATION_IN_ANY_VEHICLE 2
CONST_INT STATE_IS_PLAYER_AT_LOCATION_IN_VEHICLE 3
CONST_INT STATE_IS_PLAYER_AT_LOCATION_WITH_BUDDIES_ANY_MEANS 4
CONST_INT STATE_IS_PLAYER_AT_LOCATION_WITH_BUDDY_ANY_MEANS 5
CONST_INT STATE_IS_PLAYER_AT_LOCATION_WITH_BUDDIES_ON_FOOT 6
CONST_INT STATE_IS_PLAYER_AT_LOCATION_WITH_BUDDY_ON_FOOT 7
CONST_INT STATE_IS_PLAYER_AT_LOCATION_WITH_BUDDIES_IN_ANY_VEHICLE 8
CONST_INT STATE_IS_PLAYER_AT_LOCATION_WITH_BUDDY_IN_ANY_VEHICLE 9
CONST_INT STATE_IS_PLAYER_AT_LOCATION_WITH_BUDDIES_IN_VEHICLE 10
CONST_INT STATE_IS_PLAYER_AT_LOCATION_WITH_BUDDY_IN_VEHICLE 11
BOOL bShowCorona = TRUE
BOOL bLoseWantedLevel = TRUE
BOOL bShowBuddyRoute = TRUE
INT iState
INT iGotoState
INT iNumberOfBuddies = 3
INT iMinSeats = 0
VECTOR EndLocation = << -1285.1292, -949.9236, 10.0464 >>
VECTOR LocateSize = <<5.0, 5.0, 5.0>>
VEHICLE_INDEX VehicleID
PED_INDEX BuddyID[3]
LOCATES_HEADER_DATA locatesData
PROC RESET_LOCATES()
INT i
CLEAR_PRINTS()
CLEAR_MISSION_LOCATION_TEXT_AND_BLIPS(locatesData)
IF IS_PLAYER_PLAYING(PLAYER_ID())
CLEAR_PED_TASKS_IMMEDIATELY(PLAYER_PED_ID())
SET_ENTITY_COORDS(PLAYER_PED_ID(), << -1233.4377, -1139.0764, 6.7659 >>)
SET_ENTITY_HEADING(PLAYER_PED_ID(), 320.0)
ENDIF
IF DOES_ENTITY_EXIST(VehicleID)
DELETE_VEHICLE(VehicleID)
ENDIF
REQUEST_MODEL(EMPEROR)
WHILE NOT HAS_MODEL_LOADED(EMPEROR)
WAIT(0)
ENDWHILE
VehicleID = CREATE_VEHICLE(EMPEROR, << -1230.3617, -1137.0831, 6.6794 >>, 20.0)
REPEAT 3 i
IF DOES_ENTITY_EXIST(BuddyID[i])
DELETE_PED(BuddyID[i])
ENDIF
BuddyID[i] = NULL
ENDREPEAT
REQUEST_MODEL(G_M_Y_StrPunk_01)
WHILE NOT HAS_MODEL_LOADED(G_M_Y_StrPunk_01)
WAIT(0)
ENDWHILE
IF (iNumberOfBuddies >=1)
BuddyID[0] = CREATE_PED(PEDTYPE_CIVMALE, G_M_Y_StrPunk_01, << -1244.8727, -1098.7516, 7.1824 >>, 270.0)
ENDIF
IF (iNumberOfBuddies >=2)
BuddyID[1] = CREATE_PED(PEDTYPE_CIVMALE, G_M_Y_StrPunk_01, << -1262.7656, -1057.6354, 7.3697 >>, 270.0)
ENDIF
IF (iNumberOfBuddies >=3)
BuddyID[2] = CREATE_PED(PEDTYPE_CIVMALE, G_M_Y_StrPunk_01, << -1276.5845, -1010.7098, 8.4720 >>, 270.0)
ENDIF
ENDPROC
PROC GOTO_STATE(INT inState)
iState = inState
RESET_LOCATES()
ENDPROC
PROC MISSION_CLEANUP()
CLEAR_MISSION_LOCATION_TEXT_AND_BLIPS(locatesData)
CLEANUP_BITSET_WIDGET()
TERMINATE_THIS_THREAD()
ENDPROC
SCRIPT
IF HAS_FORCE_CLEANUP_OCCURRED()
MISSION_CLEANUP()
ENDIF
SET_MISSION_FLAG(TRUE)
REQUEST_ADDITIONAL_TEXT("LOCTEST", MISSION_TEXT_SLOT)
WHILE NOT HAS_ADDITIONAL_TEXT_LOADED(MISSION_TEXT_SLOT)
WAIT(0)
ENDWHILE
START_WIDGET_GROUP("Locates Tester")
ADD_WIDGET_INT_SLIDER("iGotoState", iGotoState, -1, 99, 1)
ADD_WIDGET_INT_SLIDER("iNumberOfBuddies", iNumberOfBuddies, 0, 3, 1)
ADD_WIDGET_BOOL("bShowCorona", bShowCorona)
ADD_WIDGET_BOOL("bLoseWantedLevel", bLoseWantedLevel)
ADD_WIDGET_INT_SLIDER("iMinSeats", iMinSeats, 0, 3, 1)
ADD_WIDGET_BOOL("bShowBuddyRoute", bShowBuddyRoute)
STOP_WIDGET_GROUP()
CREATE_BITSET_WIDGET(locatesData.iLocatesBitSet)
WHILE (TRUE)
WAIT(0)
IF NOT (iGotoState = -1)
GOTO_STATE(iGotoState)
iGotoState = -1
ENDIF
UPDATE_BITSET_WIDGET(locatesData.iLocatesBitSet)
SWITCH iState
CASE STATE_IS_PLAYER_AT_LOCATION_ANY_MEANS
IF IS_PLAYER_AT_LOCATION_ANY_MEANS(locatesData, EndLocation, LocateSize, bShowCorona, "GO_LOC_ANY", bLoseWantedLevel)
GOTO_STATE(iState)
ENDIF
BREAK
CASE STATE_IS_PLAYER_AT_LOCATION_ON_FOOT
IF IS_PLAYER_AT_LOCATION_ON_FOOT(locatesData, EndLocation, LocateSize, bShowCorona, "GO_LOC_FOOT", bLoseWantedLevel)
GOTO_STATE(iState)
ENDIF
BREAK
CASE STATE_IS_PLAYER_AT_LOCATION_IN_ANY_VEHICLE
IF IS_PLAYER_AT_LOCATION_IN_ANY_VEHICLE(locatesData, EndLocation, LocateSize, bShowCorona, "DRIVE_LOC", "GET_IN_ANY_CAR", bLoseWantedLevel, iMinSeats)
GOTO_STATE(iState)
ENDIF
BREAK
CASE STATE_IS_PLAYER_AT_LOCATION_IN_VEHICLE
IF IS_PLAYER_AT_LOCATION_IN_VEHICLE(locatesData, EndLocation, LocateSize, bShowCorona, VehicleID, "DRIVE_LOC", "GET_IN_THIS_CAR", "BACKIN_THIS_CAR", bLoseWantedLevel, iMinSeats)
GOTO_STATE(iState)
ENDIF
BREAK
CASE STATE_IS_PLAYER_AT_LOCATION_WITH_BUDDIES_ANY_MEANS
IF IS_PLAYER_AT_LOCATION_WITH_BUDDIES_ANY_MEANS(locatesData, EndLocation, LocateSize, bShowCorona, BuddyID[0], BuddyID[1], BuddyID[2], "GO_LOC", "DONT_LEAVE_BUD1", "DONT_LEAVE_BUD2", "DONT_LEAVE_BUD3", "PICKUP_ALL_BUDS", bShowBuddyRoute, bLoseWantedLevel)
GOTO_STATE(iState)
ENDIF
BREAK
CASE STATE_IS_PLAYER_AT_LOCATION_WITH_BUDDY_ANY_MEANS
IF IS_PLAYER_AT_LOCATION_WITH_BUDDY_ANY_MEANS(locatesData, EndLocation, LocateSize, bShowCorona, BuddyID[0], "GO_LOC", "DONT_LEAVE_BUD1", bShowBuddyRoute, bLoseWantedLevel)
GOTO_STATE(iState)
ENDIF
BREAK
CASE STATE_IS_PLAYER_AT_LOCATION_WITH_BUDDIES_ON_FOOT
IF IS_PLAYER_AT_LOCATION_WITH_BUDDIES_ON_FOOT(locatesData, EndLocation, LocateSize, bShowCorona, BuddyID[0], BuddyID[1], BuddyID[2], "GO_LOC", "DONT_LEAVE_BUD1", "DONT_LEAVE_BUD2", "DONT_LEAVE_BUD3", "PICKUP_ALL_BUDS", bShowBuddyRoute, bLoseWantedLevel)
GOTO_STATE(iState)
ENDIF
BREAK
CASE STATE_IS_PLAYER_AT_LOCATION_WITH_BUDDY_ON_FOOT
IF IS_PLAYER_AT_LOCATION_WITH_BUDDY_ON_FOOT(locatesData, EndLocation, LocateSize, bShowCorona, BuddyID[0], "GO_LOC", "DONT_LEAVE_BUD1", bShowBuddyRoute, bLoseWantedLevel)
GOTO_STATE(iState)
ENDIF
BREAK
CASE STATE_IS_PLAYER_AT_LOCATION_WITH_BUDDIES_IN_ANY_VEHICLE
IF IS_PLAYER_AT_LOCATION_WITH_BUDDIES_IN_ANY_VEHICLE(locatesData, EndLocation, LocateSize, bShowCorona, BuddyID[0], BuddyID[1], BuddyID[2], "GO_LOC", "DONT_LEAVE_BUD1", "DONT_LEAVE_BUD2", "DONT_LEAVE_BUD3", "PICKUP_ALL_BUDS", "GET_IN_ANY_CAR", "BACKIN_ANY_CAR", bShowBuddyRoute, bLoseWantedLevel, iMinSeats)
GOTO_STATE(iState)
ENDIF
BREAK
CASE STATE_IS_PLAYER_AT_LOCATION_WITH_BUDDY_IN_ANY_VEHICLE
IF IS_PLAYER_AT_LOCATION_WITH_BUDDY_IN_ANY_VEHICLE(locatesData, EndLocation, LocateSize, bShowCorona, BuddyID[0], "GO_LOC", "DONT_LEAVE_BUD1", "GET_IN_ANY_CAR", "BACKIN_ANY_CAR", bShowBuddyRoute, bLoseWantedLevel, iMinSeats)
GOTO_STATE(iState)
ENDIF
BREAK
CASE STATE_IS_PLAYER_AT_LOCATION_WITH_BUDDIES_IN_VEHICLE
IF IS_PLAYER_AT_LOCATION_WITH_BUDDIES_IN_VEHICLE(locatesData, EndLocation, LocateSize, bShowCorona, BuddyID[0], BuddyID[1], BuddyID[2], VehicleID, "GO_LOC", "DONT_LEAVE_BUD1", "DONT_LEAVE_BUD2", "DONT_LEAVE_BUD3", "PICKUP_ALL_BUDS", "GET_IN_THIS_CAR", "BACKIN_THIS_CAR", bShowBuddyRoute, bLoseWantedLevel)
GOTO_STATE(iState)
ENDIF
BREAK
CASE STATE_IS_PLAYER_AT_LOCATION_WITH_BUDDY_IN_VEHICLE
IF IS_PLAYER_AT_LOCATION_WITH_BUDDY_IN_VEHICLE(locatesData, EndLocation, LocateSize, bShowCorona, BuddyID[0], VeHicleID, "GO_LOC", "DONT_LEAVE_BUD1", "GET_IN_THIS_CAR", "BACKIN_THIS_CAR", bShowBuddyRoute, bLoseWantedLevel)
GOTO_STATE(iState)
ENDIF
BREAK
ENDSWITCH
ENDWHILE
ENDSCRIPT
#endif