213 lines
4.9 KiB
Python
Executable File
213 lines
4.9 KiB
Python
Executable File
#IF IS_FINAL_BUILD
|
|
SCRIPT
|
|
ENDSCRIPT
|
|
#ENDIF
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
// ..........................
|
|
// : Fraser Morgan :
|
|
// : Speech Reverb Tracker :
|
|
// : 10/10/2012 :
|
|
// ..........................
|
|
|
|
USING "rage_builtins.sch"
|
|
USING "globals.sch"
|
|
USING "brains.sch"
|
|
USING "script_player.sch"
|
|
USING "script_ped.sch"
|
|
USING "commands_script.sch"
|
|
USING "commands_pad.sch"
|
|
USING "commands_ped.sch"
|
|
USING "commands_graphics.sch"
|
|
USING "commands_camera.sch"
|
|
USING "commands_streaming.sch"
|
|
USING "commands_interiors.sch"
|
|
USING "commands_task.sch"
|
|
USING "commands_object.sch"
|
|
USING "commands_physics.sch"
|
|
USING "commands_player.sch"
|
|
USING "commands_misc.sch"
|
|
USING "dialogue_public.sch"
|
|
USING "flow_public_core_override.sch"
|
|
USING "weapon_enums.sch"
|
|
|
|
|
|
PED_INDEX REVERB_PED
|
|
|
|
WIDGET_GROUP_ID reverbingPedWidgets
|
|
|
|
BOOL bCreatePed
|
|
BOOL bSpeech
|
|
BOOL bDeletePed
|
|
BOOL bTerminate
|
|
BOOL bSpeechWaitDelete
|
|
|
|
INT iTime = 1500
|
|
|
|
VECTOR vFront, vSide, vUp, vPos
|
|
VECTOR vPedPos, vTransformedPedPos
|
|
VECTOR vClickPos
|
|
|
|
FLOAT fDelta = 0
|
|
FLOAT fPedPos = 1
|
|
|
|
PROC MISSION_CLEANUP()
|
|
|
|
IF DOES_WIDGET_GROUP_EXIST(reverbingPedWidgets)
|
|
DELETE_WIDGET_GROUP(reverbingPedWidgets)
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(REVERB_PED)
|
|
DELETE_PED(REVERB_PED)
|
|
ENDIF
|
|
|
|
TERMINATE_THIS_THREAD()
|
|
|
|
ENDPROC
|
|
PROC CLICK_UPDATER()
|
|
|
|
IF IS_MOUSE_BUTTON_JUST_PRESSED(MB_LEFT_BTN)
|
|
|
|
vClickPos = GET_SCRIPT_MOUSE_POINTER_IN_WORLD_COORDS()
|
|
|
|
IF DOES_ENTITY_EXIST(REVERB_PED)
|
|
DELETE_PED(REVERB_PED)
|
|
ENDIF
|
|
|
|
REQUEST_MODEL(A_F_Y_BEVHILLS_01)
|
|
|
|
IF NOT HAS_MODEL_LOADED(A_F_Y_BEVHILLS_01)
|
|
WAIT(1500)
|
|
ENDIF
|
|
|
|
REVERB_PED = CREATE_PED(PEDTYPE_CIVFEMALE, A_F_Y_BEVHILLS_01, vClickPos)
|
|
|
|
SET_ENTITY_HEADING(REVERB_PED, (GET_ENTITY_HEADING(PLAYER_PED_ID())))
|
|
|
|
bCreatePed = FALSE
|
|
|
|
ENDIF
|
|
|
|
IF IS_MOUSE_BUTTON_JUST_PRESSED(MB_RIGHT_BTN)
|
|
IF DOES_ENTITY_EXIST(REVERB_PED)
|
|
bSpeechWaitDelete = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
PROC PED_BEHAVIOURS()
|
|
|
|
IF DOES_ENTITY_EXIST(REVERB_PED) AND NOT IS_ENTITY_DEAD(REVERB_PED)
|
|
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(REVERB_PED, TRUE)
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
PROC CREATE_WIDGETS()
|
|
|
|
reverbingPedWidgets = START_WIDGET_GROUP("Speech Reverb Tracker")
|
|
ADD_WIDGET_BOOL("Create Ped", bCreatePed)
|
|
ADD_WIDGET_BOOL("Trigger Ambient Speech", bSpeech)
|
|
ADD_WIDGET_BOOL("Delete Ped", bDeletePed)
|
|
ADD_WIDGET_STRING("")
|
|
ADD_WIDGET_INT_SLIDER("Time before deletion", iTime, 0, 5500, 100)
|
|
ADD_WIDGET_BOOL("Speech, Wait, Delete", bSpeechWaitDelete)
|
|
ADD_WIDGET_STRING("")
|
|
ADD_WIDGET_STRING("::TO USE MOUSE CLICK TO SPAWN A PED::")
|
|
ADD_WIDGET_STRING("1. Highlight Script bank in RAG")
|
|
ADD_WIDGET_STRING("2. Click [Toggle Script Bank] then navigate to Script -> Script Debug Tools")
|
|
ADD_WIDGET_STRING("3. Click [Enable / Disable Debugging]")
|
|
ADD_WIDGET_STRING("4. Click anywhere on screen to spawn the ped.")
|
|
ADD_WIDGET_STRING("(you may need to restart this script)")
|
|
ADD_WIDGET_BOOL("Terminate Script", bTerminate)
|
|
STOP_WIDGET_GROUP()
|
|
|
|
ENDPROC
|
|
|
|
SCRIPT
|
|
|
|
IF HAS_FORCE_CLEANUP_OCCURRED()
|
|
MISSION_CLEANUP()
|
|
ENDIF
|
|
|
|
CREATE_WIDGETS()
|
|
|
|
WHILE TRUE
|
|
WAIT(0)
|
|
|
|
PED_BEHAVIOURS()
|
|
|
|
CLICK_UPDATER()
|
|
|
|
GET_ENTITY_MATRIX(PLAYER_PED_ID(), vFront, vSide, vUp, vPos)
|
|
|
|
vTransformedPedPos = vPos + fDelta * vSide
|
|
|
|
vPedPos = vTransformedPedPos + vFront * fPedPos
|
|
|
|
IF bSpeechWaitDelete
|
|
IF DOES_ENTITY_EXIST(REVERB_PED)
|
|
TASK_TURN_PED_TO_FACE_ENTITY(REVERB_PED, PLAYER_PED_ID(), 0)
|
|
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE_NATIVE(REVERB_PED, "PHONE_CONV1_CHAT3", "A_F_M_BEVHILLS_02_WHITE_FULL_01", "SPEECH_PARAMS_FORCE_NORMAL")
|
|
WAIT(iTime)
|
|
STOP_CURRENT_PLAYING_AMBIENT_SPEECH(REVERB_PED)
|
|
DELETE_PED(REVERB_PED)
|
|
ENDIF
|
|
bSpeechWaitDelete = FALSE
|
|
ENDIF
|
|
|
|
IF bDeletePed
|
|
IF DOES_ENTITY_EXIST(REVERB_PED)
|
|
WAIT(iTime)
|
|
STOP_CURRENT_PLAYING_AMBIENT_SPEECH(REVERB_PED)
|
|
DELETE_PED(REVERB_PED)
|
|
ENDIF
|
|
bDeletePed = FALSE
|
|
ENDIF
|
|
|
|
IF bSpeech
|
|
IF DOES_ENTITY_EXIST(REVERB_PED)
|
|
TASK_TURN_PED_TO_FACE_ENTITY(REVERB_PED, PLAYER_PED_ID(), 0)
|
|
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE_NATIVE(REVERB_PED, "PHONE_CONV1_CHAT3", "A_F_M_BEVHILLS_02_WHITE_FULL_01", "SPEECH_PARAMS_FORCE_NORMAL")
|
|
ENDIF
|
|
bSpeech = FALSE
|
|
ENDIF
|
|
|
|
IF bCreatePed
|
|
|
|
IF DOES_ENTITY_EXIST(REVERB_PED)
|
|
DELETE_PED(REVERB_PED)
|
|
ENDIF
|
|
|
|
REQUEST_MODEL(A_F_Y_BEVHILLS_01)
|
|
|
|
IF NOT HAS_MODEL_LOADED(A_F_Y_BEVHILLS_01)
|
|
WAIT(1500)
|
|
ENDIF
|
|
|
|
REVERB_PED = CREATE_PED(PEDTYPE_CIVFEMALE, A_F_Y_BEVHILLS_01, vPedPos)
|
|
|
|
SET_ENTITY_HEADING(REVERB_PED, (GET_ENTITY_HEADING(PLAYER_PED_ID())))
|
|
|
|
bCreatePed = FALSE
|
|
|
|
ENDIF
|
|
|
|
IF bTerminate
|
|
MISSION_CLEANUP()
|
|
ENDIF
|
|
|
|
IF IS_KEYBOARD_KEY_JUST_PRESSED(KEY_S)
|
|
MISSION_CLEANUP()
|
|
ENDIF
|
|
|
|
ENDWHILE
|
|
|
|
ENDSCRIPT
|
|
|
|
|
|
#ENDIF //IS_DEBUG_BUILD
|
|
|