fixes etc
This commit is contained in:
parent
4a0c8c6204
commit
453b281a4b
644 changed files with 1907 additions and 2456 deletions
245
resources/[standalone]/rpemotes-reborn/client/NewsCam.lua
Normal file
245
resources/[standalone]/rpemotes-reborn/client/NewsCam.lua
Normal file
|
@ -0,0 +1,245 @@
|
|||
IsUsingNewscam = false
|
||||
|
||||
if Config.NewscamEnabled then
|
||||
RegisterCommand("newscam", function()
|
||||
UseNewscam()
|
||||
end, false)
|
||||
|
||||
TriggerEvent('chat:addSuggestion', '/newscam', 'Use newscam', {})
|
||||
|
||||
local fov = 40.0
|
||||
local index = 0
|
||||
local scaleform_instructions
|
||||
local scaleform_news
|
||||
local prop_newscam
|
||||
local msg = "YOUR TEXT HERE"
|
||||
local bottom = "YOUR TEXT HERE"
|
||||
local title = "YOUR TEXT HERE"
|
||||
local instructions = true
|
||||
local cam
|
||||
|
||||
local function CleanupNewscam()
|
||||
ClearPedTasks(PlayerPedId())
|
||||
ClearTimecycleModifier()
|
||||
RenderScriptCams(false, false, 0, true, false)
|
||||
SetScaleformMovieAsNoLongerNeeded(breaking_news)
|
||||
SetScaleformMovieAsNoLongerNeeded(scaleform_instructions)
|
||||
DestroyCam(cam, false)
|
||||
if prop_newscam then
|
||||
DeleteEntity(prop_newscam)
|
||||
end
|
||||
SetNightvision(false)
|
||||
SetSeethrough(false)
|
||||
end
|
||||
|
||||
function UseNewscam()
|
||||
if IsPedSittingInAnyVehicle(PlayerPedId()) then
|
||||
return
|
||||
end
|
||||
if IsInActionWithErrorMessage({ ['IsUsingNewscam'] = true }) then
|
||||
return
|
||||
end
|
||||
IsUsingNewscam = not IsUsingNewscam
|
||||
|
||||
if IsUsingNewscam then
|
||||
CreateThread(function()
|
||||
DestroyAllProps()
|
||||
ClearPedTasks(PlayerPedId())
|
||||
RequestAnimDict("missfinale_c2mcs_1")
|
||||
while not HasAnimDictLoaded("missfinale_c2mcs_1") do
|
||||
Wait(5)
|
||||
end
|
||||
|
||||
-- attach the prop to the player
|
||||
local boneIndex = GetPedBoneIndex(PlayerPedId(), 28422)
|
||||
local x, y, z = table.unpack(GetEntityCoords(PlayerPedId(), true))
|
||||
if not HasModelLoaded("prop_v_cam_01") then
|
||||
LoadPropDict("prop_v_cam_01")
|
||||
end
|
||||
prop_newscam = CreateObject(`prop_v_cam_01`, x, y, z + 0.2, true, true, true)
|
||||
AttachEntityToEntity(prop_newscam, PlayerPedId(), boneIndex, 0.0, 0.03, 0.01, 0.0, 0.0, 0.0, true, true, false, true, 1, true)
|
||||
|
||||
TaskPlayAnim(PlayerPedId(), "missfinale_c2mcs_1", "fin_c2_mcs_1_camman", 5.0, 5.0, -1, 51, 0, false, false, false)
|
||||
PlayAmbientSpeech1(PlayerPedId(), "GENERIC_CURSE_MED", "SPEECH_PARAMS_FORCE")
|
||||
SetCurrentPedWeapon(PlayerPedId(), `WEAPON_UNARMED`, true)
|
||||
|
||||
RemoveAnimDict("missfinale_c2mcs_1")
|
||||
SetModelAsNoLongerNeeded("prop_v_cam_01")
|
||||
end)
|
||||
|
||||
Wait(200)
|
||||
SetTimecycleModifier("default")
|
||||
SetTimecycleModifierStrength(0.3)
|
||||
local breaking_news = RequestScaleformMovie("breaking_news")
|
||||
while not HasScaleformMovieLoaded(breaking_news) do
|
||||
Wait(10)
|
||||
end
|
||||
|
||||
|
||||
PushScaleformMovieFunction(breaking_news, "breaking_news")
|
||||
PopScaleformMovieFunctionVoid()
|
||||
|
||||
BeginScaleformMovieMethod(breaking_news, 'SET_TEXT')
|
||||
PushScaleformMovieMethodParameterString(msg)
|
||||
PushScaleformMovieMethodParameterString(bottom)
|
||||
EndScaleformMovieMethod()
|
||||
|
||||
BeginScaleformMovieMethod(breaking_news, 'SET_SCROLL_TEXT')
|
||||
PushScaleformMovieMethodParameterInt(0) -- top ticker
|
||||
PushScaleformMovieMethodParameterInt(0) -- Since this is the first string, start at 0
|
||||
PushScaleformMovieMethodParameterString(title)
|
||||
|
||||
EndScaleformMovieMethod()
|
||||
|
||||
BeginScaleformMovieMethod(breaking_news, 'DISPLAY_SCROLL_TEXT')
|
||||
PushScaleformMovieMethodParameterInt(0) -- Top ticker
|
||||
PushScaleformMovieMethodParameterInt(0) -- Index of string
|
||||
|
||||
EndScaleformMovieMethod()
|
||||
|
||||
scaleform_news = breaking_news
|
||||
|
||||
cam = CreateCam("DEFAULT_SCRIPTED_FLY_CAMERA", true)
|
||||
|
||||
AttachCamToEntity(cam, PlayerPedId(), 0.0, 0.0, 1.2, true)
|
||||
SetCamRot(cam, 0.0, 0.0, GetEntityHeading(PlayerPedId()))
|
||||
SetCamFov(cam, fov)
|
||||
RenderScriptCams(true, false, 0, true, false)
|
||||
|
||||
scaleform_instructions = SetupButtons({
|
||||
{ key = 177, text = 'exit_news' },
|
||||
{ key = 19, text = 'toggle_news_vision' },
|
||||
{ key = 74, text = "edit_values_newscam" },
|
||||
{ key = 47, text = 'toggle_instructions' }
|
||||
})
|
||||
|
||||
while IsUsingNewscam and not IsEntityDead(PlayerPedId()) and not IsPedSittingInAnyVehicle(PlayerPedId()) do
|
||||
if IsControlJustPressed(0, 177) then
|
||||
PlaySoundFrontend(-1, "SELECT", "HUD_FRONTEND_DEFAULT_SOUNDSET", false)
|
||||
IsUsingNewscam = false
|
||||
end
|
||||
|
||||
fov = HandleZoomAndCheckRotation(cam, fov)
|
||||
|
||||
HideHUDThisFrame()
|
||||
DisableControlAction(0, 25, true) -- disable aim
|
||||
DisableControlAction(0, 44, true) -- INPUT_COVER
|
||||
DisableControlAction(0, 37, true) -- INPUT_SELECT_WEAPON
|
||||
DisableControlAction(0, 24, true) -- Attack
|
||||
DisablePlayerFiring(PlayerPedId(), true) -- Disable weapon firing
|
||||
|
||||
|
||||
if IsControlJustPressed(0, 19) then
|
||||
-- if index = 0, show the "security_camera" scaleform, if index = 1, show the "breaking_news" scaleform and reset the index to 0
|
||||
if index == 0 then
|
||||
index = 1
|
||||
PlaySoundFrontend(-1, "SELECT", "HUD_FRONTEND_DEFAULT_SOUNDSET", false)
|
||||
scaleform_news = nil
|
||||
CreateThread(function()
|
||||
while index == 1 do
|
||||
DrawRect(0.0, 0.0, 2.0, 0.2, 0, 0, 0, 255)
|
||||
DrawRect(0.0, 1.0, 2.0, 0.2, 0, 0, 0, 255)
|
||||
Wait(1)
|
||||
end
|
||||
end)
|
||||
else
|
||||
index = 0
|
||||
PlaySoundFrontend(-1, "SELECT", "HUD_FRONTEND_DEFAULT_SOUNDSET", false)
|
||||
scaleform_news = breaking_news
|
||||
end
|
||||
end
|
||||
|
||||
if IsControlJustPressed(0, 74) then
|
||||
SetMsgBottomTitle()
|
||||
end
|
||||
|
||||
if IsControlJustPressed(0, 47) then
|
||||
instructions = not instructions
|
||||
PlaySoundFrontend(-1, "SELECT", "HUD_FRONTEND_DEFAULT_SOUNDSET", false)
|
||||
end
|
||||
|
||||
DrawScaleformMovieFullscreen(scaleform_news, 255, 255, 255, 255)
|
||||
if instructions then
|
||||
DrawScaleformMovieFullscreen(scaleform_instructions, 255, 255, 255, 255)
|
||||
end
|
||||
Wait(1)
|
||||
end
|
||||
end
|
||||
|
||||
-- RESET EVERYTHING
|
||||
IsUsingNewscam = false
|
||||
index = 0
|
||||
|
||||
CleanupNewscam()
|
||||
end
|
||||
|
||||
function SetMsgBottomTitle()
|
||||
-- keyboard input to set the message and bottom title
|
||||
AddTextEntry("top", "Enter the top message of the news")
|
||||
DisplayOnscreenKeyboard(1, "top", "", "", "", "", "", 200)
|
||||
while (UpdateOnscreenKeyboard() == 0) do
|
||||
DisableAllControlActions(0);
|
||||
Wait(0);
|
||||
end
|
||||
if (GetOnscreenKeyboardResult()) then
|
||||
title = tostring(GetOnscreenKeyboardResult())
|
||||
end
|
||||
|
||||
AddTextEntry("bottom", "Enter the bottom title of the news")
|
||||
DisplayOnscreenKeyboard(1, "bottom", "", "", "", "", "", 200)
|
||||
while (UpdateOnscreenKeyboard() == 0) do
|
||||
DisableAllControlActions(0);
|
||||
Wait(0);
|
||||
end
|
||||
if (GetOnscreenKeyboardResult()) then
|
||||
bottom = tostring(GetOnscreenKeyboardResult())
|
||||
end
|
||||
|
||||
AddTextEntry("title", "Enter the title of the news")
|
||||
DisplayOnscreenKeyboard(1, "title", "", "", "", "", "", 200)
|
||||
while (UpdateOnscreenKeyboard() == 0) do
|
||||
DisableAllControlActions(0);
|
||||
Wait(0);
|
||||
end
|
||||
if (GetOnscreenKeyboardResult()) then
|
||||
msg = tostring(GetOnscreenKeyboardResult())
|
||||
end
|
||||
|
||||
|
||||
-- reset the scaleform and set the new values
|
||||
SetScaleformMovieAsNoLongerNeeded(breaking_news)
|
||||
breaking_news = RequestScaleformMovie("breaking_news")
|
||||
while not HasScaleformMovieLoaded(breaking_news) do
|
||||
Wait(10)
|
||||
end
|
||||
|
||||
PushScaleformMovieFunction(breaking_news, "breaking_news")
|
||||
PopScaleformMovieFunctionVoid()
|
||||
|
||||
BeginScaleformMovieMethod(breaking_news, 'SET_TEXT')
|
||||
PushScaleformMovieMethodParameterString(msg)
|
||||
PushScaleformMovieMethodParameterString(bottom)
|
||||
EndScaleformMovieMethod()
|
||||
|
||||
BeginScaleformMovieMethod(breaking_news, 'SET_SCROLL_TEXT')
|
||||
PushScaleformMovieMethodParameterInt(0) -- top ticker
|
||||
PushScaleformMovieMethodParameterInt(0) -- Since this is the first string, start at 0
|
||||
PushScaleformMovieMethodParameterString(title)
|
||||
EndScaleformMovieMethod()
|
||||
|
||||
BeginScaleformMovieMethod(breaking_news, 'DISPLAY_SCROLL_TEXT')
|
||||
PushScaleformMovieMethodParameterInt(0) -- Top ticker
|
||||
PushScaleformMovieMethodParameterInt(0) -- Index of string
|
||||
EndScaleformMovieMethod()
|
||||
end
|
||||
|
||||
AddEventHandler('onResourceStop', function(resource)
|
||||
if resource == GetCurrentResourceName() then
|
||||
CleanupNewscam()
|
||||
end
|
||||
end)
|
||||
|
||||
CreateExport('toggleNewscam', function()
|
||||
UseNewscam()
|
||||
end)
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue