Hallo,
ich habe mich daran versucht das ich Fahrzeuge erstellen kann welche dann auch in der Datenbank erfasst werden.
Dabei ist folgender Fehler aufgetreten wenn ich die Fahrzeuge via Befehl erstelle werden die Daten zwar in der DB eingetragen aber das auto Spawned zunächst falsch ( nicht in der Farbe etc )
nach einem Script restart entsteht dann das Auto wie es sein soll neben dem anderen, doch das zuerst erstellte Fahrzeug ist einfach dort und auch nicht in der DB eingetragen.
Ich hoffe Jemand versteht meinen Versuch dies zu beschreiben xD der Code findet sich gleich anbei wäre aufjedenfall toll wenn mir Jemand den Fehler sagen kann.
Code
local MYSQL_HOST = "localhost"
local MYSQL_DATABASE = "mta"
local MYSQL_USER = "root"
local MYSQL_PASSWORD = ""
handler = dbConnect("mysql", "dbname="..MYSQL_DATABASE..";host="..MYSQL_HOST, MYSQL_USER, MYSQL_PASSWORD)
if handler then
outputServerLog("MySQL-Verbindung hergestellt!")
outputChatBox("MySQL_Verbindung wurde erfolgreich hergestellt!")
else
outputServerLog("MySQL-Verbindung nicht hergestellt!")
end
--dbExec(handler, "INSERT INTO vehicle (vehid, pos, color, plate) VALUES (?, ?, ?, ?);", 512, toJSON({0,5,4,0,0,0}), toJSON({6,6,6,6}), "lolly")
function doQuery ()
local function queryCallback(query)
local result = dbPoll( query, 0)
if result then
for _, row in pairs(result) do
outputChatBox(row["ID"])
local veh = createVehicle(tonumber(row["vehid"]), unpack(fromJSON(row["pos"])))
addEventHandler("onVehicleStartEnter", veh, setPlayerEnterVeh)
setVehicleColor(veh, unpack(fromJSON(row["color"])))
setVehiclePlateText(veh, (row["plate"]))
local vid = tostring(row["ID"])
setElementData(veh, "dbid", vid)
local vowner = tostring(row["player"])
setElementData(veh, "owner", vowner)
end
end
end
dbQuery(queryCallback, handler, "SELECT * FROM vehicle")
end
doQuery()
function setPlayerEnterVeh(thePlayer, seat)
if (seat == 0) then
local oowner = tostring(getElementData(source, "owner"))
if (oowner ~= "false") then
local playername = getPlayerName(thePlayer)
if oowner ~= playername then
outputChatBox("Nicht dein Auto")
cancelEvent(true)
else
outputChatBox("Das ist deins")
end
end
end
end
function createVehiclevia(thePlayer, cmd, vehid, plate)
local x, y, z = getElementPosition(thePlayer)
local xr, yr, zr = getElementRotation(thePlayer)
local playername = getPlayerName(thePlayer)
local pos = toJSON({x,y,z,xr, yr, zr})
if vehid then
--dbExec(handler, "INSERT INTO vehicle (vehid, pos, color, plate) VALUES (?, ?, ?, ?);", 512, toJSON({0,5,4,0,0,0}), toJSON({6,6,6,6}), "lolly")
dbExec(handler, "INSERT INTO vehicle (player, vehid, pos, color, plate) VALUES (?, ?, ?, ?, ?);", playername, vehid, pos, toJSON({6,6,6,6}), tostring(plate))
destroyElement(theVehicle)
outputChatBox("Klappt")
else
outputChatBox("fehlt was")
end
end
addCommandHandler("cv", createVehiclevia)
function vehicleIDOutput(theVehicle)
local oid = getElementData(theVehicle, "dbid")
local oowner = getElementData(theVehicle, "owner")
outputChatBox("Liegt bei "..oid.." und gehört "..oowner)
end
addEventHandler("onPlayerVehicleEnter", getRootElement(), vehicleIDOutput)
function doQuerya (thePlayer)
local pn = getPlayerName(thePlayer)
local function queryCallback(query)
local result = dbPoll( query, 0)
if result then
for plate, row in pairs(result) do
outputChatBox(row["ID"])
end
end
end
dbQuery(queryCallback, handler, "SELECT * FROM vehicle WHERE player=?", pn)
end
addCommandHandler("dbs", doQuerya)
Alles anzeigen