feat: esx backwards compatibility

This commit is contained in:
Andyyy7666
2023-11-11 19:01:40 +01:00
parent 34346f39a9
commit bad05a81ca
4 changed files with 115 additions and 32 deletions

View File

@@ -8,6 +8,7 @@ NDCore.Streaming = {}
NDCore.UI = {}
NDCore.UI.HUD = {}
NDCore.UI.Menu = {}
NDCore.PlayerData = {}
local uiMetatable = {
__index = function(table, key)
@@ -35,6 +36,7 @@ end)
function NDCore.GetPlayerData()
local player = NDCore.getPlayer()
if not player then return {} end
player.Accounts = {
Bank = player.bank,
@@ -42,7 +44,31 @@ function NDCore.GetPlayerData()
Black = player.Cash
}
-- add more here
if player.jobInfo then
player.job = {
id = player.job,
name = player.job,
label = player.jobInfo.label,
grade = player.jobInfo.rank,
grade_name = player.jobInfo.rankName,
grade_label = player.jobInfo.rankName,
grade_salary = 0,
skin_male = {},
skin_female = {}
}
end
player.coords = GetEntityCoords(cache.ped)
player.loadout = {}
player.maxWeight = exports.ox_inventory:GetPlayerMaxWeight()
player.money = player.Accounts.Money
player.sex = player.gender
player.firstName = player.firstname
player.lastName = player.lastname
player.dateofbirth = player.dob
player.height = 120
player.dead = LocalPlayer.state.dead or false
NDCore.PlayerData = player
return player
end
@@ -62,7 +88,7 @@ function NDCore.Progressbar(message, lenght, options)
newOptions.anim = {}
if options.animation.type == "anim" then
if options.animation.dict then
newOptions.anim.dict = options.animation.dict,
newOptions.anim.dict = options.animation.dict
end
if options.animation.lib then
newOptions.anim.clip = options.animation.lib
@@ -319,11 +345,9 @@ function NDCore.Game.SpawnLocalObject(model, coords, cb)
end
local entity = CreateObject(model, coords.x, coords.y, coords.z, false, false, false)
entity = lib.waitFor(function()
if DoesEntityExist(entity) end
if DoesEntityExist(entity) then return entity end
end)
if cb then
cb(entity)
end
if cb then cb(entity) end
return entity
end
@@ -333,11 +357,9 @@ function NDCore.Game.SpawnLocalVehicle(model, coords, heading, cb)
end
local entity = CreateVehicle(model, coords.x, coords.y, coords.z, heading, false, false, false)
entity = lib.waitFor(function()
if DoesEntityExist(entity) end
if DoesEntityExist(entity) then return entity end
end)
if cb then
cb(entity)
end
if cb then cb(entity) end
return entity
end
@@ -347,11 +369,9 @@ function NDCore.Game.SpawnObject(model, coords, cb)
end
local entity = CreateObject(model, coords.x, coords.y, coords.z, true, false, false)
entity = lib.waitFor(function()
if DoesEntityExist(entity) end
if DoesEntityExist(entity) then return entity end
end)
if cb then
cb(entity)
end
if cb then cb(entity) end
return entity
end
@@ -361,11 +381,9 @@ function NDCore.Game.SpawnVehicle(model, coords, heading, cb)
end
local entity = CreateVehicle(model, coords.x, coords.y, coords.z, heading, true, false, false)
entity = lib.waitFor(function()
if DoesEntityExist(entity) end
if DoesEntityExist(entity) then return entity end
end)
if cb then
cb(entity)
end
if cb then cb(entity) end
return entity
end
@@ -384,3 +402,11 @@ function NDCore.Game.Teleport(entity, coords, cb)
cb()
end
end
AddEventHandler("ND:characterLoaded", function()
NDCore.GetPlayerData()
end)
AddEventHandler("ND:updateCharacter", function()
NDCore.GetPlayerData()
end)

View File

@@ -0,0 +1,29 @@
local config_locale = "en"
Locales = {}
function Translate(str, ...) -- Translate string
if not str then
print(("[^1ERROR^7] Resource ^5%s^7 You did not specify a parameter for the Translate function or the value is nil!"):format(GetInvokingResource() or GetCurrentResourceName()))
return 'Given translate function parameter is nil!'
end
if Locales[config_locale] then
if Locales[config_locale][str] then
return string.format(Locales[config_locale][str], ...)
elseif config_locale ~= 'en' and Locales['en'] and Locales['en'][str] then
return string.format(Locales['en'][str], ...)
else
return 'Translation [' .. config_locale .. '][' .. str .. '] does not exist'
end
elseif config_locale ~= 'en' and Locales['en'] and Locales['en'][str] then
return string.format(Locales['en'][str], ...)
else
return 'Locale [' .. config_locale .. '] does not exist'
end
end
function TranslateCap(str, ...) -- Translate string first char uppercase
return _(str, ...):gsub("^%l", string.upper)
end
_ = Translate
_U = TranslateCap

View File

@@ -4,14 +4,50 @@ local itemNames
local registeredItems = {}
local function getAmmoFromWeapon(weapon)
if not weapon then return end
for item, data in pairs(exports.ox_inventory:Items()) do
if data.weapon and data.model:lower() == weapon:lower then
if data.weapon and data.model and data.model:lower() == weapon:lower() then
return data.ammoname
end
end
end
local function createPlayerFunctions(self)
self.Accounts = {
Bank = self.bank,
Money = self.Cash,
Black = self.Cash
}
if self.jobInfo then
self.job = {
id = self.job,
name = self.job,
label = self.jobInfo.label,
grade = self.jobInfo.rank,
grade_name = self.jobInfo.rankName,
grade_label = self.jobInfo.rankName,
grade_salary = 0,
skin_male = {},
skin_female = {}
}
end
local ped = GetPlayerPed(self.source)
if DoesEntityExist(ped) then
self.coords = GetEntityCoords()
end
self.loadout = {}
self.maxWeight = 30000
self.money = self.Accounts.Money
self.sex = self.gender
self.firstName = self.firstname
self.lastName = self.lastname
self.dateofbirth = self.dob
self.height = 120
self.dead = self.getMetadata("dead")
function self.addAccountMoney(account, amount)
local amount = tonumber(amount)
if not amount or amount <= 0 or account ~= "bank" and account ~= "cash" then return end
@@ -326,20 +362,10 @@ function NDCore.OneSync.SpawnPedInVehicle(model, vehicle, seat, cb)
cb(value)
end
AddEventHandler("esx:playerDropped", function(src)
TriggerEvent("ND:characterUnloaded", src, NDCore.getPlayer(src))
end
AddEventHandler("esx:playerLoaded", function(src)
TriggerEvent("ND:characterLoaded", NDCore.getPlayer(src))
end
AddEventHandler("ND:characterUnloaded", function(src, character)
TriggerEvent("esx:playerDropped", src, "")
end
end)
AddEventHandler("ND:characterLoaded", function(character)
TriggerEvent("esx:playerLoaded", character.source, createPlayerFunctions(character))
end
end)