Archived
Private
Public Access
1
0

Update 19.11.2022

This commit is contained in:
2022-11-19 14:12:22 +01:00
parent 08ddca2211
commit 771f58073f
322 changed files with 50685 additions and 2 deletions

View File

@@ -0,0 +1,2 @@
# Auto detect text files and perform LF normalization
* text=auto

View File

@@ -0,0 +1,35 @@
RegisterNetEvent('esx_addons_gcphone:call')
AddEventHandler('esx_addons_gcphone:call', function(data)
local playerPed = GetPlayerPed(-1)
local coords = GetEntityCoords(playerPed)
local message = data.message
local number = data.number
if message == nil then
DisplayOnscreenKeyboard(1, "FMMC_MPM_NA", "", "", "", "", "", 200)
while (UpdateOnscreenKeyboard() == 0) do
DisableAllControlActions(0);
Wait(0);
end
if (GetOnscreenKeyboardResult()) then
message = GetOnscreenKeyboardResult()
end
end
if message ~= nil and message ~= "" then
TriggerServerEvent('esx_addons_gcphone:startCall', number, message, {
x = coords.x,
y = coords.y,
z = coords.z
})
end
end)
RegisterNetEvent('esx_addons_gcphone:call_taxi')
AddEventHandler('esx_addons_gcphone:call_taxi', function(data)
local playerPed = GetPlayerPed(-1)
local coords = GetEntityCoords(playerPed)
TriggerServerEvent('esx_phone:send', '555-5555', "Eine Person benötigt ein Taxi", false, {
x = coords.x,
y = coords.y,
z = coords.z
})
end)

View File

@@ -0,0 +1,22 @@
fx_version 'adamant'
game 'gta5'
client_script 'client.lua'
server_script {
'@mysql-async/lib/MySQL.lua',
'server.lua'
}
-- {
-- "display": "Police",
-- "subMenu": [
-- {
-- "title": "Envoyer un message",
-- "eventName": "esx_addons_gcphone:call",
-- "type": {
-- "number": "police"
-- }}
-- ]
-- }

View File

@@ -0,0 +1,162 @@
ESX = nil
-- local PhoneNumbers = {}
local PhoneNumbers = {
['912'] = {
type = "ambulance",
sources = {}
},
['911'] = {
type = "police",
sources = {}
},
['555-5555'] = {
type = "taxi",
sources = {}
}
}
TriggerEvent('esx:getSharedObject', function(obj)
ESX = obj
end)
function notifyAlertSMS (number, alert, listSrc)
if PhoneNumbers[number] ~= nil then
local mess = '#' .. alert.numero .. ' : ' .. alert.message
if alert.coords ~= nil then
mess = mess .. ' ' .. alert.coords.x .. ', ' .. alert.coords.y
end
for k, _ in pairs(listSrc) do
getPhoneNumber(tonumber(k), function (n)
if n ~= nil then
TriggerEvent('gcPhone:_internalAddMessage', number, n, mess, 0, function (smsMess)
TriggerClientEvent("gcPhone:receiveMessage", tonumber(k), smsMess, alert.numero)
end)
end
end)
end
end
end
AddEventHandler('esx_phone:registerNumber', function(number, type, sharePos, hasDispatch, hideNumber, hidePosIfAnon)
print('= INFO = Enregistrement du telephone ' .. number .. ' => ' .. type)
local hideNumber = hideNumber or false
local hidePosIfAnon = hidePosIfAnon or false
PhoneNumbers[number] = {
type = type,
sources = {},
alerts = {}
}
end)
function checkJob(current)
if current == 'ambulance' then current = '912' end
if current == 'police' then current = '911' end
if current == 'taxi' then current = '555-5555' end
return current;
end
AddEventHandler('esx:setJob', function(source, job, lastJob)
local current = checkJob(job.name);
local last = checkJob(lastJob.name);
if PhoneNumbers[last] ~= nil then
TriggerEvent('esx_addons_gcphone:removeSource', last, source)
end
if PhoneNumbers[current] ~= nil then
TriggerEvent('esx_addons_gcphone:addSource', current, source)
end
end)
AddEventHandler('esx_addons_gcphone:addSource', function(number, source)
PhoneNumbers[number].sources[tostring(source)] = true
end)
AddEventHandler('esx_addons_gcphone:removeSource', function(number, source)
PhoneNumbers[number].sources[tostring(source)] = nil
end)
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,
}, PhoneNumbers[number].sources)
end)
end
end)
RegisterServerEvent('esx_addons_gcphone:startCall')
AddEventHandler('esx_addons_gcphone:startCall', function (number, message, coords)
local source = source
if PhoneNumbers[number] ~= nil then
getPhoneNumber(source, function (phone)
notifyAlertSMS(number, {
message = message,
coords = coords,
numero = phone,
}, PhoneNumbers[number].sources)
end)
else
print('= WARNING = Appels sur un service non enregistre => numero : ' .. number)
end
end)
AddEventHandler('esx:playerLoaded', function(source)
local xPlayer = ESX.GetPlayerFromId(source)
MySQL.Async.fetchAll('SELECT * FROM users WHERE identifier = @identifier',{
['@identifier'] = xPlayer.identifier
}, function(result)
local phoneNumber = result[1].phone_number
xPlayer.set('phoneNumber', phoneNumber)
local job = checkJob(xPlayer.job.name);
if PhoneNumbers[job] ~= nil then
TriggerEvent('esx_addons_gcphone:addSource', job, source)
end
end)
end)
AddEventHandler('esx:playerDropped', function(source)
local source = source
local xPlayer = ESX.GetPlayerFromId(source)
if PhoneNumbers[xPlayer.job.name] ~= nil then
TriggerEvent('esx_addons_gcphone:removeSource', xPlayer.job.name, source)
end
end)
function getPhoneNumber (source, callback)
local xPlayer = ESX.GetPlayerFromId(source)
if xPlayer == nil then
callback(nil)
end
MySQL.Async.fetchAll('SELECT * FROM users WHERE identifier = @identifier',{
['@identifier'] = xPlayer.identifier
}, function(result)
callback(result[1].phone_number)
end)
end
RegisterServerEvent('esx_phone:send')
AddEventHandler('esx_phone:send', function(number, message, _, coords)
local source = source
if PhoneNumbers[number] ~= nil then
getPhoneNumber(source, function (phone)
notifyAlertSMS(number, {
message = message,
coords = coords,
numero = phone,
}, PhoneNumbers[number].sources)
end)
else
-- print('esx_phone:send | Appels sur un service non enregistre => numero : ' .. number)
end
end)