ed
|
@ -1 +0,0 @@
|
||||||
Please follow the instructions: https://docs.brutalscripts.com
|
|
|
@ -1,279 +0,0 @@
|
||||||
ESX = Core
|
|
||||||
QBCore = Core
|
|
||||||
|
|
||||||
-- Buy here: (4€+VAT) https://store.brutalscripts.com
|
|
||||||
function notification(title, text, time, type)
|
|
||||||
if Config.BrutalNotify then
|
|
||||||
exports['brutal_notify']:SendAlert(title, text, time, type)
|
|
||||||
else
|
|
||||||
-- Put here your own notify and set the Config.BrutalNotify to false
|
|
||||||
SetNotificationTextEntry("STRING")
|
|
||||||
AddTextComponentString(text)
|
|
||||||
DrawNotification(0,1)
|
|
||||||
|
|
||||||
-- Default ESX Notify:
|
|
||||||
--TriggerEvent('esx:showNotification', text)
|
|
||||||
|
|
||||||
-- Default QB Notify:
|
|
||||||
--TriggerEvent('QBCore:Notify', text, 'info', 5000)
|
|
||||||
|
|
||||||
-- OKOK Notify:
|
|
||||||
-- exports['okokNotify']:Alert(title, text, time, type, false)
|
|
||||||
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function TextUIFunction(type, text)
|
|
||||||
if type == 'open' then
|
|
||||||
if Config.TextUI:lower() == 'ox_lib' then
|
|
||||||
lib.showTextUI(text)
|
|
||||||
elseif Config.TextUI:lower() == 'okoktextui' then
|
|
||||||
exports['okokTextUI']:Open(text, 'darkblue', 'right')
|
|
||||||
elseif Config.TextUI:lower() == 'esxtextui' then
|
|
||||||
ESX.TextUI(text)
|
|
||||||
elseif Config.TextUI:lower() == 'qbdrawtext' then
|
|
||||||
exports['qb-core']:DrawText(text,'left')
|
|
||||||
elseif Config.TextUI:lower() == 'brutal_textui' then
|
|
||||||
exports['brutal_textui']:Open(text, "blue")
|
|
||||||
end
|
|
||||||
elseif type == 'hide' then
|
|
||||||
if Config.TextUI:lower() == 'ox_lib' then
|
|
||||||
lib.hideTextUI()
|
|
||||||
elseif Config.TextUI:lower() == 'okoktextui' then
|
|
||||||
exports['okokTextUI']:Close()
|
|
||||||
elseif Config.TextUI:lower() == 'esxtextui' then
|
|
||||||
ESX.HideUI()
|
|
||||||
elseif Config.TextUI:lower() == 'qbdrawtext' then
|
|
||||||
exports['qb-core']:HideText()
|
|
||||||
elseif Config.TextUI:lower() == 'brutal_textui' then
|
|
||||||
exports['brutal_textui']:Close()
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function InventoryOpenFunction(type, data)
|
|
||||||
if type == 'society' then
|
|
||||||
local job = data
|
|
||||||
local label = job:sub(1, 1):upper() .. job:sub(2):lower().." Stash"
|
|
||||||
|
|
||||||
if Config.Inventory:lower() == 'ox_inventory' then
|
|
||||||
exports.ox_inventory:openInventory('stash', {id = "stash_"..job})
|
|
||||||
elseif Config.Inventory:lower() == 'qb_inventory' then
|
|
||||||
if GetResourceState('qb-inventory') == "started" then
|
|
||||||
TriggerServerEvent("brutal_ambulancejob:qb-inventory:server:OpenInventory", "stash_"..job, {label = label, maxweight = 100000, slots = 100})
|
|
||||||
else
|
|
||||||
TriggerServerEvent("inventory:server:OpenInventory", "stash", "stash_"..job, {label = label, maxweight = 100000, slots = 100})
|
|
||||||
TriggerEvent("inventory:client:SetCurrentStash", "stash_"..job)
|
|
||||||
end
|
|
||||||
elseif Config.Inventory:lower() == 'quasar_inventory' then
|
|
||||||
TriggerServerEvent("inventory:server:OpenInventory", "stash", "stash_"..job, {label = label, maxweight = 100000, slots = 100})
|
|
||||||
TriggerEvent("inventory:client:SetCurrentStash", "stash_"..job)
|
|
||||||
elseif Config.Inventory:lower() == 'chezza_inventory' then
|
|
||||||
TriggerEvent("inventory:openInventory", {type = "stash", id = "stash_"..job, title = label, weight = 100000, delay = 100, save = true})
|
|
||||||
elseif Config.Inventory:lower() == 'core_inventory' then
|
|
||||||
TriggerServerEvent("core_inventory:server:openInventory", "stash_"..job, "big_storage")
|
|
||||||
elseif Config.Inventory:lower() == 'codem_inventory' then
|
|
||||||
TriggerServerEvent("inventory:server:OpenInventory", "stash", "stash_"..job, {label = label, maxweight = 100000, slots = 100})
|
|
||||||
elseif Config.Inventory:lower() == 'origen_inventory' then
|
|
||||||
exports.origen_inventory:openInventory("stash", "stash_"..job, {label = label, maxweight = 100000, slots = 100})
|
|
||||||
elseif Config.Inventory:lower() == 'ps-inventory' then
|
|
||||||
if GetResourceState('ps-inventory') == "started" then
|
|
||||||
TriggerServerEvent("ps-inventory:server:OpenInventory", "stash_"..job, {label = label, maxweight = 100000, slots = 100})
|
|
||||||
TriggerEvent("ps-inventory:client:SetCurrentStash", "stash_"..job)
|
|
||||||
else
|
|
||||||
TriggerServerEvent("inventory:server:OpenInventory", "stash", "stash_"..job, {label = label, maxweight = 100000, slots = 100})
|
|
||||||
TriggerEvent("inventory:client:SetCurrentStash", "stash_"..job)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function ProgressBarFunction(time, text)
|
|
||||||
if Config.ProgressBar:lower() == 'progressbars' then -- LINK: https://github.com/EthanPeacock/progressBars/releases/tag/1.0
|
|
||||||
exports['progressBars']:startUI(time, text)
|
|
||||||
elseif Config.ProgressBar:lower() == 'mythic_progbar' then -- LINK: https://github.com/HarryElSuzio/mythic_progbar
|
|
||||||
TriggerEvent("mythic_progbar:client:progress", {name = "policejobduty", duration = time, label = text, useWhileDead = false, canCancel = false})
|
|
||||||
elseif Config.ProgressBar:lower() == 'pogressbar' then -- LINK: https://github.com/SWRP-PUBLIC/pogressBar
|
|
||||||
exports['pogressBar']:drawBar(time, text)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function BossMenuFunction(job)
|
|
||||||
if Config['Core']:upper() == 'ESX' then
|
|
||||||
TriggerEvent('esx_society:openBossMenu', job, function(data) end, { wash = false })
|
|
||||||
elseif Config['Core']:upper() == 'QBCORE' then
|
|
||||||
TriggerEvent('qb-bossmenu:client:OpenMenu')
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
AddEventHandler('brutal_ambulancejob:client:onPlayerDeath', function()
|
|
||||||
-- this event run when the player died.
|
|
||||||
|
|
||||||
--exports['qs-smartphone']:canUsePhone(false)
|
|
||||||
--exports["lb-phone"]:ToggleDisabled(true)
|
|
||||||
end)
|
|
||||||
|
|
||||||
AddEventHandler('brutal_ambulancejob:revive', function()
|
|
||||||
-- this event run when the player revived.
|
|
||||||
|
|
||||||
--exports['qs-smartphone']:canUsePhone(true)
|
|
||||||
--exports["lb-phone"]:ToggleDisabled(false)
|
|
||||||
|
|
||||||
if Config['Core']:upper() == 'ESX' then
|
|
||||||
TriggerEvent('esx_basicneeds:resetStatus')
|
|
||||||
elseif Config['Core']:upper() == 'QBCORE' then
|
|
||||||
TriggerServerEvent("hospital:server:resetHungerThirst")
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
AddEventHandler('brutal_ambulancejob:server:heal', function()
|
|
||||||
-- this event run when the player healed.
|
|
||||||
|
|
||||||
if Config['Core']:upper() == 'ESX' then
|
|
||||||
TriggerEvent('esx_basicneeds:resetStatus')
|
|
||||||
elseif Config['Core']:upper() == 'QBCORE' then
|
|
||||||
TriggerServerEvent("hospital:server:resetHungerThirst")
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
RegisterNetEvent('txcl:heal', function()
|
|
||||||
TriggerEvent('brutal_ambulancejob:revive')
|
|
||||||
end)
|
|
||||||
|
|
||||||
RegisterNetEvent('brutal_ambulancejob:client:ReviveKeyPressed')
|
|
||||||
AddEventHandler('brutal_ambulancejob:client:ReviveKeyPressed', function()
|
|
||||||
-- this event runs when the player presses the get help button on the death screen
|
|
||||||
|
|
||||||
end)
|
|
||||||
|
|
||||||
function CustomMDT()
|
|
||||||
-- You can open another MDT here
|
|
||||||
end
|
|
||||||
|
|
||||||
function OpenCloakroomMenuEvent()
|
|
||||||
TriggerEvent('qb-clothing:client:openOutfitMenu')
|
|
||||||
end
|
|
||||||
|
|
||||||
function CitizenWear()
|
|
||||||
if Config['Core']:upper() == 'ESX' then
|
|
||||||
Core.TriggerServerCallback('esx_skin:getPlayerSkin', function(skin)
|
|
||||||
TriggerEvent('skinchanger:loadSkin', skin)
|
|
||||||
end)
|
|
||||||
elseif Config['Core']:upper() == 'QBCORE' then
|
|
||||||
TriggerServerEvent('qb-clothes:loadPlayerSkin')
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function setUniform(uniformTable)
|
|
||||||
if Config['Core']:upper() == 'ESX' then
|
|
||||||
TriggerEvent('skinchanger:getSkin', function(skin)
|
|
||||||
local uniform
|
|
||||||
if skin.sex == 0 then
|
|
||||||
uniform = uniformTable.male
|
|
||||||
else
|
|
||||||
uniform = uniformTable.female
|
|
||||||
end
|
|
||||||
|
|
||||||
local table = {}
|
|
||||||
|
|
||||||
for k,v in pairs(uniform) do
|
|
||||||
if k == 't-shirt' then
|
|
||||||
table.tshirt_1 = uniform['t-shirt'].item
|
|
||||||
table.tshirt_2 = uniform['t-shirt'].texture
|
|
||||||
elseif k == 'torso2' then
|
|
||||||
table.torso_1 = uniform['torso2'].item
|
|
||||||
table.torso_2 = uniform['torso2'].texture
|
|
||||||
elseif k == 'decals' then
|
|
||||||
table.decals_1 = uniform['decals'].item
|
|
||||||
table.decals_2 = uniform['decals'].texture
|
|
||||||
elseif k == 'arms' then
|
|
||||||
table.arms = uniform['arms'].item
|
|
||||||
elseif k == 'pants' then
|
|
||||||
table.pants_1 = uniform['pants'].item
|
|
||||||
table.pants_2 = uniform['pants'].texture
|
|
||||||
elseif k == 'shoes' then
|
|
||||||
table.shoes_1 = uniform['shoes'].item
|
|
||||||
table.shoes_2 = uniform['shoes'].texture
|
|
||||||
elseif k == 'hat' then
|
|
||||||
table.helmet_1 = uniform['hat'].item
|
|
||||||
table.helmet_2 = uniform['hat'].texture
|
|
||||||
elseif k == 'accessory' then
|
|
||||||
table.chain_1 = uniform['accessory'].item
|
|
||||||
table.chain_2 = uniform['accessory'].texture
|
|
||||||
elseif k == 'ear' then
|
|
||||||
table.ears_1 = uniform['ear'].item
|
|
||||||
table.ears_2 = uniform['ear'].texture
|
|
||||||
elseif k == 'mask' then
|
|
||||||
table.mask_1 = uniform['mask'].item
|
|
||||||
table.mask_2 = uniform['mask'].texture
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
TriggerEvent('skinchanger:loadClothes', skin, table)
|
|
||||||
end)
|
|
||||||
elseif Config['Core']:upper() == 'QBCORE' then
|
|
||||||
local table = {}
|
|
||||||
local gender = QBCore.Functions.GetPlayerData().charinfo.gender
|
|
||||||
if gender == 0 then
|
|
||||||
table.outfitData = uniformTable.male
|
|
||||||
else
|
|
||||||
table.outfitData = uniformTable.female
|
|
||||||
end
|
|
||||||
|
|
||||||
TriggerEvent('qb-clothing:client:loadOutfit', table)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function DisableMinimap()
|
|
||||||
DisplayRadar(false)
|
|
||||||
end
|
|
||||||
|
|
||||||
function EnableMinimap()
|
|
||||||
DisplayRadar(true)
|
|
||||||
end
|
|
||||||
|
|
||||||
function OpenMenuUtil()
|
|
||||||
InMenu = true
|
|
||||||
SetNuiFocus(true, true)
|
|
||||||
|
|
||||||
Citizen.CreateThread(function()
|
|
||||||
while InMenu do
|
|
||||||
N_0xf4f2c0d4ee209e20() -- it's disable the AFK camera zoom
|
|
||||||
Citizen.Wait(15000)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
DisplayRadar(false)
|
|
||||||
end
|
|
||||||
|
|
||||||
function CloseMenuUtil()
|
|
||||||
Citizen.CreateThread(function()
|
|
||||||
Citizen.Wait(1000)
|
|
||||||
InMenu = false
|
|
||||||
end)
|
|
||||||
|
|
||||||
SetNuiFocus(false, false)
|
|
||||||
|
|
||||||
DisplayRadar(true)
|
|
||||||
end
|
|
||||||
|
|
||||||
function GenerateAmbulancePlace()
|
|
||||||
return string.sub(PlayerData.job.label, 1, 4)..''..math.random(0001, 9999)
|
|
||||||
end
|
|
||||||
|
|
||||||
-----------------------| UTILS TRIGGERS |-----------------------
|
|
||||||
|
|
||||||
RegisterNetEvent('brutal_ambulancejob:client:utils:CreateVehicle')
|
|
||||||
AddEventHandler('brutal_ambulancejob:client:utils:CreateVehicle', function(Vehicle)
|
|
||||||
SetVehicleFuelLevel(Vehicle, 100.0)
|
|
||||||
DecorSetFloat(Vehicle, "_FUEL_LEVEL", GetVehicleFuelLevel(Vehicle))
|
|
||||||
|
|
||||||
if Config['Core']:upper() == 'QBCORE' then
|
|
||||||
TriggerEvent("vehiclekeys:client:SetOwner", QBCore.Functions.GetPlate(Vehicle))
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
RegisterNetEvent('brutal_ambulancejob:client:utils:DeleteVehicle')
|
|
||||||
AddEventHandler('brutal_ambulancejob:client:utils:DeleteVehicle', function(Vehicle)
|
|
||||||
|
|
||||||
end)
|
|
|
@ -1,539 +0,0 @@
|
||||||
----------------------------------------------------------------------------------------------
|
|
||||||
----------------------------------| BRUTAL AMBULANCE JOB :) |---------------------------------
|
|
||||||
----------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
--[[
|
|
||||||
Hi, thank you for buying our script, We are very grateful!
|
|
||||||
|
|
||||||
For help join our Discord server: https://discord.gg/85u2u5c8q9
|
|
||||||
More informations about the script: https://docs.brutalscripts.com
|
|
||||||
--]]
|
|
||||||
|
|
||||||
Config = {
|
|
||||||
Core = 'QBCORE', -- 'ESX' / 'QBCORE' | Other core setting on the 'core' folder.
|
|
||||||
Inventory = 'qb_inventory', -- 'ox_inventory' / 'qb_inventory' / 'quasar_inventory' / 'chezza_inventory' / 'codem_inventory' / 'core_inventory' / 'origen_inventory' / 'ps-inventory' // Custom can be add in the cl_utils.lua!!!
|
|
||||||
Billing = 'okokBilling', -- 'brutal_billing' / 'okokBilling' / 'esx_billing' / 'jaksam_billing' / 'codem_billing' / 'quasar_billing' | false = immediate deduction from the player's bank account
|
|
||||||
TextUI = 'ox_lib', -- false / 'brutal_textui' / 'ox_lib' / 'okokTextUI' / 'ESXTextUI' / 'QBDrawText' // Custom can be add in the cl_utils.lua!!!
|
|
||||||
Target = 'qb-target', -- 'oxtarget' / 'qb-target' // if the TextUI is set to false target will step its place. | The Target cannot be false.
|
|
||||||
ProgressBar = '', -- 'progressBars' / 'pogressBar' / 'mythic_progbar' // Custom can be add in the cl_utils.lua!!!
|
|
||||||
BrutalNotify = true, -- Buy here: (4€+VAT) https://store.brutalscripts.com | Or set up your own notify >> cl_utils.lua
|
|
||||||
BrutalPaintball = false, -- If you use the Brutal Paintball, set it to true.
|
|
||||||
SteamName = false, -- true = Steam name | false = character name
|
|
||||||
DateFormat = '%d/%m/%Y', -- Date format
|
|
||||||
CustomOutfitMenu = false, -- If it's true, it will open a custom outfit menu, what you can edit in the cl_utils.lua line 103.
|
|
||||||
|
|
||||||
Bleeding = true,
|
|
||||||
BleedNotify = true,
|
|
||||||
InjuredWalk = true,
|
|
||||||
|
|
||||||
UseDeathScreen = true,
|
|
||||||
AutoRespawn = true, -- You can trun it off the auto respawn
|
|
||||||
DeathTime = 300, -- time til respawn is available
|
|
||||||
WaitTime = 60, -- time til the player bleeds out
|
|
||||||
ReviveKey = 55,
|
|
||||||
SaveDeathStatus = true,
|
|
||||||
PlayerMedikitUsage = false, -- If you want to allow to the players to revive each other set it to true.
|
|
||||||
DeathAnimation = {use = true, animDictionary = 'dead', animName = 'dead_a'},
|
|
||||||
ReviveReward = 100, -- set to 0 if you don't want to use it. | This amount will be removed from the revived person
|
|
||||||
ClearInventory = false, -- true / false | Function editable: sv_utils.lua
|
|
||||||
DisableControls = {170,168,24,257,25,263,32,34,31,30,45,22,44,37,23,288,289,170,167,73,199,59,71,72,36,47,264,257,140,141,142,143,75,249},
|
|
||||||
ReviveCoords = {
|
|
||||||
-- GABZ Hospital Coords
|
|
||||||
vector4(313.1343, -583.4428, 43.2841, 332.1013),
|
|
||||||
vector4(1839.4497, 3673.3372, 34.2767, 210.1900),
|
|
||||||
|
|
||||||
-- QBCore Hospital Coords
|
|
||||||
--vector4(349.5245, -591.6425, 43.3151, 344.9672),
|
|
||||||
},
|
|
||||||
|
|
||||||
MedicerItems = {
|
|
||||||
Head = 'head_bandage',
|
|
||||||
Arms = 'arm_wrap',
|
|
||||||
Legs = 'leg_plaster',
|
|
||||||
Body = 'body_bandage',
|
|
||||||
Bandage = 'bandage',
|
|
||||||
Medikit = 'medikit',
|
|
||||||
},
|
|
||||||
|
|
||||||
HealItems = {
|
|
||||||
-- item = item name, value = heal points to add to the player's current health, anim use = true / false, animDictionary = anim dictionary, animName = anim name
|
|
||||||
{item = 'small_heal', value = 20, anim = {use = false, animDictionary = 'anim@heists@narcotics@funding@gang_idle', animName = 'gang_chatting_idle01'}},
|
|
||||||
{item = 'big_heal', value = 50, anim = {use = true, animDictionary = 'anim@heists@narcotics@funding@gang_idle', animName = 'gang_chatting_idle01'}},
|
|
||||||
-- You can add more...
|
|
||||||
},
|
|
||||||
|
|
||||||
Elevators = {
|
|
||||||
{firstCoords = vector4(327.2784, -603.2939, 43.2841, 340.3185), secondCoords = vector4(339.2096, -583.8710, 74.1617, 256.0121)},
|
|
||||||
{firstCoords = vector4(339.2096, -583.8710, 74.1617, 256.0121), secondCoords = vector4(327.2784, -603.2939, 43.2841, 340.3185)},
|
|
||||||
{firstCoords = vector4(332.1774, -595.6858, 43.2841, 74.3505), secondCoords = vector4(339.9041, -584.7014, 28.7968, 71.1949)},
|
|
||||||
{firstCoords = vector4(339.9041, -584.7014, 28.7968, 71.1949), secondCoords = vector4(332.1774, -595.6858, 43.2841, 74.3505)},
|
|
||||||
},
|
|
||||||
|
|
||||||
NPCMenidersCount = 0, -- The NPC medic only usable If fewer (or equal) paramedics are available than this value.
|
|
||||||
NPCMedicers = {
|
|
||||||
-- GABZ Hospital Coords
|
|
||||||
{job = 'ambulance', price = 100, time = 30, coords = vector3(318.8537, -585.8278, 43.2841), bedcoords = vector3(317.671, -585.368, 42.842), bedheading = 338.0},
|
|
||||||
|
|
||||||
-- QBCore Hospital Coords
|
|
||||||
-- {price = 100, time = 30, coords = vector3(355.2057, -593.0265, 43.3150), bedcoords = vector3(354.23, -592.67, 42.88), bedheading = 338.0},
|
|
||||||
|
|
||||||
-- Sandy Shores Hospital Coords
|
|
||||||
{job = 'ambulance2', price = 100, time = 30, coords = vector3(1825.8538, 3675.4375, 34.2711), bedcoords = vector3(1826.425, 3676.826, 33.835), bedheading = 205.0},
|
|
||||||
},
|
|
||||||
|
|
||||||
MedicItems = {
|
|
||||||
['ecg'] = {prop = 'prop_ld_purse_01', pos = {0.10, 0.0, 0.0, 0.0, 280.0, 53.0}},
|
|
||||||
['bag'] = {prop = 'prop_ld_bomb', pos = {0.39, 0.0, 0.0, 0.0, 266.0, 60.0}},
|
|
||||||
},
|
|
||||||
|
|
||||||
WheelchairVehicle = 'iak_wheelchair', -- DOWNLOAD FROM THE DOCS: https://docs.brutalscripts.com/
|
|
||||||
Stretcher = {
|
|
||||||
Vehicles = {
|
|
||||||
{model = 'ambulance', xPos = 0.0, yPos = -3.0, zPos = 0.32, xRot = 0.0, yRot = 0.0, zRot = 90.0, offsetY = -6.0 },
|
|
||||||
{model = 'fdnyambo', xPos = 0.0, yPos = -3.0, zPos = 0.7, xRot = 0.0, yRot = 0.0, zRot = 0.0, offsetY = -7.0 },
|
|
||||||
{model = 'vdambulance', xPos = 0.0, yPos = -1.8, zPos = 0.3, xRot = 0.0, yRot = 0.0, zRot = 0.0, offsetY = -7.0 }, -- Purchase these vehicles at: https://voodoocustom.tebex.io/package/6390694
|
|
||||||
{model = 'vdambulance2', xPos = 0.0, yPos = -1.8, zPos = 0.3, xRot = 0.0, yRot = 0.0, zRot = 0.0, offsetY = -7.0 },
|
|
||||||
{model = 'vdambulance3', xPos = 0.0, yPos = -1.8, zPos = 0.3, xRot = 0.0, yRot = 0.0, zRot = 0.0, offsetY = -7.0 },
|
|
||||||
{model = 'vdambulance4', xPos = 0.0, yPos = -1.8, zPos = 0.3, xRot = 0.0, yRot = 0.0, zRot = 0.0, offsetY = -7.0 },
|
|
||||||
{model = 'vdambulance5', xPos = 0.0, yPos = -1.8, zPos = 0.3, xRot = 0.0, yRot = 0.0, zRot = 0.0, offsetY = -7.0 },
|
|
||||||
{model = 'vdambulance6', xPos = 0.0, yPos = -1.8, zPos = 0.3, xRot = 0.0, yRot = 0.0, zRot = 0.0, offsetY = -7.0 },
|
|
||||||
{model = 'vdambulance7', xPos = 0.0, yPos = -1.8, zPos = 0.3, xRot = 0.0, yRot = 0.0, zRot = 0.0, offsetY = -7.0 },
|
|
||||||
{model = 'vdambulance8', xPos = 0.0, yPos = -1.8, zPos = 0.3, xRot = 0.0, yRot = 0.0, zRot = 0.0, offsetY = -7.0 },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
AmbulanceJobs = {
|
|
||||||
['Pillbox Hospital'] = {
|
|
||||||
Job = 'ambulance', -- Job name
|
|
||||||
|
|
||||||
Blip = {use = true, coords = vector3(303.8510, -586.7777, 43.2841), color = 2, sprite = 61, size = 0.75}, -- Job blip
|
|
||||||
Marker = {use = true, type = 20, directions = {0.0,0.0,0.0}, rotations = {0.0,0.0,0.0}, scales = {0.3,0.2,0.2}, rgba = {233,88,69,255}, bobUpAndDown = true, faceCamera = true, rotate = false, textureDict = nil, textureName = false},
|
|
||||||
|
|
||||||
Duty = vector3(310.7379, -596.7782, 43.2841), -- Duty ON / OFF coords
|
|
||||||
|
|
||||||
DutyBlips = {
|
|
||||||
use = true, -- With this the medicers can see the other medicers in the map.
|
|
||||||
updatetime = 5000, -- Represents the time in milliseconds (1 second = 1000 milliseconds)
|
|
||||||
},
|
|
||||||
|
|
||||||
Cloakrooms = {
|
|
||||||
-- GABZ Hospital Coords
|
|
||||||
vector3(301.5520, -599.3223, 43.2841),
|
|
||||||
|
|
||||||
-- QBCore Hospital Coords
|
|
||||||
--vector3(309.7783, -602.8839, 43.2918),
|
|
||||||
|
|
||||||
|
|
||||||
-- You can add more...
|
|
||||||
},
|
|
||||||
|
|
||||||
Armorys = {
|
|
||||||
-- GABZ Hospital Coords
|
|
||||||
vector3(306.7001, -601.3186, 43.2841),
|
|
||||||
|
|
||||||
-- QBCore Hospital Coords
|
|
||||||
--vector3(298.6365, -599.4954, 43.2921),
|
|
||||||
|
|
||||||
|
|
||||||
-- You can add more...
|
|
||||||
},
|
|
||||||
|
|
||||||
BossMenu = {
|
|
||||||
grades = {3,4},
|
|
||||||
coords = {
|
|
||||||
-- GABZ Hospital Coords
|
|
||||||
vector3(341.0698, -589.9628, 43.2841),
|
|
||||||
|
|
||||||
-- QBCore Hospital Coords
|
|
||||||
-- vector3(310.4246, -599.5806, 43.2918),
|
|
||||||
|
|
||||||
|
|
||||||
-- You can add more...
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
Garages = {
|
|
||||||
{
|
|
||||||
Label = 'Garage I.', -- Garage Label
|
|
||||||
menu = vector3(318.8354, -581.4986, 28.7969), -- Garage menu open coords
|
|
||||||
spawn = vector4(323.4314, -581.0833, 28.7969, 339.7418), -- Vehicle spawn coords
|
|
||||||
deposit = vector3(323.4314, -581.0833, 28.7969), -- Vehicle deposit place
|
|
||||||
|
|
||||||
vehicles = {
|
|
||||||
--['MODEL'] = {
|
|
||||||
-- Label = 'VEHICLE-LABEL',
|
|
||||||
-- minRank = MINIMUM-GRADE
|
|
||||||
--},
|
|
||||||
|
|
||||||
['ambulance'] = {
|
|
||||||
Label = 'Ambulance Vehicle',
|
|
||||||
minRank = 1
|
|
||||||
},
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
Label = 'Garage II.',
|
|
||||||
menu = vector3(296.0435, -614.3528, 43.4332),
|
|
||||||
spawn = vector4(294.3420, -610.1584, 43.0086, 69.7166),
|
|
||||||
deposit = vector3(294.3420, -610.1584, 43.0086),
|
|
||||||
|
|
||||||
vehicles = {
|
|
||||||
['ambulance'] = {
|
|
||||||
Label = 'Ambulance Vehicle',
|
|
||||||
minRank = 1
|
|
||||||
},
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
Label = 'Helicopter Garage',
|
|
||||||
menu = vector3(348.3348, -596.7404, 74.1617),
|
|
||||||
spawn = vector4(350.9515, -587.6812, 74.1617, 255.0893),
|
|
||||||
deposit = vector3(350.9514, -587.6812, 74.1617),
|
|
||||||
|
|
||||||
vehicles = {
|
|
||||||
['polmav'] = {
|
|
||||||
Label = 'Ambulance Helicopter',
|
|
||||||
minRank = 3
|
|
||||||
},
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
-- You can add more...
|
|
||||||
},
|
|
||||||
|
|
||||||
Shop = {
|
|
||||||
-- minGrade = The minimum grade to access to buy the item.
|
|
||||||
{item = 'bandage', label = 'Bandage', price = 500, minGrade = 0},
|
|
||||||
{item = 'medikit', label = 'Medikit', price = 500, minGrade = 0},
|
|
||||||
{item = 'head_bandage', label = 'Head Bandage', price = 500, minGrade = 0},
|
|
||||||
{item = 'arm_wrap', label = 'Arm Wrap', price = 500, minGrade = 0},
|
|
||||||
{item = 'leg_plaster', label = 'Leg Plaster', price = 500, minGrade = 0},
|
|
||||||
{item = 'body_bandage', label = 'Body Bandage', price = 500, minGrade = 0},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
-------------
|
|
||||||
|
|
||||||
['Sandy Shores Hospital'] = {
|
|
||||||
Job = 'ambulance2', -- Job name
|
|
||||||
|
|
||||||
Blip = {use = true, coords = vector3(1828.4707, 3685.3674, 34.271), color = 2, sprite = 61, size = 0.75}, -- Job blip
|
|
||||||
Marker = {use = true, type = 20, directions = {0.0,0.0,0.0}, rotations = {0.0,0.0,0.0}, scales = {0.3,0.2,0.2}, rgba = {233,88,69,255}, bobUpAndDown = true, faceCamera = true, rotate = false, textureDict = nil, textureName = false},
|
|
||||||
|
|
||||||
Duty = vector3(1828.4707, 3685.3674, 34.2711), -- Duty ON / OFF coords
|
|
||||||
|
|
||||||
DutyBlips = {
|
|
||||||
use = true, -- With this the medicers can see the other medicers in the map.
|
|
||||||
updatetime = 5000, -- Represents the time in milliseconds (1 second = 1000 milliseconds)
|
|
||||||
},
|
|
||||||
|
|
||||||
Cloakrooms = {
|
|
||||||
vector3(1834.4899, 3690.6045, 34.2706),
|
|
||||||
|
|
||||||
-- You can add more...
|
|
||||||
},
|
|
||||||
|
|
||||||
Armorys = {
|
|
||||||
vector3(1822.9021, 3666.7390, 34.2710),
|
|
||||||
|
|
||||||
|
|
||||||
-- You can add more...
|
|
||||||
},
|
|
||||||
|
|
||||||
BossMenu = {
|
|
||||||
grades = {3,4},
|
|
||||||
coords = {
|
|
||||||
vector3(1823.8932, 3686.7446, 34.2710),
|
|
||||||
|
|
||||||
-- You can add more...
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
Garages = {
|
|
||||||
{
|
|
||||||
Label = 'Garage I.', -- Garage Label
|
|
||||||
menu = vector3(1844.7936, 3673.1001, 33.679), -- Garage menu open coords
|
|
||||||
spawn = vector4(1848.2019, 3671.0818, 33.5076, 210.1191), -- Vehicle spawn coords
|
|
||||||
deposit = vector3(1847.8590, 3671.6931, 33.7044), -- Vehicle deposit place
|
|
||||||
|
|
||||||
vehicles = {
|
|
||||||
--['MODEL'] = {
|
|
||||||
-- Label = 'VEHICLE-LABEL',
|
|
||||||
-- minRank = MINIMUM-GRADE
|
|
||||||
--},
|
|
||||||
|
|
||||||
['ambulance'] = {
|
|
||||||
Label = 'Ambulance Vehicle',
|
|
||||||
minRank = 1
|
|
||||||
},
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
-- You can add more...
|
|
||||||
},
|
|
||||||
|
|
||||||
Shop = {
|
|
||||||
-- minGrade = The minimum grade to access to buy the item.
|
|
||||||
{item = 'bandage', label = 'Bandage', price = 500, minGrade = 0},
|
|
||||||
{item = 'medikit', label = 'Medikit', price = 500, minGrade = 0},
|
|
||||||
{item = 'head_bandage', label = 'Head Bandage', price = 500, minGrade = 0},
|
|
||||||
{item = 'arm_wrap', label = 'Arm Wrap', price = 500, minGrade = 0},
|
|
||||||
{item = 'leg_plaster', label = 'Leg Plaster', price = 500, minGrade = 0},
|
|
||||||
{item = 'body_bandage', label = 'Body Bandage', price = 500, minGrade = 0},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
Commands = {
|
|
||||||
Duty = {
|
|
||||||
Use = true,
|
|
||||||
Command = 'aduty',
|
|
||||||
Suggestion = 'Entering/Exiting duty'
|
|
||||||
},
|
|
||||||
|
|
||||||
JobMenu = {
|
|
||||||
Command = 'emsjobmenu',
|
|
||||||
Control = '', -- Controls list: https://docs.fivem.net/docs/game-references/input-mapper-parameter-ids/keyboard/
|
|
||||||
Suggestion = 'Open Job Menu'
|
|
||||||
},
|
|
||||||
|
|
||||||
MedicerMenu = {
|
|
||||||
Command = 'medicmenu',
|
|
||||||
Suggestion = 'Open Medicer Menu'
|
|
||||||
},
|
|
||||||
|
|
||||||
MDT = {
|
|
||||||
Use = true, -- if false here you can add your custom MDT >> cl_utils
|
|
||||||
Command = 'emsmdt',
|
|
||||||
Control = '', -- Controls list: https://docs.fivem.net/docs/game-references/input-mapper-parameter-ids/keyboard/
|
|
||||||
Suggestion = 'Open MDT Menu'
|
|
||||||
},
|
|
||||||
|
|
||||||
MedicCall = {
|
|
||||||
Command = 'mediccall',
|
|
||||||
Suggestion = 'To get Medic help',
|
|
||||||
},
|
|
||||||
|
|
||||||
Bed = {
|
|
||||||
Use = true,
|
|
||||||
Command = 'bed',
|
|
||||||
Suggestion = 'To use the closest Bed',
|
|
||||||
Objects = {'v_med_bed2', 'v_med_bed1', 'v_med_emptybed', -1519439119, -289946279}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
AdminCommands = {
|
|
||||||
Revive = {Use = true, Command = 'revive', Suggestion = 'To revive a player', AdminGroups = {'superadmin', 'admin', 'mod', 'god'}}, -- /revive [me / all / PlayerID]
|
|
||||||
Heal = {Use = false, Command = 'heal', Suggestion = 'To heal a player', AdminGroups = {'superadmin', 'admin', 'mod', 'god'}}, -- /heal [me / PlayerID]
|
|
||||||
Kill = {Use = false, Command = 'kill', Suggestion = 'To kill a player', AdminGroups = {'superadmin', 'admin', 'mod', 'god'}}, -- /kill [me / PlayerID]
|
|
||||||
},
|
|
||||||
|
|
||||||
-----------------------------------------------------------
|
|
||||||
-----------------------| TRANSLATE |-----------------------
|
|
||||||
-----------------------------------------------------------
|
|
||||||
|
|
||||||
MoneyForm = '$', -- Money form
|
|
||||||
|
|
||||||
Locales = {
|
|
||||||
CloakRoom = 'Cloak Room',
|
|
||||||
GarageMenu = 'Garage Menu',
|
|
||||||
|
|
||||||
Animations = 'Animations',
|
|
||||||
Carry = 'Carry',
|
|
||||||
Wheelchair = 'Wheelchair',
|
|
||||||
Ecg = 'Ecg',
|
|
||||||
Bag = 'Bag',
|
|
||||||
Stretcher = 'Stretcher',
|
|
||||||
Spawn = 'Spawn & Delete',
|
|
||||||
PutOn = 'Put on/down',
|
|
||||||
Bed = 'Put in/off Bed',
|
|
||||||
Push = 'Push & Release',
|
|
||||||
PutIn = 'Put in/out',
|
|
||||||
MDT = 'MDT',
|
|
||||||
MedicerMenu = 'Medic Menu',
|
|
||||||
|
|
||||||
Colleague = 'Colleague',
|
|
||||||
|
|
||||||
Hardmeele = 'Killed by hard meele',
|
|
||||||
Bullet = 'Killed by a bullet',
|
|
||||||
Knifes = 'Stabed to death',
|
|
||||||
Bitten = 'Bitten by an animal',
|
|
||||||
Fall = 'Fall from a high place',
|
|
||||||
Explosive = 'Die in explosives',
|
|
||||||
Gas = 'Gas',
|
|
||||||
Fire = 'Burn in fire',
|
|
||||||
Drown = 'Drown in water',
|
|
||||||
Caraccident = 'Died in a car accident',
|
|
||||||
Unknown = 'The source of death is unknown',
|
|
||||||
BlipName = 'Call #',
|
|
||||||
},
|
|
||||||
|
|
||||||
Progressbar = {
|
|
||||||
DutyOFF = 'Duty OFF...',
|
|
||||||
DutyON = 'Duty ON...',
|
|
||||||
},
|
|
||||||
|
|
||||||
Texts = {
|
|
||||||
[1] = {'[E] - To open the dress menu', 38, 'Open the dress menu', 'fa-solid fa-person-half-dress'},
|
|
||||||
[2] = {'[E] - To open the armory menu', 38, 'Open the armory menu', 'fa-solid fa-shield-halved'},
|
|
||||||
[3] = {'[E] - To open the garage menu', 38, 'Open the garage menu', 'fa-solid fa-warehouse'},
|
|
||||||
[4] = {'[E] - To deposit the vehicle', 38, 'Deposit the vehicle', 'fa-solid fa-car'},
|
|
||||||
[5] = {'[E] - To open the boss menu', 38, 'Open the boss menu', 'fa-solid fa-users-gear'},
|
|
||||||
[6] = {'[E] - To use the Elevator', 38, 'Use the Elevator', 'fa-solid fa-elevator'},
|
|
||||||
[7] = {'[E] - To Duty ON', '[E] - To Duty OFF', 38, 'To Duty', 'fa-solid fa-newspaper'},
|
|
||||||
[8] = {'[E] - To use the Bed', 38, 'Use the Bed', 'fa-solid fa-bed-pulse'},
|
|
||||||
[9] = {'[X] - To leave the Bed', 73, 'Leave the Bed', 'fa-solid fa-person'},
|
|
||||||
[10] = {'[E] - To get Medical treatment', 38, 'Medical treatment', 'fa-solid fa-kit-medical'},
|
|
||||||
},
|
|
||||||
|
|
||||||
-- Notify function EDITABLE >> cl_utils.lua
|
|
||||||
Notify = {
|
|
||||||
[1] = {"Ambulance Job", "You don't have permission!", 5000, "error"},
|
|
||||||
[2] = {"Ambulance Job", "No vehicle available for your rank.", 5000, "error"},
|
|
||||||
[3] = {"Ambulance Job", "Something is in the way!", 5000, "error"},
|
|
||||||
[4] = {"Ambulance Job", "Invalid ID!", 5000, "error"},
|
|
||||||
[5] = {"Ambulance Job", "Duty: <b>ON", 5000, "info"},
|
|
||||||
[6] = {"Ambulance Job", "Duty: <b>OFF", 5000, "info"},
|
|
||||||
[7] = {"Ambulance Job", "Citizen Call <br>Street: ", 6000, "info"},
|
|
||||||
[8] = {"Ambulance Job", "You have successfully submitted!", 6000, "success"},
|
|
||||||
[9] = {"Ambulance Job", "Please DO NOT SPAM!", 8000, "error"},
|
|
||||||
[10] = {"Ambulance Job", "You must be on duty!", 8000, "error"},
|
|
||||||
[11] = {"Ambulance Job", "You have successfully created a fine!", 6000, "success"},
|
|
||||||
[12] = {"Ambulance Job", "You don't have enough money!", 5000, "error"},
|
|
||||||
[13] = {"Ambulance Job", "You don't have the item!", 5000, "error"},
|
|
||||||
[14] = {"Ambulance Job", "No one is near.", 5000, "error"},
|
|
||||||
[15] = {"Ambulance Job", "No bed near you!", 5000, "error"},
|
|
||||||
[16] = {"Ambulance Job", "You have successfully used the Heal Item!", 5000, "success"},
|
|
||||||
[17] = {"Ambulance Job", "You do not need it!", 5000, "info"},
|
|
||||||
[18] = {"Ambulance Job", "Somebody is already pushing the Stretcher!", 5000, "error"},
|
|
||||||
[19] = {"Ambulance Job", "You paid for medical treatment:", 5000, "info"},
|
|
||||||
[20] = {"Ambulance Job", "There isn't any stretcher near you!", 5000, "error"},
|
|
||||||
[21] = {"Ambulance Job", "The vehicle is too far from you!", 5000, "error"},
|
|
||||||
[22] = {"Ambulance Job", "The stretcher is in the vehicle!", 5000, "error"},
|
|
||||||
[23] = {"Ambulance Job", "There is available medicer(s)!", 5000, "error"},
|
|
||||||
[24] = {"Ambulance Job", "Revive Reward:", 5000, "success"},
|
|
||||||
[25] = {"Ambulance Job", "This vehicle is not usable.", 5000, "error"},
|
|
||||||
[26] = {"Ambulance Job", "The stretcher is not free!", 5000, "error"},
|
|
||||||
[27] = {"Ambulance Job", "The bed is not free!", 5000, "error"},
|
|
||||||
[28] = {"Ambulance Job", "<br>You spent:<b>", 5000, "info"},
|
|
||||||
[29] = {"Ambulance Job", "You got: ", 5000, "info"},
|
|
||||||
[30] = {"Ambulance Job", "You have to wait to heal again!", 5000, "error"},
|
|
||||||
[31] = {"Ambulance Job", "You started bleeding! Use a bandage and see a doctor!", 6000, "info"},
|
|
||||||
[32] = {"Ambulance Job", "The closest player is alive!", 6000, "error"},
|
|
||||||
},
|
|
||||||
|
|
||||||
Webhooks = {
|
|
||||||
Use = true, -- Use webhooks? true / false
|
|
||||||
Locale = {
|
|
||||||
['ItemBought'] = 'Item Bought',
|
|
||||||
['CallOpen'] = 'Call - Open',
|
|
||||||
['CallClose'] = 'Call - Close',
|
|
||||||
['InvoiceCreated'] = 'Invoice Created',
|
|
||||||
['AdminCommand'] = 'Admin Command',
|
|
||||||
|
|
||||||
['PlayerName'] = 'Player Name',
|
|
||||||
['AdminName'] = 'Admin Name',
|
|
||||||
['Identifier'] = 'Identifier',
|
|
||||||
['Items'] = 'Items',
|
|
||||||
['Text'] = 'Text',
|
|
||||||
['Callid'] = 'Call ID',
|
|
||||||
['Coords'] = 'Coords',
|
|
||||||
['Assistant'] = 'Assistant',
|
|
||||||
['CloseReason'] = 'Close Reason',
|
|
||||||
['Receiver'] = 'Receiver',
|
|
||||||
['Amount'] = 'Amount',
|
|
||||||
['Job'] = 'Job',
|
|
||||||
['Reason'] = 'Reason',
|
|
||||||
['Street'] = 'Street',
|
|
||||||
['Coords'] = 'Coords',
|
|
||||||
['Command'] = 'Command',
|
|
||||||
|
|
||||||
['Time'] = 'Time ⏲️'
|
|
||||||
},
|
|
||||||
|
|
||||||
-- To change a webhook color you need to set the decimal value of a color, you can use this website to do that - https://www.mathsisfun.com/hexadecimal-decimal-colors.html
|
|
||||||
Colors = {
|
|
||||||
['ItemBought'] = 10155240,
|
|
||||||
['CallOpen'] = 3145631,
|
|
||||||
['CallClose'] = 16711680,
|
|
||||||
['InvoiceCreated'] = 10155240,
|
|
||||||
['AdminCommand'] = 10155240,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
-----------------------------------------------------------
|
|
||||||
-----------------------| UNIFORMS |------------------------
|
|
||||||
-----------------------------------------------------------
|
|
||||||
|
|
||||||
CitizenWear = {label = "Citizen Wear"},
|
|
||||||
|
|
||||||
Uniforms = {
|
|
||||||
{
|
|
||||||
label = 'Ambulance Dress', -- Uniform Label
|
|
||||||
jobs = {
|
|
||||||
-- Job = job name, grades = grades
|
|
||||||
{job = 'ambulance', grades = {0,1,2,3}},
|
|
||||||
-- More jobs
|
|
||||||
},
|
|
||||||
male = {
|
|
||||||
['t-shirt'] = {item = 15, texture = 0},
|
|
||||||
['torso2'] = {item = 13, texture = 3},
|
|
||||||
['arms'] = {item = 92, texture = 0},
|
|
||||||
['pants'] = {item = 24, texture = 5},
|
|
||||||
['shoes'] = {item = 9, texture = 0},
|
|
||||||
['hat'] = {item = 8, texture = 0},
|
|
||||||
['accessory'] = {item = 0, texture = 0},
|
|
||||||
['ear'] = {item = -1, texture = 0},
|
|
||||||
['decals'] = {item = 0, texture = 0},
|
|
||||||
['mask'] = {item = 0, texture = 0}
|
|
||||||
},
|
|
||||||
female = {
|
|
||||||
['t-shirt'] = {item = 75, texture = 3},
|
|
||||||
['torso2'] = {item = 73, texture = 0},
|
|
||||||
['arms'] = {item = 14, texture = 0},
|
|
||||||
['pants'] = {item = 37, texture = 5},
|
|
||||||
['shoes'] = {item = 1, texture = 0},
|
|
||||||
['hat'] = {item = -1, texture = 0},
|
|
||||||
['accessory'] = {item = 0, texture = 0},
|
|
||||||
['ear'] = {item = -1, texture = 0},
|
|
||||||
['decals'] = {item = 0, texture = 0},
|
|
||||||
['mask'] = {item = 0, texture = 0}
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
label = 'Ambulance Dress', -- Uniform Label
|
|
||||||
jobs = {
|
|
||||||
-- Job = job name, grades = grades
|
|
||||||
{job = 'ambulance2', grades = {0,1,2,3}},
|
|
||||||
-- More jobs
|
|
||||||
},
|
|
||||||
male = {
|
|
||||||
['t-shirt'] = {item = 15, texture = 0},
|
|
||||||
['torso2'] = {item = 13, texture = 3},
|
|
||||||
['arms'] = {item = 92, texture = 0},
|
|
||||||
['pants'] = {item = 24, texture = 5},
|
|
||||||
['shoes'] = {item = 9, texture = 0},
|
|
||||||
['hat'] = {item = 8, texture = 0},
|
|
||||||
['accessory'] = {item = 0, texture = 0},
|
|
||||||
['ear'] = {item = -1, texture = 0},
|
|
||||||
['decals'] = {item = 0, texture = 0},
|
|
||||||
['mask'] = {item = 0, texture = 0}
|
|
||||||
},
|
|
||||||
female = {
|
|
||||||
['t-shirt'] = {item = 75, texture = 3},
|
|
||||||
['torso2'] = {item = 73, texture = 0},
|
|
||||||
['arms'] = {item = 14, texture = 0},
|
|
||||||
['pants'] = {item = 37, texture = 5},
|
|
||||||
['shoes'] = {item = 1, texture = 0},
|
|
||||||
['hat'] = {item = -1, texture = 0},
|
|
||||||
['accessory'] = {item = 0, texture = 0},
|
|
||||||
['ear'] = {item = -1, texture = 0},
|
|
||||||
['decals'] = {item = 0, texture = 0},
|
|
||||||
['mask'] = {item = 0, texture = 0}
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
|
@ -1,52 +0,0 @@
|
||||||
Core = nil
|
|
||||||
|
|
||||||
if Config['Core']:upper() == 'ESX' then
|
|
||||||
local _esx_ = 'new' -- 'new' / 'old'
|
|
||||||
|
|
||||||
if _esx_ then
|
|
||||||
Core = exports['es_extended']:getSharedObject()
|
|
||||||
else
|
|
||||||
while Core == nil do
|
|
||||||
TriggerEvent('esx:getSharedObject', function(obj) Core = obj end)
|
|
||||||
Citizen.Wait(0)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
LoadedEvent = 'esx:playerLoaded'
|
|
||||||
ReviveEvent = 'esx_ambulancejob:revive'
|
|
||||||
JobUpdateEvent = 'esx:setJob'
|
|
||||||
TSCB = Core.TriggerServerCallback
|
|
||||||
|
|
||||||
function GetPlayerJobDatas()
|
|
||||||
return Core.GetPlayerData().job
|
|
||||||
end
|
|
||||||
|
|
||||||
function GetClosestPlayerFunction()
|
|
||||||
return Core.Game.GetClosestPlayer()
|
|
||||||
end
|
|
||||||
|
|
||||||
function GetClosestVehicleFunction(coords, modelFilter)
|
|
||||||
return Core.Game.GetClosestVehicle(coords, modelFilter)
|
|
||||||
end
|
|
||||||
|
|
||||||
elseif Config['Core']:upper() == 'QBCORE' then
|
|
||||||
Core = exports['qb-core']:GetCoreObject()
|
|
||||||
|
|
||||||
LoadedEvent = 'QBCore:Client:OnPlayerLoaded'
|
|
||||||
ReviveEvent = 'hospital:client:Revive'
|
|
||||||
JobUpdateEvent = 'QBCore:Client:OnJobUpdate'
|
|
||||||
TSCB = Core.Functions.TriggerCallback
|
|
||||||
|
|
||||||
function GetPlayerJobDatas()
|
|
||||||
return Core.Functions.GetPlayerData().job
|
|
||||||
end
|
|
||||||
|
|
||||||
function GetClosestPlayerFunction()
|
|
||||||
return Core.Functions.GetClosestPlayer()
|
|
||||||
end
|
|
||||||
|
|
||||||
function GetClosestVehicleFunction(coords, modelFilter)
|
|
||||||
return Core.Functions.GetClosestVehicle(coords, modelFilter)
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
|
@ -1,255 +0,0 @@
|
||||||
Core = nil
|
|
||||||
|
|
||||||
if Config['Core']:upper() == 'ESX' then
|
|
||||||
local _esx_ = 'new' -- 'new' / 'old'
|
|
||||||
|
|
||||||
if _esx_ == 'new' then
|
|
||||||
Core = exports['es_extended']:getSharedObject()
|
|
||||||
else
|
|
||||||
Core = nil
|
|
||||||
TriggerEvent('esx:getSharedObject', function(obj) Core = obj end)
|
|
||||||
while Core == nil do
|
|
||||||
Citizen.Wait(0)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
RESCB = Core.RegisterServerCallback
|
|
||||||
GETPFI = Core.GetPlayerFromId
|
|
||||||
RUI = Core.RegisterUsableItem
|
|
||||||
onPlayerDeath = 'esx:onPlayerDeath'
|
|
||||||
|
|
||||||
function GetIdentifier(source)
|
|
||||||
local xPlayer = GETPFI(source)
|
|
||||||
while xPlayer == nil do
|
|
||||||
Citizen.Wait(1000)
|
|
||||||
xPlayer = GETPFI(source)
|
|
||||||
end
|
|
||||||
return xPlayer.identifier
|
|
||||||
end
|
|
||||||
|
|
||||||
function GetPlayerByIdentifier(identifier)
|
|
||||||
return Core.GetPlayerFromIdentifier(identifier)
|
|
||||||
end
|
|
||||||
|
|
||||||
function GetAccountMoney(source,account)
|
|
||||||
local xPlayer = GETPFI(source)
|
|
||||||
if account == 'bank' then
|
|
||||||
return xPlayer.getAccount(account).money
|
|
||||||
elseif account == 'money' then
|
|
||||||
return xPlayer.getMoney()
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function AddMoneyFunction(source, account, amount)
|
|
||||||
local xPlayer = GETPFI(source)
|
|
||||||
if account == 'bank' then
|
|
||||||
xPlayer.addAccountMoney('bank', amount)
|
|
||||||
elseif account == 'money' then
|
|
||||||
xPlayer.addMoney(amount)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function RemoveAccountMoney(source, account, amount)
|
|
||||||
local xPlayer = GETPFI(source)
|
|
||||||
if account == 'bank' then
|
|
||||||
xPlayer.removeAccountMoney('bank', amount)
|
|
||||||
elseif account == 'money' then
|
|
||||||
xPlayer.removeMoney(amount)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function GetItemCount(source, item)
|
|
||||||
local xPlayer = GETPFI(source)
|
|
||||||
local items = xPlayer.getInventoryItem(item) or (GetResourceState("codem-inventory") == "started" and exports['codem-inventory']:GetItemsByName(source, item))
|
|
||||||
|
|
||||||
if items ~= nil then
|
|
||||||
if _esx_ == 'new' then
|
|
||||||
if GetResourceState("codem-inventory") == "started" then
|
|
||||||
return exports['codem-inventory']:GetItemsTotalAmount(source, item)
|
|
||||||
else
|
|
||||||
return xPlayer.getInventoryItem(item).count
|
|
||||||
end
|
|
||||||
else
|
|
||||||
if string.sub(item, 0, 6):lower() == 'weapon' then
|
|
||||||
local loadoutNum, weapon = xPlayer.getWeapon(item:upper())
|
|
||||||
|
|
||||||
if weapon then
|
|
||||||
return true
|
|
||||||
else
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
else
|
|
||||||
return xPlayer.getInventoryItem(item).count
|
|
||||||
end
|
|
||||||
end
|
|
||||||
else
|
|
||||||
print("^1PROBLEM!^3 The ^7items ^3are not created. Create them from our documentation. https://docs.brutalscripts.com/site/scripts/ambulance-job/installation-guide")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function RemoveItem(source, item, amount)
|
|
||||||
local xPlayer = GETPFI(source)
|
|
||||||
if _esx_ == 'new' then
|
|
||||||
xPlayer.removeInventoryItem(item, amount)
|
|
||||||
else
|
|
||||||
if string.sub(item, 0, 6):lower() == 'weapon' then
|
|
||||||
xPlayer.removeWeapon(item)
|
|
||||||
else
|
|
||||||
xPlayer.removeInventoryItem(item, amount)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function AddItem(source, item, count)
|
|
||||||
local xPlayer = GETPFI(source)
|
|
||||||
if _esx_ == 'new' then
|
|
||||||
xPlayer.addInventoryItem(item, count)
|
|
||||||
else
|
|
||||||
if string.sub(item, 0, 6):lower() == 'weapon' then
|
|
||||||
xPlayer.addWeapon(item, 90)
|
|
||||||
else
|
|
||||||
xPlayer.addInventoryItem(item, count)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function GetPlayerNameFunction(source)
|
|
||||||
local name
|
|
||||||
if Config.SteamName then
|
|
||||||
name = GetPlayerName(source)
|
|
||||||
else
|
|
||||||
local xPlayer = GETPFI(source)
|
|
||||||
name = xPlayer.getName() or 'No Data'
|
|
||||||
end
|
|
||||||
return name
|
|
||||||
end
|
|
||||||
|
|
||||||
function GetPlayerSex(source)
|
|
||||||
local xPlayer = GETPFI(source)
|
|
||||||
return xPlayer.get("sex")
|
|
||||||
end
|
|
||||||
|
|
||||||
function GetPlayerJob(source)
|
|
||||||
local xPlayer = GETPFI(source)
|
|
||||||
return xPlayer.job.name
|
|
||||||
end
|
|
||||||
|
|
||||||
elseif Config['Core']:upper() == 'QBCORE' then
|
|
||||||
|
|
||||||
Core = exports['qb-core']:GetCoreObject()
|
|
||||||
|
|
||||||
RESCB = Core.Functions.CreateCallback
|
|
||||||
GETPFI = Core.Functions.GetPlayer
|
|
||||||
RUI = Core.Functions.CreateUseableItem
|
|
||||||
|
|
||||||
function GetIdentifier(source)
|
|
||||||
local xPlayer = GETPFI(source)
|
|
||||||
while xPlayer == nil do
|
|
||||||
Citizen.Wait(1000)
|
|
||||||
xPlayer = GETPFI(source)
|
|
||||||
end
|
|
||||||
return xPlayer.PlayerData.citizenid
|
|
||||||
end
|
|
||||||
|
|
||||||
function GetPlayerByIdentifier(identifier)
|
|
||||||
return Core.Functions.GetPlayerByCitizenId(identifier)
|
|
||||||
end
|
|
||||||
|
|
||||||
function GetPlayersFunction()
|
|
||||||
return Core.Functions.GetPlayers()
|
|
||||||
end
|
|
||||||
|
|
||||||
function GetAccountMoney(source, account)
|
|
||||||
local xPlayer = GETPFI(source)
|
|
||||||
if account == 'bank' then
|
|
||||||
return xPlayer.PlayerData.money.bank
|
|
||||||
elseif account == 'money' then
|
|
||||||
return xPlayer.PlayerData.money.cash
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function AddMoneyFunction(source, account, amount)
|
|
||||||
local xPlayer = GETPFI(source)
|
|
||||||
if account == 'bank' then
|
|
||||||
xPlayer.Functions.AddMoney('bank', amount)
|
|
||||||
elseif account == 'money' then
|
|
||||||
xPlayer.Functions.AddMoney('cash', amount)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function RemoveAccountMoney(source, account, amount)
|
|
||||||
local xPlayer = GETPFI(source)
|
|
||||||
if account == 'bank' then
|
|
||||||
xPlayer.Functions.RemoveMoney('bank', amount)
|
|
||||||
elseif account == 'money' then
|
|
||||||
xPlayer.Functions.RemoveMoney('cash', amount)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function GetItemCount(source, item)
|
|
||||||
local xPlayer = GETPFI(source)
|
|
||||||
local items = xPlayer.Functions.GetItemByName(item) or (GetResourceState("qs-inventory") == "started" and exports['qs-inventory']:GetItemTotalAmount(source, item)) or (GetResourceState("codem-inventory") == "started" and exports['codem-inventory']:GetItemsByName(source, item))
|
|
||||||
|
|
||||||
if items ~= nil then
|
|
||||||
if GetResourceState("codem-inventory") == "started" then
|
|
||||||
return exports['codem-inventory']:GetItemsTotalAmount(source, item)
|
|
||||||
elseif GetResourceState("qs-inventory") == "started" then
|
|
||||||
return exports['qs-inventory']:GetItemTotalAmount(source, item)
|
|
||||||
else
|
|
||||||
return items.amount or 0
|
|
||||||
end
|
|
||||||
else
|
|
||||||
print("^1PROBLEM!^3 The ^7items ^3are not created. Create them from our documentation. https://docs.brutalscripts.com/site/scripts/ambulance-job/installation-guide")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function RemoveItem(source, item, amount)
|
|
||||||
local xPlayer = GETPFI(source)
|
|
||||||
xPlayer.Functions.RemoveItem(item, amount)
|
|
||||||
end
|
|
||||||
|
|
||||||
function AddItem(source, item, count)
|
|
||||||
local xPlayer = GETPFI(source)
|
|
||||||
xPlayer.Functions.AddItem(item, count)
|
|
||||||
end
|
|
||||||
|
|
||||||
function GetPlayerNameFunction(source)
|
|
||||||
local name
|
|
||||||
if Config.SteamName then
|
|
||||||
name = GetPlayerName(source)
|
|
||||||
else
|
|
||||||
local xPlayer = GETPFI(source)
|
|
||||||
name = xPlayer.PlayerData.charinfo.firstname..' '..xPlayer.PlayerData.charinfo.lastname
|
|
||||||
end
|
|
||||||
return name
|
|
||||||
end
|
|
||||||
|
|
||||||
function GetPlayerSex(source)
|
|
||||||
local xPlayer = GETPFI(source)
|
|
||||||
local sex = xPlayer.PlayerData.charinfo.gender
|
|
||||||
|
|
||||||
if sex == 0 then
|
|
||||||
sex = 'm'
|
|
||||||
else
|
|
||||||
sex = 'f'
|
|
||||||
end
|
|
||||||
|
|
||||||
return sex
|
|
||||||
end
|
|
||||||
|
|
||||||
function GetPlayerJob(source)
|
|
||||||
local xPlayer = GETPFI(source)
|
|
||||||
return xPlayer.PlayerData.job.name
|
|
||||||
end
|
|
||||||
|
|
||||||
function GetPlayerDeathMetaData(source)
|
|
||||||
local xPlayer = GETPFI(source)
|
|
||||||
return xPlayer.PlayerData.metadata['isdead']
|
|
||||||
end
|
|
||||||
|
|
||||||
function SetPlayerDeathMetaData(source, isDead)
|
|
||||||
local xPlayer = GETPFI(source)
|
|
||||||
xPlayer.Functions.SetMetaData("isdead", isDead)
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
|
@ -1,77 +0,0 @@
|
||||||
fx_version 'cerulean'
|
|
||||||
games { 'gta5' }
|
|
||||||
lua54 'yes'
|
|
||||||
|
|
||||||
author 'Keres & Dév'
|
|
||||||
description 'Brutal Ambulance Job - store.brutalscripts.com'
|
|
||||||
version '1.4.5'
|
|
||||||
|
|
||||||
client_scripts {
|
|
||||||
'config.lua',
|
|
||||||
'core/client-core.lua',
|
|
||||||
'cl_utils.lua',
|
|
||||||
'client/*.lua'
|
|
||||||
}
|
|
||||||
|
|
||||||
server_scripts {
|
|
||||||
'@mysql-async/lib/MySQL.lua',
|
|
||||||
'config.lua',
|
|
||||||
'core/server-core.lua',
|
|
||||||
'sv_utils.lua',
|
|
||||||
'server/*.lua'
|
|
||||||
}
|
|
||||||
|
|
||||||
shared_script {
|
|
||||||
'@ox_lib/init.lua'
|
|
||||||
}
|
|
||||||
|
|
||||||
export 'getAvailableDoctorsCount'
|
|
||||||
export 'IsDead'
|
|
||||||
|
|
||||||
ui_page "html/index.html"
|
|
||||||
files {
|
|
||||||
"html/index.html",
|
|
||||||
"html/style.css",
|
|
||||||
"html/script.js",
|
|
||||||
"html/assets/*.png",
|
|
||||||
}
|
|
||||||
|
|
||||||
provides { 'esx_ambulancejob', 'qb-ambulancejob' }
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
'/server:5181', -- ⚠️PLEASE READ⚠️; Requires at least SERVER build 5181
|
|
||||||
'/gameBuild:2189', -- ⚠️PLEASE READ⚠️; Requires at least GAME build 2189.
|
|
||||||
}
|
|
||||||
|
|
||||||
escrow_ignore {
|
|
||||||
'config.lua',
|
|
||||||
'sv_utils.lua',
|
|
||||||
'cl_utils.lua',
|
|
||||||
'core/client-core.lua',
|
|
||||||
'core/server-core.lua',
|
|
||||||
}
|
|
||||||
|
|
||||||
--[[
|
|
||||||
-- locked
|
|
||||||
escrow_ignore {
|
|
||||||
'config.lua',
|
|
||||||
'sv_utils.lua',
|
|
||||||
'cl_utils.lua',
|
|
||||||
'core/client-core.lua',
|
|
||||||
'core/server-core.lua',
|
|
||||||
}
|
|
||||||
|
|
||||||
-- open
|
|
||||||
escrow_ignore {
|
|
||||||
'config.lua',
|
|
||||||
'sv_utils.lua',
|
|
||||||
'cl_utils.lua',
|
|
||||||
'core/client-core.lua',
|
|
||||||
'core/server-core.lua',
|
|
||||||
'client/client.lua',
|
|
||||||
'client/commands.lua',
|
|
||||||
'server/server.lua',
|
|
||||||
'server/commands.lua',
|
|
||||||
}
|
|
||||||
--]]
|
|
||||||
dependency '/assetpacks'
|
|
Before Width: | Height: | Size: 187 KiB |
Before Width: | Height: | Size: 50 KiB |
Before Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 35 KiB |
Before Width: | Height: | Size: 35 KiB |
Before Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 43 KiB |
Before Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 181 KiB |
Before Width: | Height: | Size: 168 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 39 KiB |
Before Width: | Height: | Size: 42 KiB |
|
@ -1,285 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<link rel="stylesheet" href="style.css">
|
|
||||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.0/css/all.css"></link>
|
|
||||||
<script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
|
|
||||||
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js" integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU=" crossorigin="anonymous"></script>
|
|
||||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-KK94CHFLLe+nY2dmCWGMq91rCGa5gtU4mk92HdvYe+M/SXH301p5ILy+dN9+nJOZ" crossorigin="anonymous">
|
|
||||||
<title>Brutal Ambulance Job</title>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body style="background: none;">
|
|
||||||
|
|
||||||
<div class="job_menu" id="job_menu">
|
|
||||||
<div class="circle_container">
|
|
||||||
</div>
|
|
||||||
<div class="circles_label"></div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="interactions" id="interactions">
|
|
||||||
<div class="label mx-auto d-block mt-3">
|
|
||||||
<h2>Interactions</h2>
|
|
||||||
<div class="background_effect"></div>
|
|
||||||
</div>
|
|
||||||
<div class="int_con mt-3">
|
|
||||||
<div class="row row-cols-1">
|
|
||||||
<div class="int_con_sec">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="shop">
|
|
||||||
<button class="details_btn px-3 m-3 float-end" id="shop_back" onclick="CloseShop(), CreateArmoryMenu()">back <i class="fa-solid fa-chevron-right"></i></button>
|
|
||||||
<h2 class="mt-3">SHOP</h2>
|
|
||||||
<div class="shop_elements_container row row-cols-3">
|
|
||||||
</div>
|
|
||||||
<div class="checkout_container">
|
|
||||||
<hr>
|
|
||||||
<h3>TOTAL: 0<money>$</money></h3>
|
|
||||||
<button class="buy_btn" onclick="BuyInShop()">BUY</button>
|
|
||||||
</div>
|
|
||||||
<div class="slider_btn" id="shop_slider" onclick="ChangeSliderbtn(id)">
|
|
||||||
<div class="slider" id="slider_shop"></div>
|
|
||||||
<div class="row button_container">
|
|
||||||
<div class="col"><i class="fa-solid fa-wallet"></i></div>
|
|
||||||
<div class="col"><i class="fa-solid fa-building-columns"></i></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="MDT" id="MDT">
|
|
||||||
<img class="logo_img" src="assets/LSPD.png"></img>
|
|
||||||
<div class="control_btn_container">
|
|
||||||
<div class="row row-cols-1">
|
|
||||||
<div class="col">
|
|
||||||
<button class="control_btn mt-2 mx-auto d-block" id="home" onclick="SwitchPage(id)">
|
|
||||||
<div class="background_effect"></div>
|
|
||||||
<i class="fa-solid fa-house"></i>
|
|
||||||
</button>
|
|
||||||
<hr class="mt-3 mb-1" style="width: 80%; margin-left: 10%; border-top: solid 3px white; border-radius: 3px;">
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<button class="control_btn m-2 mx-auto d-block" id="sos_alert" onclick="SwitchPage(id)">
|
|
||||||
<div class="background_effect"></div>
|
|
||||||
<i class="fa-solid fa-bell"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<button class="control_btn m-2 mx-auto d-block" id="invoices" onclick="SwitchPage(id)">
|
|
||||||
<div class="background_effect"></div>
|
|
||||||
<i class="fa-solid fa-file-invoice"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div style="margin-left: 100px; padding: 10px;">
|
|
||||||
<div class="page_data_container">
|
|
||||||
<div class="background_blur_color"></div>
|
|
||||||
<div class="home_label mt-3">
|
|
||||||
<div class="background_effect"></div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col ms-3 mt-1" id="job_name"></div>
|
|
||||||
<div class="col-2 mt-1" id="home_date">date 213 23</div>
|
|
||||||
<div class="col me-3 mt-1 text-end" id="street"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row mt-3 mx-2">
|
|
||||||
<div class="col">
|
|
||||||
<div class="home_stat_con mx-auto d-block">
|
|
||||||
<div class="background_effect"></div>
|
|
||||||
<div class="label">Medicers</div>
|
|
||||||
<div class="main" id="available_medicers">0</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<div class="home_stat_con mx-auto d-block">
|
|
||||||
<div class="background_effect"></div>
|
|
||||||
<div class="label">Rank</div>
|
|
||||||
<div class="main small" id="player_rang"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<div class="home_stat_con mx-auto d-block">
|
|
||||||
<div class="background_effect"></div>
|
|
||||||
<div class="label">Salary</div>
|
|
||||||
<div class="main" id="salary">100$</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="welcome_text mt-3">Welcome,<br> <span class="hand_written">Name</span></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="medic_panel" id="medic_panel">
|
|
||||||
<img class="main_body" src="assets/main_body.png">
|
|
||||||
<img class="body_part" id="right_arm" src="assets/right_arm.png">
|
|
||||||
<img class="body_part" id="left_arm" src="assets/left_arm.png">
|
|
||||||
<img class="body_part" id="head" src="assets/head.png">
|
|
||||||
<img class="body_part" id="right_leg" src="assets/right_leg.png">
|
|
||||||
<img class="body_part" id="left_leg" src="assets/left_leg.png">
|
|
||||||
<img class="body_part" id="body" src="assets/body.png">
|
|
||||||
|
|
||||||
<div id="right_arm_box"></div>
|
|
||||||
<div id="left_arm_box"></div>
|
|
||||||
<div id="right_leg_box"></div>
|
|
||||||
<div id="left_leg_box"></div>
|
|
||||||
<div id="body_box"></div>
|
|
||||||
<div id="head_box"></div>
|
|
||||||
|
|
||||||
<h2 class="label">MEDIC SYSTEM</h2>
|
|
||||||
|
|
||||||
<h3 class="patient">YOU</h3>
|
|
||||||
|
|
||||||
<div class="vertical_con">
|
|
||||||
<div class="row row-cols-1">
|
|
||||||
<div class="col">
|
|
||||||
<div class="items_container">
|
|
||||||
<img class="medic_item" id="head_heal">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<div class="items_container">
|
|
||||||
<img class="medic_item" id="body_heal">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<div class="items_container">
|
|
||||||
<img class="medic_item" id="arm_heal">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<div class="items_container">
|
|
||||||
<img class="medic_item" id="leg_heal">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="vertical_con" id="second">
|
|
||||||
<div class="row row-cols-1">
|
|
||||||
<div class="col">
|
|
||||||
<div class="items_container">
|
|
||||||
<img class="medic_item" id="blood">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<div class="items_container">
|
|
||||||
<img class="medic_item" id="revive">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="status_con">
|
|
||||||
<h2>STATUS</h2>
|
|
||||||
<div class="box">NORMAL</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="bpm_con">
|
|
||||||
<h2>BPM <h class="box">80</h></h2>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="cause_of_death">This is why he is dead</div>
|
|
||||||
<div class="des">Cause of death</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="medic_panel" id="medic_panel_me">
|
|
||||||
<img class="main_body" src="assets/main_body.png">
|
|
||||||
<img class="body_part" id="right_arm2" src="assets/right_arm.png">
|
|
||||||
<img class="body_part" id="left_arm2" src="assets/left_arm.png">
|
|
||||||
<img class="body_part" id="head2" src="assets/head.png">
|
|
||||||
<img class="body_part" id="right_leg2" src="assets/right_leg.png">
|
|
||||||
<img class="body_part" id="left_leg2" src="assets/left_leg.png">
|
|
||||||
<img class="body_part" id="body2" src="assets/body.png">
|
|
||||||
|
|
||||||
<div id="body_box2"></div>
|
|
||||||
|
|
||||||
<h2 class="label">MEDIC SYSTEM</h2>
|
|
||||||
|
|
||||||
<h3 class="patient">YOU</h3>
|
|
||||||
|
|
||||||
<div class="vertical_con">
|
|
||||||
<div class="items_container">
|
|
||||||
<img class="medic_item" id="blood_me">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="status_con">
|
|
||||||
<h2>STATUS</h2>
|
|
||||||
<div class="box">NORMAL</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="bpm_con">
|
|
||||||
<h2>BPM <h class="box">80</h></h2>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="vehicle_livery" id="vehicle_livery">
|
|
||||||
<div class="val_con mx-auto d-block px-3" id="livery"></div>
|
|
||||||
<h5>You can change the livery with the ⬅️ and ➡️</h5>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="death_screen">
|
|
||||||
<div class="bg"></div>
|
|
||||||
<h2 class="die">YOU WILL DIE</h2>
|
|
||||||
<h2 class="remained">REMAINED TIME</h2>
|
|
||||||
<div class="time_con">
|
|
||||||
<h2 class="time">00:00</h2>
|
|
||||||
<div class="time_line"></div>
|
|
||||||
</div>
|
|
||||||
<h2 class="info" id="d_info">PRESS <h class="hbtn_press px-2" id="hbtn_press">SPACE</h> TO GET HELP</h2>
|
|
||||||
<h2 class="info" id="d_info2">PRESS <h class="hbtn_press px-2" id="hbtn_press2">SPACE</h> TO GET REVIVED</h2>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="basic_container" id="create_citizen_call">
|
|
||||||
<div class="label">Medic Call
|
|
||||||
<div class="background_effect"></div>
|
|
||||||
</div>
|
|
||||||
<div class="input-group mt-3 px-3 h-50">
|
|
||||||
<textarea class="form-control" id="in_citizen_call_reason" placeholder="Type your problem..." oninput="RefreshCreateCallBTN()"></textarea>
|
|
||||||
</div>
|
|
||||||
<button class="submenu_btn px-3 mt-3 mx-auto d-block" id="create_call_btn" disabled onclick="CreateCall()">Create</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="modal fade" id="call_modal">
|
|
||||||
<div class="modal-dialog modal-dialog-centered modal-md">
|
|
||||||
<div class="modal-content pb-2" style="background: var(--secondary_color); border-radius: 13px; color: var(--text_color);">
|
|
||||||
<div class="modal-body">
|
|
||||||
<div class="modal_header mx-auto d-block">
|
|
||||||
<div class="background_effect"></div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col"><button class="details_btn m-1 float-start px-3" data-bs-dismiss="modal"><i class="fa-solid fa-chevron-left"></i> Back</button></div>
|
|
||||||
<div class="col-5"><h2 class="modal-title mx-auto d-block text-center" id="title_text">Medic call</h2></div>
|
|
||||||
<div class="col"><button class="details_btn px-3 m-1 float-end" onclick="SendPinOnMap()"><i class="fa-solid fa-location-dot"></i> Pin</button></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="call_actions_container">
|
|
||||||
<div class="input-group mt-3 call_reason_con">
|
|
||||||
<textarea class="form-control" id="in_call_reason" oninput="RefreshCloseCallBTN()" placeholder="Reason to close"></textarea>
|
|
||||||
</div>
|
|
||||||
<button class="submenu_btn px-3 my-3 mx-auto d-block" id="close_call" onclick="CloseCall()" disabled>Close</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<h3 class="text-white text-center mt-3" id="involved">Medicers involved</h3>
|
|
||||||
<div class="involved_container mx-auto d-block">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-3-typeahead/4.0.2/bootstrap3-typeahead.min.js">
|
|
||||||
</script>
|
|
||||||
<script src="script.js"></script>
|
|
||||||
</html>
|
|
|
@ -1,98 +0,0 @@
|
||||||
local YourWebhook = 'webhook-here' -- help: https://docs.brutalscripts.com/site/others/discord-webhook
|
|
||||||
|
|
||||||
function GetWebhook()
|
|
||||||
return YourWebhook
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Buy here: (4€+VAT) https://store.brutalscripts.com
|
|
||||||
function notification(source, title, text, time, type)
|
|
||||||
if Config.BrutalNotify then
|
|
||||||
TriggerClientEvent('brutal_notify:SendAlert', source, title, text, time, type)
|
|
||||||
else
|
|
||||||
TriggerClientEvent('brutal_ambulancejob:client:DefaultNotify', text)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function ClearPlayerInventory(source)
|
|
||||||
if Config.Inventory:lower() == 'ox_inventory' then
|
|
||||||
exports.ox_inventory:ClearInventory(source)
|
|
||||||
elseif Config.Inventory:lower() == 'quasar_inventory' then
|
|
||||||
local saveItems = {
|
|
||||||
'id_card', -- Add here the items that you do NOT want to be deleted
|
|
||||||
'phone',
|
|
||||||
}
|
|
||||||
exports['qs-inventory']:ClearInventory(source, saveItems)
|
|
||||||
local weapons = exports['qs-inventory']:GetWeaponList()
|
|
||||||
for k,v in pairs(weapons) do
|
|
||||||
RemoveItem(source, v.name, 1)
|
|
||||||
end
|
|
||||||
elseif Config.Inventory:lower() == 'chezza_inventory' then
|
|
||||||
local xPlayer = GETPFI(source)
|
|
||||||
exports.inventory:clearInventory(xPlayer, true)
|
|
||||||
elseif Config.Inventory:lower() == 'codem_inventory' then
|
|
||||||
exports['codem-inventory']:ClearInventory(source)
|
|
||||||
elseif Config.Inventory:lower() == 'qb_inventory' then
|
|
||||||
exports['qb-inventory']:ClearInventory(source)
|
|
||||||
elseif Config['Core']:upper() == 'ESX' then
|
|
||||||
local ESX = Core
|
|
||||||
local xPlayer = ESX.GetPlayerFromId(source)
|
|
||||||
for i=1, #xPlayer.inventory, 1 do
|
|
||||||
if xPlayer.inventory[i].count > 0 then
|
|
||||||
xPlayer.setInventoryItem(xPlayer.inventory[i].name, 0)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function SocietyAddMoney(job, price)
|
|
||||||
if Config['Core']:upper() == 'ESX' then
|
|
||||||
local society = exports['esx_society']:GetSociety(job)
|
|
||||||
TriggerEvent('esx_addonaccount:getSharedAccount', society.account, function(account)
|
|
||||||
account.addMoney(price)
|
|
||||||
end)
|
|
||||||
else
|
|
||||||
exports['qb-management']:AddMoney(job, price)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
ESX = Core
|
|
||||||
QBCore = Core
|
|
||||||
|
|
||||||
if Config.Core:upper() == 'QBCORE' then
|
|
||||||
RegisterNetEvent('hospital:server:resetHungerThirst', function()
|
|
||||||
local Player = QBCore.Functions.GetPlayer(source)
|
|
||||||
|
|
||||||
if not Player then return end
|
|
||||||
|
|
||||||
Player.Functions.SetMetaData('hunger', 100)
|
|
||||||
Player.Functions.SetMetaData('thirst', 100)
|
|
||||||
|
|
||||||
TriggerClientEvent('hud:client:UpdateNeeds', source, 100, 100)
|
|
||||||
end)
|
|
||||||
end
|
|
||||||
|
|
||||||
function StaffCheck(source, AdminGroups)
|
|
||||||
local staff = false
|
|
||||||
|
|
||||||
if Config.Core:upper() == 'ESX'then
|
|
||||||
local player = Core.GetPlayerFromId(source)
|
|
||||||
local playerGroup = player.getGroup()
|
|
||||||
|
|
||||||
for i, Group in ipairs(AdminGroups) do
|
|
||||||
if playerGroup == Group then
|
|
||||||
staff = true
|
|
||||||
break
|
|
||||||
end
|
|
||||||
end
|
|
||||||
elseif Config.Core:upper() == 'QBCORE' then
|
|
||||||
|
|
||||||
for i, Group in ipairs(AdminGroups) do
|
|
||||||
if Core.Functions.HasPermission(source, Group) or IsPlayerAceAllowed(source, Group) or IsPlayerAceAllowed(source, 'command') then
|
|
||||||
staff = true
|
|
||||||
break
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
return staff
|
|
||||||
end
|
|