240 lines
9.9 KiB
Lua
240 lines
9.9 KiB
Lua
|
|
||
|
local playAnim = false
|
||
|
local phoneProp = 0
|
||
|
local phoneModel = Config.PhoneModel
|
||
|
|
||
|
|
||
|
-- Item checks to return whether or not the client has a phone or not
|
||
|
local function HasPhone()
|
||
|
return QBCore.Functions.HasItem("phone")
|
||
|
end
|
||
|
|
||
|
|
||
|
-- Loads the animdict so we can execute it on the ped
|
||
|
local function loadAnimDict(dict)
|
||
|
RequestAnimDict(dict)
|
||
|
|
||
|
while not HasAnimDictLoaded(dict) do
|
||
|
Wait(0)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
local function DeletePhone()
|
||
|
if phoneProp ~= 0 then
|
||
|
DeleteObject(phoneProp)
|
||
|
phoneProp = 0
|
||
|
end
|
||
|
end
|
||
|
|
||
|
local function NewPropWhoDis()
|
||
|
DeletePhone()
|
||
|
RequestModel(phoneModel)
|
||
|
while not HasModelLoaded(phoneModel) do
|
||
|
Wait(1)
|
||
|
end
|
||
|
phoneProp = CreateObject(phoneModel, 1.0, 1.0, 1.0, 1, 1, 0)
|
||
|
|
||
|
local bone = GetPedBoneIndex(PlayerPedId(), 28422)
|
||
|
if phoneModel == Config.PhoneModel then
|
||
|
AttachEntityToEntity(phoneProp, PlayerPedId(), bone, 0.0, 0.0, 0.0, 15.0, 0.0, 0.0, 1, 1, 0, 0, 2, 1)
|
||
|
else
|
||
|
AttachEntityToEntity(phoneProp, PlayerPedId(), bone, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1, 1, 0, 0, 2, 1)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
-- Does the actual animation of the animation when calling 911
|
||
|
local function PhoneCallAnim()
|
||
|
loadAnimDict("cellphone@")
|
||
|
local ped = PlayerPedId()
|
||
|
CreateThread(function()
|
||
|
NewPropWhoDis()
|
||
|
playAnim = true
|
||
|
while playAnim do
|
||
|
if not IsEntityPlayingAnim(ped, "cellphone@", 'cellphone_text_to_call', 3) then
|
||
|
TaskPlayAnim(ped, "cellphone@", 'cellphone_text_to_call', 3.0, 3.0, -1, 50, 0, false, false, false)
|
||
|
end
|
||
|
Wait(100)
|
||
|
end
|
||
|
end)
|
||
|
end
|
||
|
|
||
|
|
||
|
-- Regular 911 call that goes straight to the Police
|
||
|
RegisterCommand('114', function(source, args, rawCommand)
|
||
|
local msg = rawCommand:sub(5)
|
||
|
if string.len(msg) > 0 then
|
||
|
if not exports['qb-policejob']:IsHandcuffed() then
|
||
|
if HasPhone() then
|
||
|
PhoneCallAnim()
|
||
|
Wait(math.random(3,8) * 1000)
|
||
|
playAnim = false
|
||
|
local plyData = QBCore.Functions.GetPlayerData()
|
||
|
local currentPos = GetEntityCoords(PlayerPedId())
|
||
|
local locationInfo = getStreetandZone(currentPos)
|
||
|
local gender = GetPedGender()
|
||
|
TriggerServerEvent("dispatch:server:notify",{
|
||
|
dispatchcodename = "114call", -- has to match the codes in sv_dispatchcodes.lua so that it generates the right blip
|
||
|
dispatchCode = "114",
|
||
|
firstStreet = locationInfo,
|
||
|
priority = 2, -- priority
|
||
|
name = plyData.charinfo.firstname:sub(1,1):upper()..plyData.charinfo.firstname:sub(2).. " ".. plyData.charinfo.lastname:sub(1,1):upper()..plyData.charinfo.lastname:sub(2),
|
||
|
number = plyData.charinfo.phone,
|
||
|
origin = {
|
||
|
x = currentPos.x,
|
||
|
y = currentPos.y,
|
||
|
z = currentPos.z
|
||
|
},
|
||
|
dispatchMessage = "Ingående opkald", -- message
|
||
|
information = msg,
|
||
|
job = {"police", "ambulance"} -- jobs that will get the alerts
|
||
|
})
|
||
|
Wait(1000)
|
||
|
DeletePhone()
|
||
|
StopEntityAnim(PlayerPedId(), 'cellphone_text_to_call', "cellphone@", 3)
|
||
|
else
|
||
|
QBCore.Functions.Notify("Du kan ikke ringe uden en telefon!", "error", 4500)
|
||
|
end
|
||
|
else
|
||
|
QBCore.Functions.Notify("Du kan ikke ringe når du er i håndjern..", "error", 4500)
|
||
|
end
|
||
|
else
|
||
|
QBCore.Functions.Notify('Angiv en årsag efter 114', "success")
|
||
|
end
|
||
|
end, false)
|
||
|
|
||
|
RegisterCommand('114a', function(source, args, rawCommand)
|
||
|
local msg = rawCommand:sub(5)
|
||
|
if string.len(msg) > 0 then
|
||
|
if not exports['qb-policejob']:IsHandcuffed() then
|
||
|
if HasPhone() then
|
||
|
PhoneCallAnim()
|
||
|
Wait(math.random(3,8) * 1000)
|
||
|
playAnim = false
|
||
|
local plyData = QBCore.Functions.GetPlayerData()
|
||
|
local currentPos = GetEntityCoords(PlayerPedId())
|
||
|
local locationInfo = getStreetandZone(currentPos)
|
||
|
local gender = GetPedGender()
|
||
|
TriggerServerEvent("dispatch:server:notify",{
|
||
|
dispatchcodename = "114call", -- has to match the codes in sv_dispatchcodes.lua so that it generates the right blip
|
||
|
dispatchCode = "114",
|
||
|
firstStreet = locationInfo,
|
||
|
priority = 2, -- priority
|
||
|
name = "Anonym",
|
||
|
number = "Skjult Nummer",
|
||
|
origin = {
|
||
|
x = currentPos.x,
|
||
|
y = currentPos.y,
|
||
|
z = currentPos.z
|
||
|
},
|
||
|
dispatchMessage = "Ingående anonymt opkald", -- message
|
||
|
information = msg,
|
||
|
job = {"police", "ambulance"} -- jobs that will get the alerts
|
||
|
})
|
||
|
Wait(1000)
|
||
|
DeletePhone()
|
||
|
StopEntityAnim(PlayerPedId(), 'cellphone_text_to_call', "cellphone@", 3)
|
||
|
else
|
||
|
QBCore.Functions.Notify("Du kan ikke ringe uden en telefon!", "error", 4500)
|
||
|
end
|
||
|
else
|
||
|
QBCore.Functions.Notify("Du kan ikke ringe når du er i håndjern..", "error", 4500)
|
||
|
end
|
||
|
else
|
||
|
QBCore.Functions.Notify('Angiv en årsag efter 114', "success")
|
||
|
end
|
||
|
end, false)
|
||
|
|
||
|
-- Regular 311 call that goes straight to the Police
|
||
|
RegisterCommand('112', function(source, args, rawCommand)
|
||
|
local msg = rawCommand:sub(5)
|
||
|
if string.len(msg) > 0 then
|
||
|
if not exports['qb-policejob']:IsHandcuffed() then
|
||
|
if HasPhone() then
|
||
|
PhoneCallAnim()
|
||
|
Wait(math.random(3,8) * 1000)
|
||
|
playAnim = false
|
||
|
local plyData = QBCore.Functions.GetPlayerData()
|
||
|
local currentPos = GetEntityCoords(PlayerPedId())
|
||
|
local locationInfo = getStreetandZone(currentPos)
|
||
|
local gender = GetPedGender()
|
||
|
TriggerServerEvent("dispatch:server:notify",{
|
||
|
dispatchcodename = "112call", -- has to match the codes in sv_dispatchcodes.lua so that it generates the right blip
|
||
|
dispatchCode = "112",
|
||
|
firstStreet = locationInfo,
|
||
|
priority = 2, -- priority
|
||
|
name = plyData.charinfo.firstname:sub(1,1):upper()..plyData.charinfo.firstname:sub(2).. " ".. plyData.charinfo.lastname:sub(1,1):upper()..plyData.charinfo.lastname:sub(2),
|
||
|
number = plyData.charinfo.phone,
|
||
|
origin = {
|
||
|
x = currentPos.x,
|
||
|
y = currentPos.y,
|
||
|
z = currentPos.z
|
||
|
},
|
||
|
dispatchMessage = "Ingående opkald", -- message
|
||
|
information = msg,
|
||
|
job = {"police", "ambulance"} -- jobs that will get the alerts
|
||
|
})
|
||
|
Wait(1000)
|
||
|
DeletePhone()
|
||
|
StopEntityAnim(PlayerPedId(), 'cellphone_text_to_call', "cellphone@", 3)
|
||
|
else
|
||
|
QBCore.Functions.Notify("Du kan ikke ringe uden en telefon!", "error", 4500)
|
||
|
end
|
||
|
else
|
||
|
QBCore.Functions.Notify("Du kan ikke ringe når du er i håndjern..", "error", 4500)
|
||
|
end
|
||
|
else
|
||
|
QBCore.Functions.Notify('Angiv en årsag efter 112', "success")
|
||
|
end
|
||
|
end, false)
|
||
|
|
||
|
-- Regular 311 call that goes straight to the Police
|
||
|
RegisterCommand('112a', function(source, args, rawCommand)
|
||
|
local msg = rawCommand:sub(5)
|
||
|
if string.len(msg) > 0 then
|
||
|
if not exports['qb-policejob']:IsHandcuffed() then
|
||
|
if HasPhone() then
|
||
|
PhoneCallAnim()
|
||
|
Wait(math.random(3,8) * 1000)
|
||
|
playAnim = false
|
||
|
local plyData = QBCore.Functions.GetPlayerData()
|
||
|
local currentPos = GetEntityCoords(PlayerPedId())
|
||
|
local locationInfo = getStreetandZone(currentPos)
|
||
|
local gender = GetPedGender()
|
||
|
TriggerServerEvent("dispatch:server:notify",{
|
||
|
dispatchcodename = "112call", -- has to match the codes in sv_dispatchcodes.lua so that it generates the right blip
|
||
|
dispatchCode = "112",
|
||
|
firstStreet = locationInfo,
|
||
|
priority = 2, -- priority
|
||
|
name = "Anonym",
|
||
|
number = "Skjult Nummer",
|
||
|
origin = {
|
||
|
x = currentPos.x,
|
||
|
y = currentPos.y,
|
||
|
z = currentPos.z
|
||
|
},
|
||
|
dispatchMessage = "Ingående anonymt opkald", -- message
|
||
|
information = msg,
|
||
|
job = {"police", "ambulance"} -- jobs that will get the alerts
|
||
|
})
|
||
|
Wait(1000)
|
||
|
DeletePhone()
|
||
|
StopEntityAnim(PlayerPedId(), 'cellphone_text_to_call', "cellphone@", 3)
|
||
|
else
|
||
|
QBCore.Functions.Notify("Du kan ikke ringe uden en telefon!", "error", 4500)
|
||
|
end
|
||
|
else
|
||
|
QBCore.Functions.Notify("Du kan ikke ringe når du er i håndjern..", "error", 4500)
|
||
|
end
|
||
|
else
|
||
|
QBCore.Functions.Notify('Angiv en årsag efter 112a', "success")
|
||
|
end
|
||
|
end, false)
|
||
|
|
||
|
|
||
|
Citizen.CreateThread(function()
|
||
|
TriggerEvent('chat:addSuggestion', '/114', 'Send en besked til politiet.', {{ name="besked", help="Besked til politiet."}})
|
||
|
TriggerEvent('chat:addSuggestion', '/114a', 'Send en anonym besked til politiet.', {{ name="besked", help="Anonym besked til politiet."}})
|
||
|
TriggerEvent('chat:addSuggestion', '/112', 'Send en besked til EMS.', {{ name="besked", help="Besked til EMS."}})
|
||
|
TriggerEvent('chat:addSuggestion', '/112a', 'Send en anonym besked til EMS.', {{ name="besked", help="Anonym besked til EMS."}})
|
||
|
end)
|