Scripts/resources/[hp]/hp_multichar/server/utils.lua

114 lines
3.7 KiB
Lua
Raw Normal View History

2024-12-29 19:48:41 +00:00
function MysqlQuery(query, params)
if GetResourceState("oxmysql") == "started" then
return exports["oxmysql"]:query_async(query, params)
elseif GetResourceState("mysql-async") == "started" then
local p = promise.new()
exports['mysql-async']:mysql_execute(query, params, function(result)
p:resolve({ result })
end)
return Citizen.Await(p)
elseif GetResourceState("ghmattimysql") == "started" then
return exports['ghmattimysql']:executeSync(query, params)
end
end
function GetPlayerLicense(player)
for i = 0, GetNumPlayerIdentifiers(player) - 1 do
local license = GetPlayerIdentifier(player, i)
if string.sub(license, 1, string.len("license:")) == "license:" then
return license
end
end
end
function RegisterServerCallback(...)
if Config.Framework == "qb" then
Framework.Functions.CreateCallback(...)
else
Framework.RegisterServerCallback(...)
end
end
function GiveStarterItems(source)
local src = source
local Player = Framework.Functions.GetPlayer(src)
for _, v in pairs(Framework.Shared.StarterItems) do
local info = {}
if v.item == "id_card" then
info.citizenid = Player.PlayerData.citizenid
info.firstname = Player.PlayerData.charinfo.firstname
info.lastname = Player.PlayerData.charinfo.lastname
info.birthdate = Player.PlayerData.charinfo.birthdate
info.gender = Player.PlayerData.charinfo.gender
info.nationality = Player.PlayerData.charinfo.nationality
elseif v.item == "driver_license" then
info.firstname = Player.PlayerData.charinfo.firstname
info.lastname = Player.PlayerData.charinfo.lastname
info.birthdate = Player.PlayerData.charinfo.birthdate
2024-12-30 10:15:34 +00:00
info.type = "B Kørekort"
2024-12-29 19:48:41 +00:00
end
Player.Functions.AddItem(v.item, v.amount, false, info)
end
end
function LoadHouseData(src)
local HouseGarages = {}
local Houses = {}
local result = MysqlQuery('SELECT * FROM houselocations', {})
if result[1] ~= nil then
for _, v in pairs(result) do
local owned = false
if tonumber(v.owned) == 1 then
owned = true
end
local garage = v.garage ~= nil and json.decode(v.garage) or {}
Houses[v.name] = {
coords = json.decode(v.coords),
owned = owned,
price = v.price,
locked = true,
adress = v.label,
tier = v.tier,
garage = garage,
decorations = {},
}
HouseGarages[v.name] = {
label = v.label,
takeVehicle = garage,
}
end
end
TriggerClientEvent("qb-garages:client:houseGarageConfig", src, HouseGarages)
TriggerClientEvent("qb-houses:client:setHouseConfig", src, Houses)
end
function GetUserPlayers(src)
local license = GetPlayerLicense(src)
local result
if Config.Framework == "qb" then
result = MysqlQuery("SELECT * FROM players WHERE license = '"..license.."'")
else
result = MysqlQuery("SELECT * FROM users WHERE identifier = '"..license.."'")
end
if next(result) then
-- print("Found characters for "..license..".")
local result2 = MysqlQuery("SELECT uses FROM hp_multichar WHERE identifier = '"..license.."'")
if result2[1] then
-- print("Found purchased slots for "..license..".")
return {charData = result, purchasedSlots = result2.uses or 0}
else
return {charData = result, purchasedSlots = 0}
end
end
-- print("No characters found for "..license..".")
return {charData = {}, purchasedSlots = 0}
end