Files
gtav-src/script/dev_ng/singleplayer/include/private/Ambient/altruist_cult.sch
T
2025-09-29 00:52:08 +02:00

105 lines
3.1 KiB
Scheme
Executable File

USING "globals.sch"
USING "dialogue_public.sch"
USING "random_events_public.sch"
FLOAT fDistanceBetweenPlayerAndDestination = -1
FUNC BOOL IS_CULT_FINISHED()
IF g_savedGlobals.sRandomEventData.iNumberOfDeliveredPeds = 1000
RETURN TRUE
ENDIF
RETURN FALSE
ENDFUNC
PROC REGISTER_CURRENT_GROUP_MEMBERS_FOR_CULT()
//Set in RE
IF NOT IS_CULT_FINISHED()
IF GET_CURRENT_PLAYER_PED_ENUM() = CHAR_TREVOR
g_bDeliverCurrentGroupMembersToCult = TRUE
ENDIF
ENDIF
ENDPROC
FUNC BOOL ARE_CURRENT_GROUP_MEMBERS_REGISTERED_FOR_CULT()
//Check in alruistcult.sc
RETURN g_bDeliverCurrentGroupMembersToCult
ENDFUNC
PROC REGISTERED_GROUP_MEMBERS_ARE_DELIVERED_FOR_CULT()
//Set in alruistcult.sc
g_bCurrentGroupMembersHaveBeenDeliveredToCult = TRUE
ENDPROC
FUNC BOOL HAVE_CURRENT_GROUP_MEMBERS_BEEN_DELIVERED_TO_CULT()
//Check in RE
IF g_bCurrentGroupMembersHaveBeenDeliveredToCult
SET_PASS_TYPE_FOR_THIS_RANDOM_EVENT(RE_PASS_ALTRUIST_DROP_OFF)
RETURN TRUE
ENDIF
RETURN FALSE
ENDFUNC
FUNC BOOL READY_FOR_CULT_DIALOGUE(VECTOR vHomeDestination)
//Check in RE
IF GET_CURRENT_PLAYER_PED_ENUM() = CHAR_TREVOR
IF ARE_CURRENT_GROUP_MEMBERS_REGISTERED_FOR_CULT()
AND NOT g_bAltruistCultDialogueHasPlayed
IF fDistanceBetweenPlayerAndDestination = -1
fDistanceBetweenPlayerAndDestination = VDIST(GET_ENTITY_COORDS(PLAYER_PED_ID()), vHomeDestination)
ENDIF
IF VDIST(GET_ENTITY_COORDS(PLAYER_PED_ID()), vHomeDestination) > (fDistanceBetweenPlayerAndDestination + 200)
OR GET_DISTANCE_BETWEEN_COORDS(<< -1014.15350, 4881.41113, 245.00009 >>, GET_ENTITY_COORDS(GET_PLAYER_PED(GET_PLAYER_INDEX()), FALSE)) < 400
// IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
g_bAltruistCultDialogueHasPlayed = TRUE
RETURN TRUE
// ENDIF
ENDIF
ENDIF
ENDIF
RETURN FALSE
ENDFUNC
FUNC BOOL READY_FOR_FINAL_CULT_DIALOGUE_AND_MUSIC()
//Check in RE
IF GET_CURRENT_PLAYER_PED_ENUM() = CHAR_TREVOR
IF ARE_CURRENT_GROUP_MEMBERS_REGISTERED_FOR_CULT()
IF GET_DISTANCE_BETWEEN_COORDS(<< -1014.15350, 4881.41113, 245.00009 >>, GET_ENTITY_COORDS(GET_PLAYER_PED(GET_PLAYER_INDEX()), FALSE)) < 400
// IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF NOT g_bAltruistCultExitMusicPlayed
TRIGGER_MUSIC_EVENT("AC_EN_ROUTE_CULT")
g_bAltruistCultExitMusicPlayed = TRUE
IF NOT g_bAltruistCultFinalDialogueHasPlayed
g_bAltruistCultFinalDialogueHasPlayed = TRUE
RETURN TRUE
ENDIF
ENDIF
ELSE
IF g_bAltruistCultExitMusicPlayed
TRIGGER_MUSIC_EVENT("AC_LEFT_AREA")
g_bAltruistCultExitMusicPlayed = FALSE
ENDIF
ENDIF
ENDIF
ENDIF
RETURN FALSE
ENDFUNC
PROC RESET_CULT_STATUS()
//Cleanup in RE
g_bDeliverCurrentGroupMembersToCult = FALSE
g_bCurrentGroupMembersHaveBeenDeliveredToCult = FALSE
g_bAltruistCultDialogueHasPlayed = FALSE
g_bAltruistCultFinalDialogueHasPlayed = FALSE
g_bAltruistCultExitMusicPlayed = FALSE
ENDPROC
PROC PRINT_CULT_HELP()
IF GET_CURRENT_PLAYER_PED_ENUM() = CHAR_TREVOR
IF NOT g_bAltruistCultHelpHasDisplayed
PRINT_HELP("CULT_BLIP_HELP")
g_bAltruistCultHelpHasDisplayed = TRUE
ENDIF
ENDIF
ENDPROC