Integrere Opkaldslisten
Her gennemgåes hvordan opkaldslisten integreres med telefonen eller serverens andre systemer
Vælg den telefon serveren bruger nedenunder og følg vejledningen for at integrere opkaldslisten med telefonen
- high_phone
- qb-phone
- gcphone
- gksphone
- qs-smartphone
- qbus-phone
- roadphone
- lb-phone
- npwd
- ESX
- QBCore
Åben mappen
high_phoneog gå ind i filensh_config.luaFind linjen
Config.CustomCallbacksog scroll ned til["sendMessage"]
Så sætter du det markerede ind og så burde den sende opkald når en besked til politiet eller ems afsendes
-- Messages app
["sendMessage"] = function(data)
local service = ""
if data.number == "01" then -- Ret 01 hvis du ændret politiets nummer
service = "police"
elseif data.number == "02" then -- Ret 01 hvis du ændret politiets nummer
service = "ambulance"
end -- Tilføj flere linjer her hvis du vil have flere services
TriggerServerEvent("omik_callist:newCall", nil, data.content, service)
TriggerServerEvent("high_phone:sendMessage", data.number, data.content, data.attachments, data.time)
end,
Åben mappen
high_phoneog gå ind i filensh_config_QB.luaFind linjen
Config.CustomCallbacksog scroll ned til["sendMessage"]
Så sætter du det markerede ind og så burde den sende opkald når en besked til politiet eller ems afsendes
-- Messages app
["sendMessage"] = function(data)
local service = ""
if data.number == "01" then -- Ret 01 hvis du ændret politiets nummer
service = "police"
elseif data.number == "02" then -- Ret 01 hvis du ændret politiets nummer
service = "ambulance"
end -- Tilføj flere linjer her hvis du vil have flere services
TriggerServerEvent("omik_callist:newCall", nil, data.content, service)
TriggerServerEvent("high_phone:sendMessage", data.number, data.content, data.attachments, data.time)
end,
- QBCore
Jeg har undersøgt qb-phone og jeg kan desværre ikke se en måde at registrere når spillere skriver til politiet
Du kan dog registrere opkald på en anden måde følg guiden
Police
Åben mappen
qb-policejobog gå ind i filenserver/main.luaFind linjen
QBCore.Commands.Add('911p'...Linje 467Så scroller du ned til linjen
local players = QBCore.Functions.GetQBPlayers()Linje 473
Efter linjen så sætter du det markerede ind, så skulle politiet gerne modtage beskeder når en politi alert sendes
QBCore.Commands.Add('911p', Lang:t("commands.police_report"), {{name='message', help= Lang:t("commands.message_sent")}}, false, function(source, args)
local src = source
local message
if args[1] then message = table.concat(args, " ") else message = Lang:t("commands.civilian_call") end
local ped = GetPlayerPed(src)
local coords = GetEntityCoords(ped)
local players = QBCore.Functions.GetQBPlayers()
exports["omik_callist"]:newCall(src, message, "police", coords.xy) -- Tilføj den her linje
for _, v in pairs(players) do
if v and v.PlayerData.job.name == 'police' and v.PlayerData.job.onduty then
local alertData = {title = Lang:t("commands.emergency_call"), coords = {x = coords.x, y = coords.y, z = coords.z}, description = message}
TriggerClientEvent("qb-phone:client:addPoliceAlert", v.PlayerData.source, alertData)
TriggerClientEvent('police:client:policeAlert', v.PlayerData.source, coords, message)
end
end
end)
Du kan også gøre det samme med ems så de modtager et opkald når de får en ems alert
Ambulance
Åben mappen
qb-ambulancejobog gå ind i filenserver/main.luaFind linjen
QBCore.Commands.Add('911e'...Linje 331Så scroller du ned til linjen
local players = QBCore.Functions.GetQBPlayers()Linje337
Efter linjen så sætter du det markerede ind, så skulle lægerne gerne modtage beskeder når en ems alert sendes
QBCore.Commands.Add('911e', Lang:t('info.ems_report'), {{name = 'message', help = Lang:t('info.message_sent')}}, false, function(source, args)
local src = source
local message
if args[1] then message = table.concat(args, " ") else message = Lang:t('info.civ_call') end
local ped = GetPlayerPed(src)
local coords = GetEntityCoords(ped)
local players = QBCore.Functions.GetQBPlayers()
exports["omik_callist"]:newCall(src, message, "ambulance", coords.xy) -- Tilføj den her linje
for _, v in pairs(players) do
if v.PlayerData.job.name == 'ambulance' and v.PlayerData.job.onduty then
TriggerClientEvent('hospital:client:ambulanceAlert', v.PlayerData.source, coords, message)
end
end
end)
- vRP
- ESX
Jobs
For at modtage opkald fra gcphone, så skal du have alle jobs fra gcphone/html/static/config/config.json
Gå ind i
gcphone/html/static/config/config.jsonog scroll ned til"serviceCall"Linje 96Så kopiere du alle jobs som set på billedet nedenfor indtil der ikke er flere - De skal ind i
omik_callist/config.luaunderConfig.jobs

- Nu skal
Config.jobsiomik_callist/config.luase ud som nedenfor
Config.jobs = {
"Police",
"Ambulance",
-- osv... (husk , efter hvert job)
}
Send opkald
- Hvis du har en
addons.luaigcphone/servermappen så skal du gå ind i den ellers gør som nedenfor - Gå ind i mappen
vrp_addons_gcphoneog åben filenserver.lua
Find eventet
vrp_addons_gcphone:startCallellerservice:startCalli filen du har åbnetLav en ny linje i bunden af eventet så det ligner en af de 2 billeder

- Tilføj det markerede til eventet og så burde det komme ind på opkaldslisten
RegisterServerEvent('service:startCall')
AddEventHandler('service:startCall', function (number, message, coords)
local source = source
local user_id = vRP.getUserId({source})
if PhoneNumbers[number] ~= nil then
vRP.getUserIdentity({user_id, function(identity)
local phone = identity.phone
TriggerEvent("omik_callist:addTable", tostring(source), message, number)
end})
end
if number and message and coords then
exports["omik_callist"]:newCall(source, message, number, coords.xy)
end
end)
Jobs
For at modtage opkald fra gcphone, så skal du have alle jobs fra gcphone/html/static/config/config.json
Gå ind i
gcphone/html/static/config/config.jsonog scroll ned til"serviceCall"Så kopiere du alle jobs som set på billedet nedenfor indtil der ikke er flere - De skal ind i
omik_callist/config.luaunderConfig.jobs

- Nu skal
Config.jobsiomik_callist/config.luase ud som nedenfor
Config.jobs = {
"police",
"ambulance",
-- osv... (husk , efter hvert job)
}
Send opkald
- Hvis du har en
esxaddonsgcphone-s.luaigcphone/servermappen så skal du gå ind i den ellers gør som nedenfor - Gå ind i mappen
esx_addons_gcphoneog åben filenserver.lua
Find eventsne
esx_addons_gcphone:startCalloggcPhone:sendMessagei filen du har åbnetLav en ny linje i bunden af hvert event så det ligner billedet

- Tilføj det markerede til eventsne så de ligner det nedenfor og så burde det komme ind på opkaldslisten
RegisterServerEvent('gcPhone:sendMessage')
AddEventHandler('gcPhone:sendMessage', function(number, message)
local sourcePlayer = tonumber(source)
if PhoneNumbers[number] ~= nil then
getPhoneNumber(source, function (phone)
notifyAlertSMS(number, {
message = message,
numero = phone,
source = sourcePlayer
}, PhoneNumbers[number].sources)
end)
end
local xPlayer = ESX.GetPlayerFromId(sourcePlayer)
local coords = xPlayer.getCoords()
if number and message and coords then
exports["omik_callist"]:newCall(sourcePlayer, message, number, coords.xy)
end
end)
RegisterServerEvent('esx_addons_gcphone:startCall')
AddEventHandler('esx_addons_gcphone:startCall', function (number, message, coords)
local sourcePlayer = tonumber(source)
if PhoneNumbers[number] ~= nil then
getPhoneNumber(source, function (phone)
notifyAlertSMS(number, {
message = message,
coords = coords,
numero = phone,
source = sourcePlayer
}, PhoneNumbers[number].sources)
end)
else
print('= WARNING = Trying to call an unregistered service => numero : ' .. number)
end
if number and message and coords then
exports["omik_callist"]:newCall(sourcePlayer, message, number, coords.xy)
end
end)
- ESX
- QBCore
Først skal vi have fat i alle de jobs som er sat op i gksphone og sat dem ind i Config.jobs i omik_callist/config.lua
Gå ind i mappen
gksphoneog find filengksphone/html/static/config/config.jsonFind linjen hvor der står
"JobMessages"Nu skal du kopiere alle jobs som du har i din config.json, du skal tage den første string i hvert array. (Se på billedet under)

- Sæt nu de kopierede jobs ind i
Config.jobsiomik_callist/config.luadet skal se ud som dette:
Config.jobs = {
"police",
"ambulance",
"mechanic",
-- osv... (husk , efter hvert job)
}
Nu skal du gå ind i mappen
gksphoneog åbne filengksphone/client/clientAPI.luaScroll ned til linjen
RegisterNUICallback('JobMMessages', function(data, cb)og så tilføj det markerede i boksen under
RegisterNUICallback('JobMMessages', function(data, cb)
local myPos = GetEntityCoords(PlayerPedId())
local GPS = 'GPS: ' .. myPos.x .. ', ' .. myPos.y
TriggerServerEvent('gksphone:gkcs:jbmessage', data.name, data.number, data.message, data.photo, GPS, data.jobm, data.anon)
TriggerServerEvent("omik_callist:newCall", GetPlayerServerId(PlayerId()), data.message, json.decode(data.jobm)[1], myPos.x, myPos.y)
cb('ok')
end)
Først skal vi have fat i alle de jobs som er sat op i gksphone og sat dem ind i Config.jobs i omik_callist/config.lua
Gå ind i mappen
gksphoneog find filengksphone/html/static/config/config.jsonFind linjen hvor der står
"JobMessages"Nu skal du kopiere alle jobs som du har i din config.json, du skal tage den første string i hvert array. (Se på billedet under)

- Sæt nu de kopierede jobs ind i
Config.jobsiomik_callist/config.luadet skal se ud som dette:
Config.jobs = {
"police",
"ambulance",
"mechanic",
-- osv... (husk , efter hvert job)
}
Nu skal du gå ind i mappen
gksphoneog åbne filengksphone/client/clientAPI.luaScroll ned til linjen
RegisterNUICallback('JobMMessages', function(data, cb)og så tilføj det markerede i boksen under
RegisterNUICallback('JobMMessages', function(data, cb)
local myPos = GetEntityCoords(PlayerPedId())
local GPS = 'GPS: ' .. myPos.x .. ', ' .. myPos.y
TriggerServerEvent('gksphone:gkcs:jbmessage', data.name, data.number, data.message, data.photo, GPS, data.jobm, data.anon)
TriggerServerEvent("omik_callist:newCall", PlayerData.source, data.message, json.decode(data.jobm)[1], myPos.x, myPos.y)
cb('ok')
end)
- ESX
- QBCore
Først skal vi have fat i alle de jobs som er sat op i qs-smartphone og sat dem ind i Config.jobs i omik_callist/config.lua
Gå ind i mappen
qs-smartphoneog find filenqs-smartphone/config/config.luaFind linjen hvor der står
Config.JobsNu skal du kopiere alle jobs som står først i rækken (dem som er markeret på billedet under)

- Sæt nu de kopierede jobs ind i
Config.jobsiomik_callist/config.luadet skal se ud som dette:
Config.jobs = {
"police",
"ambulance",
"mechanic",
-- osv... (husk , efter hvert job)
}
Den her phone er lidt speciel så det kræver lidt fuskeri for at få det til at virke
Vi bliver nødt til at aflytte samtalen mellem telefonens UI og dens backend kode, så vi skal have sat noget kode ind i en fil, som kan sende et opkald afsted når den modtager det den lytter efter
Gå ind i mappen
qs-smartphone/clientog lav en ny fil med navnetomik_callist.luaÅben den nye fil og kopier alt koden herunder ind i den
RegisterNUICallback("SendNewMessage", function(data, cb) -- Når der bliver sendt en ny besked så checker koden om det er en besked til et job, hvis det er, så opretter den et opkald i opkaldslisten
local coords = GetEntityCoords(PlayerPedId(), false)
for key, value in pairs(Config.Jobs) do -- check om telefonnummeret er et job
if data.phone == value.job then
TriggerServerEvent("omik_callist:newCall", nil, data.message, data.phone, coords.xy)
break -- stop når den har sendt et opkald afsted
end
end
end)
Det er også meget vigtigt at vi får tilføjet den fil vi lige har oprettet til fxmanifest.lua
- Åben filen
fxmanifest.luaog tilføjclient/omik_callist.luatil listen (den skal stå som vist nedenfor)
client_scripts {
'config/config.lua',
'config/config_framework.lua',
'client/functions_framework.lua',
'client/omik_callist.lua', -- tilføj denne linje HER
'client/main.lua',
'client/uber.lua',
'client/photo.lua',
'client/rentel.lua',
'client/valet.lua',
'client/discord.lua',
'client/room_creation.lua',
'client/business.lua',
'client/pincode.lua',
'config/config_discord.lua',
'config/config_vehicles.lua',
'config/config_pincode.lua',
'config/config_animations.lua',
'config/config_rentel.lua',
'config/config_uber.lua',
'config/config_client.lua',
'config/config_radio.lua',
'config/config_calls_client.lua',
'config/config_invoices_client.lua',
'config/config_business.lua',
'config/translations.lua',
}
Nu burde den sende et opkald når der sendes en besked til et job igennem telefonen
Først skal vi have fat i alle de jobs som er sat op i qs-smartphone og sat dem ind i Config.jobs i omik_callist/config.lua
Gå ind i mappen
qs-smartphoneog find filenqs-smartphone/config/config.luaFind linjen hvor der står
Config.JobsNu skal du kopiere alle jobs som står først i rækken (dem som er markeret på billedet under)

- Sæt nu de kopierede jobs ind i
Config.jobsiomik_callist/config.luadet skal se ud som dette:
Config.jobs = {
"police",
"ambulance",
"mechanic",
-- osv... (husk , efter hvert job)
}
Den her phone er lidt speciel så det kræver lidt fuskeri for at få det til at virke
Vi bliver nødt til at aflytte samtalen mellem telefonens UI og dens backend kode, så vi skal have sat noget kode ind i en fil, som kan sende et opkald afsted når den modtager det den lytter efter
Gå ind i mappen
qs-smartphone/clientog lav en ny fil med navnetomik_callist.luaÅben den nye fil og kopier alt koden herunder ind i den
RegisterNUICallback("SendNewMessage", function(data, cb) -- Når der bliver sendt en ny besked så checker koden om det er en besked til et job, hvis det er, så opretter den et opkald i opkaldslisten
local coords = GetEntityCoords(PlayerPedId(), false)
for key, value in pairs(Config.Jobs) do -- check om telefonnummeret er et job
if data.phone == value.job then
TriggerServerEvent("omik_callist:newCall", nil, data.message, data.phone, coords.xy)
break -- stop når den har sendt et opkald afsted
end
end
end)
Det er også meget vigtigt at vi får tilføjet den fil vi lige har oprettet til fxmanifest.lua
- Åben filen
fxmanifest.luaog tilføjclient/omik_callist.luatil listen (den skal stå som vist nedenfor)
client_scripts {
'config/config.lua',
'config/config_framework.lua',
'client/functions_framework.lua',
'client/omik_callist.lua', -- tilføj denne linje HER
'client/main.lua',
'client/uber.lua',
'client/photo.lua',
'client/rentel.lua',
'client/valet.lua',
'client/discord.lua',
'client/room_creation.lua',
'client/business.lua',
'client/pincode.lua',
'config/config_discord.lua',
'config/config_vehicles.lua',
'config/config_pincode.lua',
'config/config_animations.lua',
'config/config_rentel.lua',
'config/config_uber.lua',
'config/config_client.lua',
'config/config_radio.lua',
'config/config_calls_client.lua',
'config/config_invoices_client.lua',
'config/config_business.lua',
'config/translations.lua',
}
Nu burde den sende et opkald når der sendes en besked til et job igennem telefonen
- ESX
Jeg har undersøgt qbus-phone og jeg kan desværre ikke se en måde at registrere når spillere skriver til politiet
Du kan dog registrere opkald på en anden måde følg guiden
Ambulance
Åben mappen
esx_ambulancejobog gå ind i filenserver/main.luaFind linjen
RegisterNetEvent('esx_ambulancejob:onPlayerDistress')Linje 78Så scroller du ned til linjen
local source = sourceLinje 80
Efter linjen så sætter du det markerede ind, så skulle lægerne gerne modtage beskeder når en ems alert sendes
RegisterNetEvent('esx_ambulancejob:onPlayerDistress')
AddEventHandler('esx_ambulancejob:onPlayerDistress', function()
local source = source
local xPlayer = ESX.GetPlayerFromId(source)
local coords = xPlayer.getCoords()
exports["omik_callist"]:newCall(0, "En bevidstløs person er blevet fundet", "ambulance", coords.xy) -- src = 0 for at der står "Ukendt" på opkaldslisten
if deadPlayers[source] then
deadPlayers[source] = 'distress'
local Ambulance = ESX.GetExtendedPlayers("job", "ambulance")
for _, xPlayer in pairs(Ambulance) do
TriggerClientEvent('esx_ambulancejob:PlayerDistressed', xPlayer.source, source)
end
end
end)
Det er desværre ikke lykkedes mig at finde en måde at registrere opkald og sende dem til politiet via telefonen.
Har du en måde det kan gøres på, så hører jeg gerne fra dig Kontak OMikkel
- ESX
- QBCore
Jobs
For at modtage opkald fra lb-phone, så skal du have alle jobs fra lb-phone/config/config.lua
Gå ind i
lb-phone/config/config.luaog scroll ned til"Config.Companies.Services"Så kopiere du alle jobs som set på billedet nedenfor indtil der ikke er flere - De skal ind i
omik_callist/config.luaunderConfig.jobs

- Nu skal
Config.jobsiomik_callist/config.luase ud som nedenfor
Config.jobs = {
"police",
-- osv... (husk , efter hvert job)
}
Send opkald
Gå ind i
lb-phone/server/apps/framework/services.luaGå ned til
linje 67, hvor du tilføjer det markerede:

local x, y
if isContacter then
local coords = GetEntityCoords(GetPlayerPed(source))
x = coords.x
y = coords.y
exports["omik_callist"]:newCall(source, message, company, coords.x, coords.y)
end
Jobs
For at modtage opkald fra lb-phone, så skal du have alle jobs fra lb-phone/config/config.lua
Gå ind i
lb-phone/config/config.luaog scroll ned til"Config.Companies.Services"Så kopiere du alle jobs som set på billedet nedenfor indtil der ikke er flere - De skal ind i
omik_callist/config.luaunderConfig.jobs

- Nu skal
Config.jobsiomik_callist/config.luase ud som nedenfor
Config.jobs = {
"police",
-- osv... (husk , efter hvert job)
}
Send opkald
Gå ind i
lb-phone/server/apps/framework/services.luaGå ned til
linje 67, hvor du tilføjer det markerede:

local x, y
if isContacter then
local coords = GetEntityCoords(GetPlayerPed(source))
x = coords.x
y = coords.y
exports["omik_callist"]:newCall(source, message, company, coords.x, coords.y)
end
Jobs
NPWD kan kun sende opkald til jobs som er i omik_callist/config.lua under Config.jobs
Du kan ændre jobs i omik_callist/config.lua under Config.jobs
Config.jobs = {
"Police",
"Ambulance",
-- osv... (husk , efter hvert job)
}
Send opkald
For at vi kan sende opkald fra NPWD, så skal der laves en fil i npwd der hedder omik_callist.lua
Ideen er at denne skal lytte efter eventet npwd:sendMessage og så sende det videre til omik_callist hvis det er et job som er i omik_callist/config.lua
- Tilføj koden nedenfor til
npwd/omik_callist.lua
RegisterNetEvent("npwd:sendMessage")
AddEventHandler("npwd:sendMessage", function(_, data)
local callistConfig = exports["omik_callist"]:Config()
for number in string.gmatch(data.conversationList, "[^+]+") do
for _, job in pairs(callistConfig.jobs) do
if job == number then
local playerCoords = GetEntityCoords(GetPlayerPed(source))
exports["omik_callist"]:newCall(source, data.message, number, playerCoords.xy)
break
end
end
end
end)
- Tilføj
omik_callist.luatilfxmanifest.luainpwd
...
server_script({
...
"omik_callist.lua"
})
...