Hello all,
I have been lurking here for a while and setting up quietly a private server.
I have tried to make the timetrials script (release here) send the data it gathered (winner race, vehicle, race) to a local SQL server. I have had alot of issues already but have finally reached a blocker.
Error message
error attempt to index a nil value (global MySQL)
Error occurs when finished a race.
The code generating it
-- Save time and play sound for finish line
local finishTime = (GetGameTimer() - raceState.startTime)
PlaySoundFrontend(-1, "ScreenFlash", "WastedSounds")
-- Get vehicle name and create score
local aheadVehHash = GetEntityModel(GetVehiclePedIsUsing(GetPlayerPed(-1)))
local aheadVehNameText = GetLabelText(GetDisplayNameFromVehicleModel(aheadVehHash))
local aheadVehNumberPlate = GetVehicleNumberPlateText(GetVehiclePedIsUsing(GetPlayerPed(-1)))
local score = {}
local datetime = GetLocalTime()
score.player = aheadVehNumberPlate
score.time = finishTime
score.car = aheadVehNameText
-- Send server event with score and message, move this to server eventually
-- message = string.format("Player " .. GetPlayerName(PlayerId()) .. " finished " .. race.title .. " using " .. aheadVehNameText .. " in " .. (finishTime / 1000) .. " s")
message = string.format("Player " .. score.player .. " finished " .. race.title .. " using " .. aheadVehNameText .. " in " .. (finishTime / 1000) .. " s" .. " on " .. datetime)
-- Edit ML
MySQL.Async.fetchAll("INSERT INTO racestatistics (FivemID, User, Track, Car, Date, Time) VALUES(@source, @name, @track, @car, @date, @time)",
{["@source"] = GetPlayerName(PlayerId()), ["@name"] = score.player, ["@track"]= race.title, ["@car"] = aheadVehNameText, ["@date"] = datetime, ["@time"] = (finishTime / 1000)},
-- Stop Edit ML
function(result)
TriggerServerEvent('racePlayerFinished', GetPlayerName(PlayerId()), message, race.title, score)
end)
-- Clear racing index and break
raceState.index = 0
break
end
Thank you in advance for any tips
Edit 1: resource script for timetrials
client_scripts {
âtracks.luaâ,
âtimetrials_cl.luaâ
}
server_scripts {
â@mysql-async/lib/MySQL.luaâ,
âtimetrials_sv.luaâ
}
I am able to send data to the database as done in this tutorial of jeva so I know itâs not related to the SQL side (I assume)