[RELEASE] XNLRankBar ('Fully' working original GTA Rankbar / XP Bar NATIVELY! - with original GTA Levels!)

You save me time i save you time…

Server side…

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)

Client side… Add xp

TriggerServerEvent('AddXp', 10)

Client side RemoveXp

TriggerServerEvent('RemoveXp', 500)

Those Trigger Save with esx framework to the database
in this case i created an xp column in the users tab. Change xp to rank in your case (server side code)

here a little exemple where to put trigger… in fact just after an XNL Add or XNL remove…

exemple:

#Add 10
exports.XNLRankBar:Exp_XNL_AddPlayerXP(10)
TriggerServerEvent('AddXp', 10)			  
#remove 500
exports.XNLRankBar:Exp_XNL_RemovePlayerXP(500)
TriggerServerEvent('RemoveXp', 500)
4 Likes