From 46ef7d8094fe25e21e0d209c740b476d5ab49a61 Mon Sep 17 00:00:00 2001 From: Linden <65407488+thelindat@users.noreply.github.com> Date: Fri, 28 May 2021 10:16:01 +1000 Subject: [PATCH] improvement(server/main): Store the character selection query in advance --- server/main.lua | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/server/main.lua b/server/main.lua index 615580df..618caff9 100644 --- a/server/main.lua +++ b/server/main.lua @@ -1,5 +1,6 @@ ESX = exports['es_extended']:getSharedObject() if ESX.GetConfig().Multichar == true then + local fetchCharacters = -1 local IdentifierTables = {} -- enter the name of your database here @@ -7,10 +8,11 @@ if ESX.GetConfig().Multichar == true then -- enter a prefix to prepend to all user identifiers (keep it short) Config.Prefix = 'char' + SetupCharacters = function(playerId) + while fetchCharacters == -1 do Citizen.Wait(100) end local identifier = Config.Prefix..'%:'..ESX.GetIdentifier(playerId) - MySQL.Async.fetchAll("SELECT `identifier`, `accounts`, `job`, `job_grade`, `firstname`, `lastname`, `dateofbirth`, `sex`, `skin` FROM `users` WHERE `identifier` LIKE @identifier", { - ['@identifier'] = identifier + MySQL.Async.fetchAll(fetchCharacters, {'identifier', {identifier} }, function(result) local characters = {} for i=1, #result, 1 do @@ -47,6 +49,8 @@ if ESX.GetConfig().Multichar == true then Citizen.CreateThread(function() MySQL.ready(function () + fetchCharacters = MySQL.Sync.store("SELECT `identifier`, `accounts`, `job`, `job_grade`, `firstname`, `lastname`, `dateofbirth`, `sex`, `skin` FROM `users` WHERE ?? LIKE ?") + MySQL.Async.fetchAll('SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME = @id AND TABLE_SCHEMA = @db', { ['@id'] = "owner", ["@db"] = Config.Database}, function(result) if result then for k, v in pairs(result) do