local function CustomAlert(data) local coords = data.coords or vec3(0.0, 0.0, 0.0) local gender = GetPlayerGender() if not data.gender then gender = nil end local dispatchData = { message = data.message or "", -- Title of the alert codeName = data.dispatchCode or "NONE", -- Unique name for each alert code = data.code or '10-80', -- Code that is displayed before the title icon = data.icon or 'fas fa-question', -- Icon that is displaed after the title priority = data.priority or 2, -- Changes color of the alert ( 1 = red, 2 = default ) coords = coords, -- Coords of the player gender = gender, -- Gender of the player street = GetStreetAndZone(coords), -- Street of the player camId = data.camId or nil, -- Cam ID ( for heists ) color = data.firstColor or nil, -- Color of the vehicle callsign = data.callsign or nil, -- Callsigns name = data.name or nil, -- Name of either officer/ems or a player vehicle = data.model or nil, -- Vehicle name plate = data.plate or nil, -- Vehicle plate alertTime = data.alertTime or nil, -- How long it stays on the screen in seconds doorCount = data.doorCount or nil, -- How many doors on vehicle automaticGunfire = data.automaticGunfire or false, -- Automatic Gun or not alert = { radius = data.radius or 0, -- Radius around the blip sprite = data.sprite or 1, -- Sprite of the blip color = data.color or 1, -- Color of the blip scale = data.scale or 0.5, -- Scale of the blip length = data.length or 2, -- How long it stays on the map sound = data.sound or "Lose_1st", -- Alert sound sound2 = data.sound2 or "GTAO_FM_Events_Soundset", -- Alert sound offset = data.offset or false, -- Blip / radius offset flash = data.flash or false -- Blip flash }, jobs = data.jobs or { 'police' }, } TriggerServerEvent('ps-dispatch:server:notify', dispatchData) end exports('CustomAlert', CustomAlert) local function VehicleTheft() local coords = GetEntityCoords(cache.ped) local vehicle = GetVehicleData(cache.vehicle) local dispatchData = { message = locale('vehicletheft'), codeName = 'vehicletheft', code = '10-35', icon = 'fas fa-car-burst', priority = 2, coords = coords, street = GetStreetAndZone(coords), heading = GetPlayerHeading(), vehicle = vehicle.name, plate = vehicle.plate, color = vehicle.color, class = vehicle.class, doors = vehicle.doors, alertTime = nil, jobs = { 'police' } } TriggerServerEvent('ps-dispatch:server:notify', dispatchData) end exports('VehicleTheft', VehicleTheft) local function Shooting() local coords = GetEntityCoords(cache.ped) local dispatchData = { message = locale('shooting'), codeName = 'shooting', code = '10-11', icon = 'fas fa-gun', priority = 2, coords = coords, street = GetStreetAndZone(coords), gender = GetPlayerGender(), weapon = GetWeaponName(), alertTime = nil, jobs = { 'police' } } TriggerServerEvent('ps-dispatch:server:notify', dispatchData) end exports('Shooting', Shooting) local function Hunting() local coords = GetEntityCoords(cache.ped) local dispatchData = { message = locale('hunting'), codeName = 'hunting', code = '10-13', icon = 'fas fa-gun', priority = 2, weapon = GetWeaponName(), coords = coords, gender = GetPlayerGender(), street = GetStreetAndZone(coords), alertTime = nil, jobs = { 'police' } } TriggerServerEvent('ps-dispatch:server:notify', dispatchData) end exports('Hunting', Hunting) local function VehicleShooting() local coords = GetEntityCoords(cache.ped) local vehicle = GetVehicleData(cache.vehicle) local dispatchData = { message = locale('vehicleshots'), codeName = 'vehicleshots', code = '10-60', icon = 'fas fa-gun', priority = 2, coords = coords, weapon = GetWeaponName(), street = GetStreetAndZone(coords), heading = GetPlayerHeading(), vehicle = vehicle.name, plate = vehicle.plate, color = vehicle.color, class = vehicle.class, doors = vehicle.doors, alertTime = nil, jobs = { 'police' } } TriggerServerEvent('ps-dispatch:server:notify', dispatchData) end exports('VehicleShooting', VehicleShooting) local function SpeedingVehicle() local coords = GetEntityCoords(cache.ped) local vehicle = GetVehicleData(cache.vehicle) local dispatchData = { message = locale('speeding'), codeName = 'speeding', code = '10-11', icon = 'fas fa-car', priority = 2, coords = coords, street = GetStreetAndZone(coords), heading = GetPlayerHeading(), vehicle = vehicle.name, plate = vehicle.plate, color = vehicle.color, class = vehicle.class, doors = vehicle.doors, alertTime = nil, jobs = { 'police' } } TriggerServerEvent('ps-dispatch:server:notify', dispatchData) end exports('SpeedingVehicle', SpeedingVehicle) local function Fight() local coords = GetEntityCoords(cache.ped) local dispatchData = { message = locale('melee'), codeName = 'fight', code = '10-10', icon = 'fas fa-hand-fist', priority = 2, coords = coords, gender = GetPlayerGender(), street = GetStreetAndZone(coords), alertTime = nil, jobs = { 'police' } } TriggerServerEvent('ps-dispatch:server:notify', dispatchData) end exports('Fight', Fight) local function PrisonBreak() local coords = GetEntityCoords(cache.ped) local dispatchData = { message = locale('prisonbreak'), codeName = 'prisonbreak', code = '10-90', icon = 'fas fa-vault', priority = 2, coords = coords, gender = GetPlayerGender(), street = GetStreetAndZone(coords), alertTime = nil, jobs = { 'police' } } TriggerServerEvent('ps-dispatch:server:notify', dispatchData) end exports('PrisonBreak', PrisonBreak) local function StoreRobbery(camId) local coords = GetEntityCoords(cache.ped) local dispatchData = { message = locale('storerobbery'), codeName = 'storerobbery', code = '10-90', icon = 'fas fa-store', priority = 2, coords = coords, gender = GetPlayerGender(), street = GetStreetAndZone(coords), camId = camId, alertTime = nil, jobs = { 'police' } } TriggerServerEvent('ps-dispatch:server:notify', dispatchData) end exports('StoreRobbery', StoreRobbery) local function FleecaBankRobbery(camId) local coords = GetEntityCoords(cache.ped) local dispatchData = { message = locale('fleecabank'), codeName = 'bankrobbery', code = '10-90', icon = 'fas fa-vault', priority = 2, coords = coords, gender = GetPlayerGender(), street = GetStreetAndZone(coords), camId = camId, alertTime = nil, jobs = { 'police' } } TriggerServerEvent('ps-dispatch:server:notify', dispatchData) end exports('FleecaBankRobbery', FleecaBankRobbery) local function PaletoBankRobbery(camId) local coords = GetEntityCoords(cache.ped) local dispatchData = { message = locale('paletobank'), codeName = 'paletobankrobbery', code = '10-90', icon = 'fas fa-vault', priority = 2, coords = coords, gender = GetPlayerGender(), street = GetStreetAndZone(coords), camId = camId, alertTime = nil, jobs = { 'police' } } TriggerServerEvent('ps-dispatch:server:notify', dispatchData) end exports('PaletoBankRobbery', PaletoBankRobbery) local function PacificBankRobbery(camId) local coords = GetEntityCoords(cache.ped) local dispatchData = { message = locale('pacificbank'), codeName = 'pacificbankrobbery', code = '10-90', icon = 'fas fa-vault', priority = 2, coords = coords, gender = GetPlayerGender(), street = GetStreetAndZone(coords), camId = camId, alertTime = nil, jobs = { 'police' } } TriggerServerEvent('ps-dispatch:server:notify', dispatchData) end exports('PacificBankRobbery', PacificBankRobbery) local function VangelicoRobbery(camId) local coords = GetEntityCoords(cache.ped) local dispatchData = { message = locale('vangelico'), codeName = 'vangelicorobbery', code = '10-90', icon = 'fas fa-gem', priority = 2, coords = coords, gender = GetPlayerGender(), street = GetStreetAndZone(coords), camId = camId, alertTime = nil, jobs = { 'police' } } TriggerServerEvent('ps-dispatch:server:notify', dispatchData) end exports('VangelicoRobbery', VangelicoRobbery) local function HouseRobbery() local coords = GetEntityCoords(cache.ped) local dispatchData = { message = locale('houserobbery'), codeName = 'houserobbery', code = '10-90', icon = 'fas fa-house', priority = 2, coords = coords, gender = GetPlayerGender(), street = GetStreetAndZone(coords), alertTime = nil, jobs = { 'police' } } TriggerServerEvent('ps-dispatch:server:notify', dispatchData) end exports('HouseRobbery', HouseRobbery) local function YachtHeist() local coords = GetEntityCoords(cache.ped) local dispatchData = { message = locale('yachtheist'), codeName = 'yachtheist', code = '10-65', icon = 'fas fa-house', priority = 2, coords = coords, gender = GetPlayerGender(), street = GetStreetAndZone(coords), alertTime = nil, jobs = { 'police' } } TriggerServerEvent('ps-dispatch:server:notify', dispatchData) end exports('YachtHeist', YachtHeist) local function DrugSale() local coords = GetEntityCoords(cache.ped) local dispatchData = { message = locale('drugsell'), codeName = 'suspicioushandoff', code = '10-13', icon = 'fas fa-tablets', priority = 2, coords = coords, gender = GetPlayerGender(), street = GetStreetAndZone(coords), alertTime = nil, jobs = { 'police' } } TriggerServerEvent('ps-dispatch:server:notify', dispatchData) end exports('DrugSale', DrugSale) local function SuspiciousActivity() local coords = GetEntityCoords(cache.ped) local dispatchData = { message = locale('susactivity'), codeName = 'susactivity', code = '10-66', icon = 'fas fa-tablets', priority = 2, coords = coords, gender = GetPlayerGender(), street = GetStreetAndZone(coords), alertTime = nil, jobs = { 'police' } } TriggerServerEvent('ps-dispatch:server:notify', dispatchData) end exports('SuspiciousActivity', SuspiciousActivity) local function CarJacking(vehicle) local coords = GetEntityCoords(cache.ped) local vehicle = GetVehicleData(vehicle) local dispatchData = { message = locale('carjacking'), codeName = 'carjack', code = '10-35', icon = 'fas fa-car', priority = 2, coords = coords, street = GetStreetAndZone(coords), heading = GetPlayerHeading(), vehicle = vehicle.name, plate = vehicle.plate, color = vehicle.color, class = vehicle.class, doors = vehicle.doors, alertTime = nil, jobs = { 'police' } } TriggerServerEvent('ps-dispatch:server:notify', dispatchData) end exports('CarJacking', CarJacking) local function InjuriedPerson() local coords = GetEntityCoords(cache.ped) local dispatchData = { message = locale('persondown'), codeName = 'civdown', code = '10-69', icon = 'fas fa-face-dizzy', priority = 1, coords = coords, gender = GetPlayerGender(), street = GetStreetAndZone(coords), alertTime = 10, jobs = { 'ems' } } TriggerServerEvent('ps-dispatch:server:notify', dispatchData) end exports('InjuriedPerson', InjuriedPerson) local function DeceasedPerson() local coords = GetEntityCoords(cache.ped) local dispatchData = { message = locale('civbled'), codeName = 'civdead', code = '10-69', icon = 'fas fa-skull', priority = 1, coords = coords, gender = GetPlayerGender(), street = GetStreetAndZone(coords), alertTime = 10, jobs = { 'ems' } } TriggerServerEvent('ps-dispatch:server:notify', dispatchData) end exports('DeceasedPerson', DeceasedPerson) local function OfficerDown() local coords = GetEntityCoords(cache.ped) local dispatchData = { message = locale('officerdown'), codeName = 'officerdown', code = '10-99', icon = 'fas fa-skull', priority = 1, coords = coords, gender = GetPlayerGender(), street = GetStreetAndZone(coords), name = PlayerData.charinfo.firstname .. " " .. PlayerData.charinfo.lastname, callsign = PlayerData.metadata["callsign"], alertTime = 10, jobs = { 'ems', 'leo' } } TriggerServerEvent('ps-dispatch:server:notify', dispatchData) end exports('OfficerDown', OfficerDown) RegisterNetEvent("ps-dispatch:client:officerdown", function() OfficerDown() end) local function OfficerBackup() local coords = GetEntityCoords(cache.ped) local dispatchData = { message = locale('officerbackup'), codeName = 'officerbackup', code = '10-32', icon = 'fas fa-skull', priority = 1, coords = coords, gender = GetPlayerGender(), street = GetStreetAndZone(coords), name = PlayerData.charinfo.firstname .. " " .. PlayerData.charinfo.lastname, callsign = PlayerData.metadata["callsign"], alertTime = 10, jobs = { 'ems', 'leo' } } TriggerServerEvent('ps-dispatch:server:notify', dispatchData) end exports('OfficerBackup', OfficerBackup) RegisterNetEvent("ps-dispatch:client:officerbackup", function() OfficerBackup() end) local function OfficerInDistress() local coords = GetEntityCoords(cache.ped) local dispatchData = { message = locale('officerdistress'), codeName = 'officerdistress', code = '10-99', icon = 'fas fa-skull', priority = 1, coords = coords, gender = GetPlayerGender(), street = GetStreetAndZone(coords), name = PlayerData.charinfo.firstname .. " " .. PlayerData.charinfo.lastname, callsign = PlayerData.metadata["callsign"], alertTime = 10, jobs = { 'ems', 'leo' } } TriggerServerEvent('ps-dispatch:server:notify', dispatchData) end exports('OfficerInDistress', OfficerInDistress) local function EmsDown() local coords = GetEntityCoords(cache.ped) local dispatchData = { message = locale('emsdown'), codeName = 'emsdown', code = '10-99', icon = 'fas fa-skull', priority = 1, coords = coords, gender = GetPlayerGender(), street = GetStreetAndZone(coords), name = PlayerData.charinfo.firstname .. " " .. PlayerData.charinfo.lastname, callsign = PlayerData.metadata["callsign"], alertTime = 10, jobs = { 'ems', 'leo' } } TriggerServerEvent('ps-dispatch:server:notify', dispatchData) end exports('EmsDown', EmsDown) RegisterNetEvent("ps-dispatch:client:emsdown", function() EmsDown() end) local function Explosion() local coords = GetEntityCoords(cache.ped) local dispatchData = { message = locale('explosion'), codeName = 'explosion', code = '10-80', icon = 'fas fa-fire', priority = 2, coords = coords, gender = GetPlayerGender(), street = GetStreetAndZone(coords), alertTime = nil, jobs = { 'police' } } TriggerServerEvent('ps-dispatch:server:notify', dispatchData) end exports('Explosion', Explosion) local function PhoneCall(message, anonymous, job, type) local coords = GetEntityCoords(cache.ped) if IsCallAllowed(message) then PhoneAnimation() local dispatchData = { message = anonymous and locale('anon_call') or locale('call'), codeName = type == '311' and '311call' or '911call', code = type, icon = 'fas fa-phone', priority = 2, coords = coords, name = anonymous and locale('anon') or (PlayerData.charinfo.firstname .. " " .. PlayerData.charinfo.lastname), number = anonymous and locale('hidden_number') or PlayerData.charinfo.phone, information = message, street = GetStreetAndZone(coords), alertTime = nil, jobs = job } TriggerServerEvent('ps-dispatch:server:notify', dispatchData) end end --- @param data string -- Message --- @param type string -- What type of emergency --- @param anonymous boolean -- Is the call anonymous local pslastaction = 0 RegisterNetEvent('ps-dispatch:client:sendEmergencyMsg', function(data, type, anonymous) local year, month , day , hour, minute, second = GetUtcTime() local idtrack = tonumber(hour..minute..second) local spamdetek = idtrack - pslastaction if spamdetek < 0 then spamdetek = Config.AlertCommandCooldown end if spamdetek <= Config.AlertCommandCooldown and pslastaction > 0 then pslastaction = idtrack QBCore.Functions.Notify("Command on cooldown", "error") else pslastaction = idtrack local jobs = { ['911'] = { 'police' }, ['311'] = { 'ems' } } PhoneCall(data, anonymous, jobs[type], type) end end) local function ArtGalleryRobbery() local coords = GetEntityCoords(cache.ped) local dispatchData = { message = locale('artgalleryrobbery'), codeName = 'artgalleryrobbery', code = '10-90', icon = 'fas fa-brush', priority = 2, coords = coords, gender = GetPlayerGender(), street = GetStreetAndZone(coords), alertTime = nil, jobs = { 'police' } } TriggerServerEvent('ps-dispatch:server:notify', dispatchData) end exports('ArtGalleryRobbery', ArtGalleryRobbery) local function HumaneRobbery() local coords = GetEntityCoords(cache.ped) local dispatchData = { message = locale('humanelabsrobbery'), codeName = 'humanelabsrobbery', code = '10-90', icon = 'fas fa-flask-vial', priority = 2, coords = coords, gender = GetPlayerGender(), street = GetStreetAndZone(coords), alertTime = nil, jobs = { 'police' } } TriggerServerEvent('ps-dispatch:server:notify', dispatchData) end exports('HumaneRobbery', HumaneRobbery) local function TrainRobbery() local coords = GetEntityCoords(cache.ped) local dispatchData = { message = locale('trainrobbery'), codeName = 'trainrobbery', code = '10-90', icon = 'fas fa-train', priority = 2, coords = coords, gender = GetPlayerGender(), street = GetStreetAndZone(coords), alertTime = nil, jobs = { 'police' } } TriggerServerEvent('ps-dispatch:server:notify', dispatchData) end exports('TrainRobbery', TrainRobbery) local function VanRobbery() local coords = GetEntityCoords(cache.ped) local dispatchData = { message = locale('vanrobbery'), codeName = 'vanrobbery', code = '10-90', icon = 'fas fa-van-shuttle', priority = 2, coords = coords, gender = GetPlayerGender(), street = GetStreetAndZone(coords), alertTime = nil, jobs = { 'police' } } TriggerServerEvent('ps-dispatch:server:notify', dispatchData) end exports('VanRobbery', VanRobbery) local function UndergroundRobbery() local coords = GetEntityCoords(cache.ped) local dispatchData = { message = locale('undergroundrobbery'), codeName = 'undergroundrobbery', code = '10-90', icon = 'fas fa-person-rays', priority = 2, coords = coords, gender = GetPlayerGender(), street = GetStreetAndZone(coords), alertTime = nil, jobs = { 'police' } } TriggerServerEvent('ps-dispatch:server:notify', dispatchData) end exports('UndergroundRobbery', UndergroundRobbery) local function DrugBoatRobbery() local coords = GetEntityCoords(cache.ped) local dispatchData = { message = locale('drugboatrobbery'), codeName = 'drugboatrobbery', code = '10-65', icon = 'fas fa-ship', priority = 2, coords = coords, gender = GetPlayerGender(), street = GetStreetAndZone(coords), alertTime = nil, jobs = { 'police' } } TriggerServerEvent('ps-dispatch:server:notify', dispatchData) end exports('DrugBoatRobbery', DrugBoatRobbery) local function UnionRobbery() local coords = GetEntityCoords(cache.ped) local dispatchData = { message = locale('unionrobbery'), codeName = 'unionrobbery', code = '10-90', icon = 'fas fa-truck-field', priority = 2, coords = coords, gender = GetPlayerGender(), street = GetStreetAndZone(coords), alertTime = nil, jobs = { 'police' } } TriggerServerEvent('ps-dispatch:server:notify', dispatchData) end exports('UnionRobbery', UnionRobbery) local function CarBoosting(vehicle) local coords = GetEntityCoords(cache.ped) local vehicle = GetVehicleData(vehicle or cache.vehicle) local dispatchData = { message = locale('carboosting'), codeName = 'carboosting', code = '10-50', icon = 'fas fa-car', priority = 2, coords = coords, street = GetStreetAndZone(coords), heading = GetPlayerHeading(), vehicle = vehicle.name, plate = vehicle.plate, color = vehicle.color, class = vehicle.class, doors = vehicle.doors, alertTime = nil, jobs = { 'police' } } TriggerServerEvent('ps-dispatch:server:notify', dispatchData) end exports('CarBoosting', CarBoosting) local function SignRobbery() local coords = GetEntityCoords(cache.ped) local dispatchData = { message = locale('signrobbery'), codeName = 'signrobbery', code = '10-10', icon = 'fab fa-artstation', priority = 2, coords = coords, gender = GetPlayerGender(), street = GetStreetAndZone(coords), alertTime = nil, jobs = { 'leo'} } TriggerServerEvent('ps-dispatch:server:notify', dispatchData) end exports('SignRobbery', SignRobbery) local function BobcatSecurityHeist() local coords = GetEntityCoords(cache.ped) local dispatchData = { message = locale('bobcatsecurity'), codeName = 'bobcatsecurityheist', code = '10-90', icon = 'fa-solid fa-building-shield', priority = 2, coords = coords, gender = GetPlayerGender(), street = GetStreetAndZone(coords), alertTime = nil, jobs = { 'leo'} } TriggerServerEvent('ps-dispatch:server:notify', dispatchData) end exports('BobcatSecurityHeist', BobcatSecurityHeist) local function MagnetFishing(data) local coords = data.coords local gender = data.gender or GetPlayerGender() local streetName = data.streetName or GetStreetAndZone(coords) local itemName = data.itemName local message = "^3Verdächtige Aktivität^7: Person beim Magnetfischen" local description = "Eine " .. gender .. " Person wurde beim Magnetfischen gesehen." local priority = 2 local blipSprite = 68 local blipColour = 5 local icon = 'fas fa-magnet' -- Spezifische Beschreibungen für bestimmte Items if itemName == "old_gun" then description = "Eine " .. gender .. " Person wurde beim Magnetfischen gesehen und hat möglicherweise eine Waffe gefunden!" priority = 3 blipColour = 1 elseif itemName == "safe" then description = "Eine " .. gender .. " Person wurde beim Magnetfischen gesehen und hat einen Tresor geborgen. Könnte gestohlen sein!" priority = 3 blipColour = 1 elseif itemName == "old_ammunition" then description = "Eine " .. gender .. " Person wurde beim Magnetfischen gesehen und hat Munition gefunden!" priority = 2 blipColour = 1 end local dispatchData = { message = message, codeName = 'magnetfishing', code = '10-66', icon = icon, priority = priority, coords = coords, gender = gender, street = streetName, alertTime = 5000, blipSprite = blipSprite, blipColour = blipColour, blipScale = 1.0, blipLength = 2 * 60000, -- 2 Minuten sound = 'Lose', soundName = 'GTAO_FM_Events_Soundset', infoM = description, jobs = { 'police' } } TriggerServerEvent('ps-dispatch:server:notify', dispatchData) end exports('MagnetFishing', MagnetFishing)