Ok guys so i want to share the way we got this working.
Ok first make sure you add the table into the SQL file and add it into your database
ALTER TABLE users ADD COLUMN xp INT DEFAULT 0;
================================================
Ok you will need to add this into es_extended - server - main.lua
RegisterServerEvent(‘AddXp’)
AddEventHandler(‘AddXp’,function(value)
local _source = source
local xPlayer = ESX.GetPlayerFromId(_source)
MySQL.Async.fetchAll('SELECT `xp` FROM users WHERE identifier = @identifier', {
['@identifier'] = xPlayer.identifier
}, function(result)
-- print(result[1].rank)
local xpbd = result[1].xp
MySQL.Async.fetchAll("UPDATE users SET xp = @xp WHERE identifier = @identifier",
{
['@identifier'] = xPlayer.identifier,
['@xp'] = xpbd + (value)
}
)
end)
end)
RegisterServerEvent(‘RemoveXp’)
AddEventHandler(‘RemoveXp’,function(value)
local _source = source
local xPlayer = ESX.GetPlayerFromId(_source)
MySQL.Async.fetchAll('SELECT `xp` FROM users WHERE identifier = @identifier', {
['@identifier'] = xPlayer.identifier
}, function(result)
-- print(result[1].rank)
local xpbd = result[1].xp
MySQL.Async.fetchAll("UPDATE users SET xp = @xp WHERE identifier = @identifier",
{
['@identifier'] = xPlayer.identifier,
['@xp'] = xpbd - (value)
}
)
end)
end)
=====================================================================
Now make a server.lua in the XNLRankBar file and add this
ESX = nil
TriggerEvent(‘esx:getSharedObject’, function(obj) ESX = obj end)
AddEventHandler(‘esx:playerLoaded’, function(source)
local _source = source
local xPlayer = ESX.GetPlayerFromId(_source)
MySQL.Async.fetchAll('SELECT `xp` FROM users WHERE identifier = @identifier', {
['@identifier'] = xPlayer.identifier
}, function(result)
local xpbd = {}
if result[1].xp ~= nil then
xpbd = json.decode(result[1].xp)
end
Wait(0)
TriggerClientEvent('XNL_NET:AddPlayerXP', _source , xpbd)
end
)
end)
RegisterServerEvent(‘AddXp’)
AddEventHandler(‘AddXp’,function(value)
local _source = source
local xPlayer = ESX.GetPlayerFromId(_source)
MySQL.Async.fetchAll('SELECT `xp` FROM users WHERE identifier = @identifier', {
['@identifier'] = xPlayer.identifier
}, function(result)
-- print(result[1].rank)
local xpbd = result[1].xp
MySQL.Async.fetchAll("UPDATE users SET xp = @xp WHERE identifier = @identifier",
{
['@identifier'] = xPlayer.identifier,
['@xp'] = xpbd + (value)
}
)
end)
end)
RegisterServerEvent(‘RemoveXp’)
AddEventHandler(‘RemoveXp’,function(value)
local _source = source
local xPlayer = ESX.GetPlayerFromId(_source)
MySQL.Async.fetchAll('SELECT `xp` FROM users WHERE identifier = @identifier', {
['@identifier'] = xPlayer.identifier
}, function(result)
-- print(result[1].rank)
local xpbd = result[1].xp
MySQL.Async.fetchAll("UPDATE users SET xp = @xp WHERE identifier = @identifier",
{
['@identifier'] = xPlayer.identifier,
['@xp'] = xpbd - (value)
}
)
end)
end)
Now start your server and there you go