Update
Propfix Nordi
BIN
resources/[Developer]/[Nordi]/PS_PropFix/.fxap
Normal file
23
resources/[Developer]/[Nordi]/PS_PropFix/README.md
Normal file
|
@ -0,0 +1,23 @@
|
|||
## Support
|
||||
|
||||
Join our Discord for support and feature scripts: https://discord.gg/XQHVstYRGx
|
||||
|
||||
|
||||
## What does it do exactly?
|
||||
Have you ever experienced the frustration of performing an emote and having a prop get stuck in your hand? With this script,
|
||||
you can simply use the /propfix command to remove the prop. No need to reconnect every time.
|
||||
Enjoy the seamless experience!
|
||||
|
||||
## Installation instructions
|
||||
|
||||
1. Download the script.
|
||||
2. Place it in your resources folder.
|
||||
3. Edit the configuration file to customize your command.
|
||||
4. Add the following line to your server.cfg: ensure PS_PropFix.
|
||||
|
||||
|
||||
|
||||
If you have any additional details or specific configuration options you'd like to include, feel free to let me know!
|
||||
|
||||
|
||||
PlexScripts
|
100
resources/[Developer]/[Nordi]/PS_PropFix/client/client.lua
Normal file
|
@ -0,0 +1,100 @@
|
|||
|
||||
if Config.Framework == "ESX" then
|
||||
ESX = exports['es_extended']:getSharedObject()
|
||||
end
|
||||
|
||||
-- Add a wait loop to ensure ESX is loaded
|
||||
if Config.Framework == "ESX" then
|
||||
while not ESX do
|
||||
Citizen.Wait(100)
|
||||
end
|
||||
end
|
||||
|
||||
if Config.Framework == "qb-core" then
|
||||
QBCore = exports['qb-core']:GetCoreObject()
|
||||
end
|
||||
|
||||
|
||||
RegisterCommand(Config.PropFixCommand, function(source, args, rawCommand)
|
||||
local xPlayer = PlayerPedId()
|
||||
|
||||
|
||||
function RemoveAttachedObjects(ped)
|
||||
|
||||
|
||||
local handle, object = FindFirstObject()
|
||||
local finished = false
|
||||
local count = 0
|
||||
|
||||
repeat
|
||||
if DoesEntityExist(object) then
|
||||
if IsEntityAttachedToEntity(object, ped) then
|
||||
DetachEntity(object, true, true)
|
||||
SetEntityAsMissionEntity(object, true, true)
|
||||
DeleteObject(object)
|
||||
Wait(0)
|
||||
if not DoesEntityExist(object) then
|
||||
count = count + 1
|
||||
|
||||
else
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
finished, object = FindNextObject(handle)
|
||||
until not finished
|
||||
|
||||
EndFindObject(handle)
|
||||
|
||||
end
|
||||
|
||||
RemoveAttachedObjects(xPlayer)
|
||||
|
||||
if Config.SendNotification then
|
||||
local msg = Config.NotificationMsg
|
||||
local type = "success"
|
||||
|
||||
Notify(msg, type)
|
||||
end
|
||||
if Config.ResetTasks then
|
||||
ClearPedTasks(xPlayer)
|
||||
end
|
||||
end, false)
|
||||
|
||||
|
||||
|
||||
function Notify(msg, type)
|
||||
if Config.Notify == "ESX" then
|
||||
if type == "info" then
|
||||
ESX.ShowNotification(msg, type, 5000)
|
||||
end
|
||||
if type == "success" then
|
||||
ESX.ShowNotification(msg, type, 5000)
|
||||
end
|
||||
if type == "error" then
|
||||
ESX.ShowNotification(msg, type, 5000)
|
||||
end
|
||||
elseif Config.Notify == "qb-core" then
|
||||
if type == "primary" then
|
||||
QBCore.Functions.Notify(msg, "primary", 5000)
|
||||
end
|
||||
if type == "success" then
|
||||
QBCore.Functions.Notify(msg, "success", 5000)
|
||||
end
|
||||
if type == "error" then
|
||||
QBCore.Functions.Notify(msg, "error", 5000)
|
||||
end
|
||||
elseif Config.Notify == "standalone" then
|
||||
ShowNotification(msg)
|
||||
elseif Config.Notify == "custom" then
|
||||
--add here your notify trigger
|
||||
else
|
||||
print("Unknown framework specified in Config.Framework!")
|
||||
end
|
||||
end
|
||||
|
||||
function ShowNotification(msg)
|
||||
SetNotificationTextEntry("STRING")
|
||||
AddTextComponentString(msg)
|
||||
DrawNotification(false, true)
|
||||
end
|
9
resources/[Developer]/[Nordi]/PS_PropFix/config.lua
Normal file
|
@ -0,0 +1,9 @@
|
|||
Config = {}
|
||||
|
||||
|
||||
Config.Framework = "ESX" -- ESX / qb-core / standalone
|
||||
Config.PropFixCommand = "propfix" --Add here your command to delet the props.
|
||||
Config.ResetTasks = true --If this is true, all animations will be canceled to.
|
||||
Config.SendNotification = true --If you want that the player get a notification then put this to ture
|
||||
Config.NotificationMsg = "All bugged props got deleted!" -- Add here your notification text that should displayed for your players
|
||||
Config.Notify = "ESX" --Change here you notifysystem qb-core / ESX / standalone / custom (for custom you need to add the trigger in the client.lua line 73)
|
32
resources/[Developer]/[Nordi]/PS_PropFix/fxmanifest.lua
Normal file
|
@ -0,0 +1,32 @@
|
|||
fx_version 'cerulean'
|
||||
game 'gta5'
|
||||
|
||||
author 'PlexScripts'
|
||||
description 'PS_PropFix'
|
||||
version '1.0.0'
|
||||
|
||||
lua54 'yes'
|
||||
|
||||
|
||||
escrow_ignore {
|
||||
'config.lua',
|
||||
'client/client.lua',
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
client_scripts {
|
||||
'config.lua',
|
||||
'client/client.lua',
|
||||
|
||||
|
||||
}
|
||||
|
||||
escrow_ignore {
|
||||
'config.lua',
|
||||
'client/client.lua',
|
||||
}
|
||||
|
||||
|
||||
dependency '/assetpacks'
|
|
@ -2,22 +2,22 @@ Cfg = {}
|
|||
|
||||
--REQUIRED
|
||||
|
||||
Cfg.uploadMethodKey = 'BpyLtdfJXjnzqW3v7MdInuZVCHrpRQkq' --API Key for the upload method (https://www.fivemanage.com/ or https://fivemerr.com/)
|
||||
Cfg.uploadMethodKey = 'API_KEY' --API Key for the upload method (https://www.fivemanage.com/ or https://fivemerr.com/)
|
||||
|
||||
|
||||
--OPTIONAL --https://discord.com/api/webhooks/1379186796046581811/SHuxF1RBqS-YH5zDDRrB-IYtV_FxDAV5E0A5bPXb-9wqvY3cDogbnaajjbG4clSVeHUN
|
||||
--OPTIONAL
|
||||
Cfg.CryptoWebhook = 'DISCORD WEBHOOK' --Webhook for crypto app
|
||||
Cfg.MessageWebhook = 'https://discord.com/api/webhooks/1366651359566364712/zlVyc3ZCk-Cv25NysjZWConvaCflHdECMI3f7WAgpa34HzAU_SpiXh18huWLK28vFQea' --Webhook for messages app
|
||||
Cfg.ValetWebhook = 'https://discord.com/api/webhooks/1379187215611068570/RdpSlDjn59Wlj_XKzCZQQsm1X6GkVdqdGhNuDPS0qOTwg_KfwofFiB-Zv6r-McHLzWE_' --Webhook for valet app
|
||||
Cfg.TweetWaveWebhook = 'https://discord.com/api/webhooks/1379186646318190784/ZRGm-wt_bbA0zbLJxOb0KzlcIwFUrXKIqiOHTf7HqVikxldmGPdi2wqui4IqtxkheMl8' --Webhook for tweetwave app
|
||||
Cfg.MailWebhook = 'https://discord.com/api/webhooks/1379187307835297995/0m_jGxKa_zRTFZs_TDco1xUmh4X7T0MBw2oLrCT93MymkARfxZjylb7b4rH3N9CPeDu7' --Webhook for mail app
|
||||
Cfg.BankWebhook = 'https://discord.com/api/webhooks/1379187215611068570/RdpSlDjn59Wlj_XKzCZQQsm1X6GkVdqdGhNuDPS0qOTwg_KfwofFiB-Zv6r-McHLzWE_' --Webhook for bank app
|
||||
Cfg.AdvertisingWebhook = 'https://discord.com/api/webhooks/1379187467437084773/vGn5yeDWq5Y_M6g-AoNuFh8T4YnjIE0KztEf382eKHMOETv8zy1KDCqQfc8zdgJ7IbRd' --Webhook for advertising app
|
||||
Cfg.MessageWebhook = 'DISCORD WEBHOOK' --Webhook for messages app
|
||||
Cfg.ValetWebhook = 'DISCORD WEBHOOK' --Webhook for valet app
|
||||
Cfg.TweetWaveWebhook = 'DISCORD WEBHOOK' --Webhook for tweetwave app
|
||||
Cfg.MailWebhook = 'DISCORD WEBHOOK' --Webhook for mail app
|
||||
Cfg.BankWebhook = 'DISCORD WEBHOOK' --Webhook for bank app
|
||||
Cfg.AdvertisingWebhook = 'DISCORD WEBHOOK' --Webhook for advertising app
|
||||
Cfg.ConnectWebhook = 'DISCORD WEBHOOK' --Webhook for connect app
|
||||
Cfg.ServiceWebhook = 'https://discord.com/api/webhooks/1379187562907963513/XrERdwj1VUiD2Ik5M8s2Dxg2g-olsnGcZacBzXlczx18XctPkid7NGxdeu1Rjm7i1Opd' --Webhook for service app
|
||||
Cfg.DarkchatWebhook = 'https://discord.com/api/webhooks/1379186499433791539/5tLF53VP8hTMQ7J8h8ZjQzMrXywkbjAK-d_uy-FYU8uygEl6pW2LCColD7wdzCOGP3Ew' --Webhook for darkchat app
|
||||
Cfg.CallWebhook = 'https://discord.com/api/webhooks/1379187697431744534/PeHW8m7IzMb2p_fijR-haHvNeNJrmcn6XmPjBKt2AqSBfMIh_wnXWO2hgu5KDtp309HS' --Webhook for calls
|
||||
Cfg.TweetWaveCommentsWebhook = 'https://discord.com/api/webhooks/1379186646318190784/ZRGm-wt_bbA0zbLJxOb0KzlcIwFUrXKIqiOHTf7HqVikxldmGPdi2wqui4IqtxkheMl8' --Webhook for tweetwave comments
|
||||
Cfg.ServiceWebhook = 'DISCORD WEBHOOK' --Webhook for service app
|
||||
Cfg.DarkchatWebhook = 'DISCORD WEBHOOK' --Webhook for darkchat app
|
||||
Cfg.CallWebhook = 'DISCORD_WEBHOOK' --Webhook for calls
|
||||
Cfg.TweetWaveCommentsWebhook = 'DISCORD_WEBHOOK' --Webhook for tweetwave comments
|
||||
Cfg.ConnectCommentsWebhook = 'DISCORD_WEBHOOK' --Webhook for connect comments
|
||||
|
||||
Cfg.YellowPageFee = 0 --Yellow page fee
|
||||
|
|
|
@ -2,16 +2,15 @@ JobCalls = {}
|
|||
|
||||
JobCalls.Positions = {
|
||||
{
|
||||
name = "LSPD",
|
||||
coords = vector3(454.1813, -984.4214, 30.6611),
|
||||
vector3(1826.7273, 3672.7727, 34.4050),
|
||||
name = "Police",
|
||||
coords = vector3(441.0, -981.0, 29.7),
|
||||
number = 911,
|
||||
needjob = "police",
|
||||
useMarker = true,
|
||||
useMarker = false,
|
||||
marker = {
|
||||
drawDistance = 10.0,
|
||||
type = 25,
|
||||
size = {x = 1.0, y = 1.0, z = .0},
|
||||
size = {x = 4.0, y = 4.0, z = 4.0},
|
||||
color = {r = 50, g = 50, b = 204}
|
||||
},
|
||||
blip = {
|
||||
|
@ -25,14 +24,14 @@ JobCalls.Positions = {
|
|||
},
|
||||
{
|
||||
name = "Ambulance",
|
||||
coords = vector3(-1850.6589, -335.9239, 49.4508),
|
||||
number = 912,
|
||||
coords = vector3(298.0, -584.0, 42.3),
|
||||
number = 112,
|
||||
needjob = "ambulance",
|
||||
useMarker = true,
|
||||
useMarker = false,
|
||||
marker = {
|
||||
drawDistance = 10.0,
|
||||
type = 25,
|
||||
size = {x = 1.0, y = 1.0, z = 1.0},
|
||||
size = {x = 4.0, y = 4.0, z = 4.0},
|
||||
color = {r = 50, g = 50, b = 204}
|
||||
},
|
||||
blip = {
|
||||
|
@ -43,216 +42,5 @@ JobCalls.Positions = {
|
|||
scale = 0.8,
|
||||
display = 4
|
||||
}
|
||||
},
|
||||
{
|
||||
name = "DOJ",
|
||||
coords = vector3(-434.8877, 1087.1594, 329.7666),
|
||||
number = 913,
|
||||
needjob = "doj",
|
||||
useMarker = true,
|
||||
marker = {
|
||||
drawDistance = 10.0,
|
||||
type = 25,
|
||||
size = {x = 1.0, y = 1.0, z = 1.0},
|
||||
color = {r = 50, g = 50, b = 204}
|
||||
},
|
||||
blip = {
|
||||
active = false,
|
||||
name = "DOJ Control center",
|
||||
sprite = 61,
|
||||
color = 1,
|
||||
scale = 0.8,
|
||||
display = 4
|
||||
}
|
||||
},
|
||||
{
|
||||
name = "Marshals",
|
||||
coords = vector3(-451.0457, 6009.7314, 31.9537),
|
||||
number = 916,
|
||||
needjob = "marshal",
|
||||
useMarker = true,
|
||||
marker = {
|
||||
drawDistance = 10.0,
|
||||
type = 25,
|
||||
size = {x = 1.0, y = 1.0, z = 1.0},
|
||||
color = {r = 50, g = 50, b = 204}
|
||||
},
|
||||
blip = {
|
||||
active = false,
|
||||
name = "Marshal Control center",
|
||||
sprite = 61,
|
||||
color = 1,
|
||||
scale = 0.8,
|
||||
display = 4
|
||||
}
|
||||
},
|
||||
{
|
||||
name = "Down Town Cab",
|
||||
coords = vector3(-1249.6327, -285.0953, 37.7374),
|
||||
number = 555,
|
||||
needjob = "cab",
|
||||
useMarker = true,
|
||||
marker = {
|
||||
drawDistance = 10.0,
|
||||
type = 25,
|
||||
size = {x = 1.0, y = 1.0, z = 1.0},
|
||||
color = {r = 50, g = 50, b = 204}
|
||||
},
|
||||
blip = {
|
||||
active = false,
|
||||
name = "Taxi Control center",
|
||||
sprite = 61,
|
||||
color = 1,
|
||||
scale = 0.8,
|
||||
display = 4
|
||||
}
|
||||
},
|
||||
{
|
||||
name = "PHP",
|
||||
coords = vector3(-922.5777, -2034.8556, 9.5075),
|
||||
number = 5556969,
|
||||
needjob = "mechanic",
|
||||
useMarker = true,
|
||||
marker = {
|
||||
drawDistance = 10.0,
|
||||
type = 25,
|
||||
size = {x = 1.0, y = 1.0, z = 1.0},
|
||||
color = {r = 50, g = 50, b = 204}
|
||||
},
|
||||
blip = {
|
||||
active = false,
|
||||
name = "PHP Control center",
|
||||
sprite = 61,
|
||||
color = 1,
|
||||
scale = 0.8,
|
||||
display = 4
|
||||
}
|
||||
},
|
||||
{
|
||||
name = "Moonlight Cinema",
|
||||
coords = vector3(2056.4062, 3085.5830, 46.7286),
|
||||
number = 5551337,
|
||||
needjob = "cinema",
|
||||
useMarker = true,
|
||||
marker = {
|
||||
drawDistance = 10.0,
|
||||
type = 25,
|
||||
size = {x = 1.0, y = 1.0, z = 1.0},
|
||||
color = {r = 50, g = 50, b = 204}
|
||||
},
|
||||
blip = {
|
||||
active = false,
|
||||
name = "Kino Control center",
|
||||
sprite = 61,
|
||||
color = 1,
|
||||
scale = 0.8,
|
||||
display = 4
|
||||
}
|
||||
},
|
||||
{
|
||||
name = "PHP Autos",
|
||||
coords = vector3(-918.4106, -2030.3401, 9.5075),
|
||||
number = 555666,
|
||||
needjob = "php_car",
|
||||
useMarker = true,
|
||||
marker = {
|
||||
drawDistance = 10.0,
|
||||
type = 25,
|
||||
size = {x = 1.0, y = 1.0, z = 1.0},
|
||||
color = {r = 50, g = 50, b = 204}
|
||||
},
|
||||
blip = {
|
||||
active = false,
|
||||
name = "PHP Car Control center",
|
||||
sprite = 61,
|
||||
color = 1,
|
||||
scale = 0.8,
|
||||
display = 4
|
||||
}
|
||||
},
|
||||
{
|
||||
name = "Skyline Events",
|
||||
coords = vector3(-2997.0623, 54.7228, 12.2634),
|
||||
number = 555062,
|
||||
needjob = "sykline",
|
||||
useMarker = true,
|
||||
marker = {
|
||||
drawDistance = 10.0,
|
||||
type = 25,
|
||||
size = {x = 1.0, y = 1.0, z = 1.0},
|
||||
color = {r = 50, g = 50, b = 204}
|
||||
},
|
||||
blip = {
|
||||
active = false,
|
||||
name = "Skyline Control center",
|
||||
sprite = 61,
|
||||
color = 1,
|
||||
scale = 0.8,
|
||||
display = 4
|
||||
}
|
||||
},
|
||||
{
|
||||
name = "Kayas",
|
||||
coords = vector3(1532.7052, 3784.6868, 34.5125),
|
||||
number = 5558563,
|
||||
needjob = "kayas",
|
||||
useMarker = true,
|
||||
marker = {
|
||||
drawDistance = 10.0,
|
||||
type = 25,
|
||||
size = {x = 1.0, y = 1.0, z = 1.0},
|
||||
color = {r = 50, g = 50, b = 204}
|
||||
},
|
||||
blip = {
|
||||
active = false,
|
||||
name = "Kayas Control center",
|
||||
sprite = 61,
|
||||
color = 1,
|
||||
scale = 0.8,
|
||||
display = 4
|
||||
}
|
||||
},
|
||||
{
|
||||
name = "Zum Durstigen Dackel",
|
||||
coords = vector3(837.9596, -117.0045, 79.7747),
|
||||
number = 5557294,
|
||||
needjob = "dackel",
|
||||
useMarker = true,
|
||||
marker = {
|
||||
drawDistance = 10.0,
|
||||
type = 25,
|
||||
size = {x = 1.0, y = 1.0, z = 1.0},
|
||||
color = {r = 50, g = 50, b = 204}
|
||||
},
|
||||
blip = {
|
||||
active = false,
|
||||
name = "Kayas Control center",
|
||||
sprite = 61,
|
||||
color = 1,
|
||||
scale = 0.8,
|
||||
display = 4
|
||||
}
|
||||
},
|
||||
{
|
||||
name = "Odins Bar",
|
||||
coords = vector3(837.9596, -117.0045, 79.7747),
|
||||
number = 5557294,
|
||||
needjob = "dackel",
|
||||
useMarker = true,
|
||||
marker = {
|
||||
drawDistance = 10.0,
|
||||
type = 25,
|
||||
size = {x = 1.0, y = 1.0, z = 1.0},
|
||||
color = {r = 50, g = 50, b = 204}
|
||||
},
|
||||
blip = {
|
||||
active = false,
|
||||
name = "Odins Control center",
|
||||
sprite = 61,
|
||||
color = 1,
|
||||
scale = 0.8,
|
||||
display = 4
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -206,7 +206,7 @@ function setRadioChannel(frequenz, playername)
|
|||
apptitle = "APP_RADIO_NAME",
|
||||
title = Lang:t('info.radiojoined', { value = frequenz }),
|
||||
message = nil,
|
||||
img = "/public/img/Apps/radio.png"
|
||||
img = "/public/img/Apps/light_mode/radio.webp"
|
||||
})
|
||||
|
||||
setInRadio(true)
|
||||
|
|
|
@ -16,7 +16,7 @@ RegisterNUICallback('searchCar', function(data, cb)
|
|||
TriggerEvent("roadphone:sendNotification", {
|
||||
apptitle = 'APP_VALET_NAME',
|
||||
title = 'APP_VALET_TITLE_WAYPOINT',
|
||||
img = "/public/img/Apps/valet.jpg"
|
||||
img = "/public/img/Apps/light_mode/valet.webp"
|
||||
})
|
||||
|
||||
end
|
||||
|
@ -38,7 +38,7 @@ RegisterNUICallback('searchCar', function(data, cb)
|
|||
TriggerEvent("roadphone:sendNotification", {
|
||||
apptitle = "APP_VALET_NAME",
|
||||
title = "APP_VALET_TITLE_WAYPOINT",
|
||||
img = "/public/img/Apps/valet.jpg"
|
||||
img = "/public/img/Apps/light_mode/valet.webp"
|
||||
})
|
||||
cb('ok')
|
||||
return
|
||||
|
@ -49,65 +49,70 @@ RegisterNUICallback('searchCar', function(data, cb)
|
|||
TriggerEvent("roadphone:sendNotification", {
|
||||
apptitle = "APP_VALET_NAME",
|
||||
title = "APP_VALET_TITLE_CARNOTOUT",
|
||||
img = "/public/img/Apps/valet.jpg"
|
||||
img = "/public/img/Apps/light_mode/valet.webp"
|
||||
})
|
||||
end, data.plate)
|
||||
|
||||
cb('ok')
|
||||
end)
|
||||
|
||||
-- RegisterNUICallback("deliverormarkcar", function(data, cb)
|
||||
-- QBCore.Functions.TriggerCallback("roadphone:valet:loadVehicle", function(vehicle, coords)
|
||||
-- if not vehicle and not coords then
|
||||
-- return
|
||||
-- end
|
||||
-- if vehicle == false then
|
||||
-- if coords then
|
||||
-- SetNewWaypoint(coords.x, coords.y)
|
||||
-- TriggerEvent("roadphone:sendNotification", {
|
||||
-- apptitle = 'APP_VALET_NAME',
|
||||
-- title = 'APP_VALET_TITLE_WAYPOINT',
|
||||
-- img = "/public/img/Apps/valet.jpg"
|
||||
-- })
|
||||
-- end
|
||||
-- return;
|
||||
-- end
|
||||
RegisterNUICallback("deliverormarkcar", function(data, cb)
|
||||
QBCore.Functions.TriggerCallback("roadphone:valet:loadVehicle", function(vehicle, coords)
|
||||
|
||||
-- local plate = vehicle[1].plate
|
||||
if not vehicle and not coords then
|
||||
return
|
||||
end
|
||||
|
||||
-- local gameVehicles = GetGamePool('CVehicle')
|
||||
-- for i = 1, #gameVehicles do
|
||||
-- local vehicle = gameVehicles[i]
|
||||
-- if DoesEntityExist(vehicle) then
|
||||
-- if GetVehicleNumberPlateText(vehicle) == plate then
|
||||
-- local vehicleCoords = GetEntityCoords(vehicle)
|
||||
-- SetNewWaypoint(vehicleCoords.x, vehicleCoords.y)
|
||||
-- TriggerEvent("roadphone:sendNotification", {
|
||||
-- apptitle = 'APP_VALET_NAME',
|
||||
-- title = 'APP_VALET_TITLE_WAYPOINT',
|
||||
-- img = "/public/img/Apps/valet.jpg"
|
||||
-- })
|
||||
-- cb('ok')
|
||||
-- return
|
||||
-- end
|
||||
-- end
|
||||
-- end
|
||||
if vehicle == false then
|
||||
if coords then
|
||||
SetNewWaypoint(coords.x, coords.y)
|
||||
TriggerEvent("roadphone:sendNotification", {
|
||||
apptitle = 'APP_VALET_NAME',
|
||||
title = 'APP_VALET_TITLE_WAYPOINT',
|
||||
img = "/public/img/Apps/light_mode/valet.webp"
|
||||
})
|
||||
|
||||
-- QBCore.Functions.TriggerCallback("roadphone:valet:checkMoney", function(cb)
|
||||
-- if cb then
|
||||
-- SpawnVehicle(vehicle[1].vehicle, plate, json.decode(vehicle[1].mods))
|
||||
-- end
|
||||
-- end)
|
||||
end
|
||||
return;
|
||||
end
|
||||
|
||||
-- end, data.plate)
|
||||
local plate = vehicle[1].plate
|
||||
|
||||
-- cb('ok')
|
||||
-- end)
|
||||
local gameVehicles = GetGamePool('CVehicle')
|
||||
|
||||
for i = 1, #gameVehicles do
|
||||
local vehicle = gameVehicles[i]
|
||||
|
||||
if DoesEntityExist(vehicle) then
|
||||
if GetVehicleNumberPlateText(vehicle) == plate then
|
||||
local vehicleCoords = GetEntityCoords(vehicle)
|
||||
SetNewWaypoint(vehicleCoords.x, vehicleCoords.y)
|
||||
TriggerEvent("roadphone:sendNotification", {
|
||||
apptitle = 'APP_VALET_NAME',
|
||||
title = 'APP_VALET_TITLE_WAYPOINT',
|
||||
img = "/public/img/Apps/light_mode/valet.webp"
|
||||
})
|
||||
cb('ok')
|
||||
return
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
QBCore.Functions.TriggerCallback("roadphone:valet:checkMoney", function(cb)
|
||||
|
||||
if cb then
|
||||
SpawnVehicle(vehicle[1].vehicle, plate, json.decode(vehicle[1].mods))
|
||||
end
|
||||
end)
|
||||
|
||||
end, data.plate)
|
||||
|
||||
cb('ok')
|
||||
|
||||
end)
|
||||
|
||||
function SpawnVehicle(vehicle, plate, mods)
|
||||
|
||||
print("RoadPhone Valet: "..plate)
|
||||
local player = PlayerPedId()
|
||||
local playerPos = GetEntityCoords(player)
|
||||
local found, spawnPos, spawnHeading = GetClosestVehicleNodeWithHeading(playerPos.x + math.random(-100, 100),
|
||||
|
@ -196,6 +201,15 @@ RegisterNUICallback("getCars", function(data, cb)
|
|||
for i = 1, #data do
|
||||
if(data[i]) then
|
||||
local vehiclename = data[i].vehicle
|
||||
|
||||
local vehiclemodelnames = getVehicleNames()
|
||||
|
||||
for k, v in pairs(vehiclemodelnames) do
|
||||
if v[1] == model then
|
||||
vehiclename = v[2]
|
||||
end
|
||||
end
|
||||
|
||||
data[i].vehicle = {}
|
||||
data[i].vehicle.model = vehiclename
|
||||
end
|
||||
|
|
|
@ -10,7 +10,7 @@ Config.uploadMethod = 'fivemanage' -- Options: fivemanage, fivemerr (Setup API_K
|
|||
-- RoadShop scripts
|
||||
Config.RoadPad = false -- Enable if using RoadPad
|
||||
Config.RoadCarPlay = false -- Enable if using RoadCarPlay
|
||||
Config.SimCardDLC = true -- Enable if using RoadPhone SimCard DLC
|
||||
Config.SimCardDLC = false -- Enable if using RoadPhone SimCard DLC
|
||||
|
||||
-- Phone Settings
|
||||
Config.PhoneCommand = "TogglePhone"
|
||||
|
@ -24,6 +24,7 @@ Config.Fahrenheit = false -- Use Fahrenheit instead of Celsius
|
|||
|
||||
-- Items Configuration
|
||||
Config.Items = {
|
||||
"phone",
|
||||
"purple_phone",
|
||||
"green_phone",
|
||||
"red_phone",
|
||||
|
@ -43,7 +44,7 @@ Config.SaltyExport = "saltychat"
|
|||
|
||||
Config.UsePmaVoice = false
|
||||
Config.UseMumbleVoip = false
|
||||
Config.UseSaltyChat = true
|
||||
Config.UseSaltyChat = false
|
||||
Config.UseTokoVoip = false
|
||||
Config.UseYacaVoice = false
|
||||
Config.SaltyChatFix = false -- Fix issues with SaltyChat if true
|
||||
|
@ -55,15 +56,14 @@ Config.EventNumbers = {
|
|||
|
||||
-- Addons
|
||||
Config.Addons = {
|
||||
['jobcalls'] = true,
|
||||
['roadpods'] = true
|
||||
['jobcalls'] = true
|
||||
}
|
||||
|
||||
-- Valet Configuration
|
||||
Config.ValetServerSideCheck = true
|
||||
Config.ValetPedModel = "s_m_y_valet_01"
|
||||
Config.ValetRadius = 500.0
|
||||
Config.ValetDeliveryPrice = 5000
|
||||
Config.ValetDeliveryPrice = 500
|
||||
Config.OwnedVehiclesTable = "player_vehicles"
|
||||
|
||||
-- Walkable Camera
|
||||
|
@ -74,15 +74,14 @@ Config.Crypto = true
|
|||
|
||||
-- Radio Settings
|
||||
Config.RemoveFromRadioWhenDead = true
|
||||
Config.RadioNeedItem = true
|
||||
Config.RadioNeedItem = false
|
||||
Config.RadioItems = {
|
||||
"radio"
|
||||
}
|
||||
Config.lockedRadioChannels = {
|
||||
{ frq = 1, jobhasaccess = {"police"} },
|
||||
{ frq = 2, jobhasaccess = {"ambulance"} },
|
||||
{ frq = 3, jobhasaccess = {"police", "ambulance","marshal"} },
|
||||
{ frq = 4, jobhasaccess = {"marshal"} },
|
||||
{ frq = 3, jobhasaccess = {"police", "ambulance"} }
|
||||
}
|
||||
|
||||
-- Camera App
|
||||
|
@ -90,12 +89,12 @@ Config.CameraDelay = 2000 -- Delay between taking pictures
|
|||
|
||||
-- Taxi Configuration
|
||||
Config.TaxiPrice = 100 -- Price per kilometer
|
||||
Config.TaxiJob = "cab"
|
||||
Config.TaxiSociety = "cab"
|
||||
Config.TaxiSocietyEnabled = true --money goes to society account instead of player account
|
||||
Config.TaxiJob = "taxi"
|
||||
Config.TaxiSociety = "society_taxi"
|
||||
Config.TaxiSocietyEnabled = false --money goes to society account instead of player account
|
||||
|
||||
-- Rent Configuration
|
||||
Config.RentVehicleSpawnRadius = 6000.0
|
||||
Config.RentVehicleSpawnRadius = 500.0
|
||||
Config.RentVehicleModel = "s_m_y_valet_01"
|
||||
|
||||
-- Billing Systems
|
||||
|
@ -114,14 +113,14 @@ Config.codemBilling2Folder = "codem-billing"
|
|||
Config.codeMInventory = false
|
||||
|
||||
-- Banking System
|
||||
Config.okokBanking = true
|
||||
Config.okokBanking = false
|
||||
|
||||
-- Garage Systems
|
||||
Config.JGAdvancedGarages = false
|
||||
Config.cdGarages = false
|
||||
|
||||
-- Miscellaneous Integrations
|
||||
Config.VisnAre = true
|
||||
Config.VisnAre = false
|
||||
Config.MXSurround = false
|
||||
|
||||
-- Custom Props
|
||||
|
@ -144,4 +143,6 @@ Config.ClientSideInventoryValidation = false -- Use with caution
|
|||
-- Flashlight Sync / USE WITH CAUSION HIGH CLIENT & SERVER PERFORMANCE IMPACT
|
||||
Config.SyncFlashlight = false -- Sync flashlight with other players
|
||||
|
||||
Config.CallCheckExperimental = true -- Experimental call check
|
||||
Config.CallCheckExperimental = true -- Experimental call check
|
||||
|
||||
Config.CallControl = true -- Enable call control / example: Accept, Decline, End Call with Enter and Backspace
|
|
@ -4,7 +4,7 @@ game 'gta5'
|
|||
|
||||
author 'RoadShop | https://fivem.roadshop.org'
|
||||
description 'RoadPhone-Pro FiveM Phone'
|
||||
version '1.4.3'
|
||||
version '1.5.0'
|
||||
|
||||
lua54 'yes'
|
||||
|
||||
|
@ -64,13 +64,12 @@ client_scripts {
|
|||
}
|
||||
|
||||
server_scripts {
|
||||
'@oxmysql/lib/MySQL.lua',
|
||||
--'@mysql-async/lib/MySQL.lua',
|
||||
--'@oxmysql/lib/MySQL.lua',
|
||||
'@mysql-async/lib/MySQL.lua',
|
||||
'API.lua',
|
||||
'server/server.lua',
|
||||
'server/serverAPI/serverAPI.lua',
|
||||
'server/service.lua',
|
||||
'server/valet.lua',
|
||||
'server/tweetwave.lua',
|
||||
'server/serverAPI/valet.lua',
|
||||
'server/mail_app.lua',
|
||||
|
@ -107,7 +106,7 @@ escrow_ignore {
|
|||
}
|
||||
|
||||
dependencies {
|
||||
'/server:7290',
|
||||
'/server:13227',
|
||||
'/onesync',
|
||||
'qb-core',
|
||||
'xsound'
|
||||
|
@ -146,5 +145,5 @@ server_exports {
|
|||
'sendMailOffline',
|
||||
'sendDispatch',
|
||||
'sendDispatchAnonym'
|
||||
}
|
||||
}
|
||||
dependency '/assetpacks'
|
After Width: | Height: | Size: 7.6 KiB |
BIN
resources/[phone]/roadphone/public/assets/appshop-C-751JhG.webp
Normal file
After Width: | Height: | Size: 5.3 KiB |
BIN
resources/[phone]/roadphone/public/assets/bank-CTJsSFTQ.webp
Normal file
After Width: | Height: | Size: 6.7 KiB |
4871
resources/[phone]/roadphone/public/assets/index-F6beCyJK.js
Normal file
BIN
resources/[phone]/roadphone/public/assets/message-B8smHeJW.webp
Normal file
After Width: | Height: | Size: 7.4 KiB |
BIN
resources/[phone]/roadphone/public/assets/music-CJFyZrED.webp
Normal file
After Width: | Height: | Size: 6.1 KiB |
BIN
resources/[phone]/roadphone/public/img/Apps/dark_mode/2048.webp
Normal file
After Width: | Height: | Size: 8.1 KiB |
After Width: | Height: | Size: 7.9 KiB |
After Width: | Height: | Size: 8.3 KiB |
After Width: | Height: | Size: 3.9 KiB |
BIN
resources/[phone]/roadphone/public/img/Apps/dark_mode/bank.webp
Normal file
After Width: | Height: | Size: 5.6 KiB |
After Width: | Height: | Size: 8.5 KiB |
After Width: | Height: | Size: 4.2 KiB |
BIN
resources/[phone]/roadphone/public/img/Apps/dark_mode/call.webp
Normal file
After Width: | Height: | Size: 6.5 KiB |
After Width: | Height: | Size: 4.4 KiB |
BIN
resources/[phone]/roadphone/public/img/Apps/dark_mode/clock.webp
Normal file
After Width: | Height: | Size: 6.4 KiB |
After Width: | Height: | Size: 7.7 KiB |
After Width: | Height: | Size: 7.6 KiB |
After Width: | Height: | Size: 6.2 KiB |
After Width: | Height: | Size: 4.8 KiB |
After Width: | Height: | Size: 7.4 KiB |
After Width: | Height: | Size: 5 KiB |
After Width: | Height: | Size: 4 KiB |
BIN
resources/[phone]/roadphone/public/img/Apps/dark_mode/gps.webp
Normal file
After Width: | Height: | Size: 6.1 KiB |
After Width: | Height: | Size: 6.9 KiB |
After Width: | Height: | Size: 5.2 KiB |
BIN
resources/[phone]/roadphone/public/img/Apps/dark_mode/mail.webp
Normal file
After Width: | Height: | Size: 5.3 KiB |
BIN
resources/[phone]/roadphone/public/img/Apps/dark_mode/memes.webp
Normal file
After Width: | Height: | Size: 6.8 KiB |
After Width: | Height: | Size: 5.9 KiB |
BIN
resources/[phone]/roadphone/public/img/Apps/dark_mode/music.webp
Normal file
After Width: | Height: | Size: 5.2 KiB |
BIN
resources/[phone]/roadphone/public/img/Apps/dark_mode/news.webp
Normal file
After Width: | Height: | Size: 5.5 KiB |
BIN
resources/[phone]/roadphone/public/img/Apps/dark_mode/notes.webp
Normal file
After Width: | Height: | Size: 5.2 KiB |
BIN
resources/[phone]/roadphone/public/img/Apps/dark_mode/radio.webp
Normal file
After Width: | Height: | Size: 5 KiB |
After Width: | Height: | Size: 8.5 KiB |
After Width: | Height: | Size: 7.2 KiB |
After Width: | Height: | Size: 6.1 KiB |
After Width: | Height: | Size: 8 KiB |
After Width: | Height: | Size: 6 KiB |
BIN
resources/[phone]/roadphone/public/img/Apps/dark_mode/valet.webp
Normal file
After Width: | Height: | Size: 7.1 KiB |
After Width: | Height: | Size: 5.2 KiB |
After Width: | Height: | Size: 5.1 KiB |
After Width: | Height: | Size: 4.4 KiB |
After Width: | Height: | Size: 8.3 KiB |
BIN
resources/[phone]/roadphone/public/img/Apps/light_mode/2048.webp
Normal file
After Width: | Height: | Size: 8.9 KiB |
After Width: | Height: | Size: 9.6 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 5.3 KiB |
BIN
resources/[phone]/roadphone/public/img/Apps/light_mode/bank.webp
Normal file
After Width: | Height: | Size: 6.7 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 5.8 KiB |
BIN
resources/[phone]/roadphone/public/img/Apps/light_mode/call.webp
Normal file
After Width: | Height: | Size: 9.1 KiB |
After Width: | Height: | Size: 7.1 KiB |
After Width: | Height: | Size: 9.6 KiB |
After Width: | Height: | Size: 8.7 KiB |
After Width: | Height: | Size: 9.2 KiB |
After Width: | Height: | Size: 6.2 KiB |
After Width: | Height: | Size: 7.2 KiB |
After Width: | Height: | Size: 6.8 KiB |
After Width: | Height: | Size: 7.1 KiB |
After Width: | Height: | Size: 5.9 KiB |
BIN
resources/[phone]/roadphone/public/img/Apps/light_mode/gps.webp
Normal file
After Width: | Height: | Size: 7.1 KiB |
After Width: | Height: | Size: 9.1 KiB |
After Width: | Height: | Size: 7.5 KiB |
BIN
resources/[phone]/roadphone/public/img/Apps/light_mode/mail.webp
Normal file
After Width: | Height: | Size: 7.2 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 7.4 KiB |
After Width: | Height: | Size: 6.1 KiB |