Jeszcze od siebie dodam, ?e bez edycji pliku ??cz?cego z baz? trik kt?ry poda? amited nie zadzia?a. Jak zedytujesz skrypt na co? takiego i u?yjesz tej funkcji to powinno zadzia?a?
function _Query(...)
if not {...} then return end
local query = dbQuery(db_handler, ...)
local result, num_affected_rows, last_insert_id = dbPoll(query, -1)
return result, num_affected_rows, last_insert_id
end
A? tak mysql nie znam i nie wiem jak to zrobi? dok?adnie.
Odrazu po stworzeniu auta na serwerze nie w mysql chce nada? mu jego id kt?re stworzy?o si? w bazie danych.
setElementData(vehicle, "vehicle:id", id)
function StworzPojazd(plr,model,posx,posy,posz,rotx,roty,rotz)
local ownerid = getElementData(plr,"sid")
local expp = exports.mysql:_Exec("insert into pojazdy(model,ownerid) values (?,?)",model,ownerid)
if expp then
local vehicle = createVehicle(model, posx, posy, posz, rotx, roty, rotz)
if vehicle then
warpPlayerIntoVehicle (plr, vehicle)
end
end
end
Zamieni?e? to co poda?em w swoim skrypcie na ??czenie z baz?? Je?li tak to b?dzie to wygl?da? jako? tak:
-- to co przed exportem
local result, num, id = exports.mysql:_Query("tutaj insert")
if result then
--tutaj tworzenie pojazdu
if vehicle then
-- tutaj warp
setElementData(vehicle, "vehicle:id", id)
-- dalsza cze??
Ani w suszarce ani na tablicy rejesracyjnej ani na chacie nie chce wy?wietli? id pojazdu gdy pobieram getElementData(vehicle,"vehicle:id")
function StworzPojazd(plr,model,posx,posy,posz,rotx,roty,rotz)
local ownerid = getElementData(plr,"sid")
local result, num, id = exports.mysql:_Exec("insert into pojazdy(model,ownerid) values (?,?)",model,ownerid)
if result then
local vehicle = createVehicle(model, posx, posy, posz, rotx, roty, rotz)
if vehicle then
warpPedIntoVehicle(plr, vehicle)
setElementData(vehicle, "vehicle:id", id)
setElementData(vehicle, "vehicle:milage", 0)
setElementData(vehicle, "vehicle:fuel", 100)
local name = getPlayerName(plr)
setElementData(vehicle, "ostkierowca", name)
end
end
end
O ile w skrypcie mysql podmieniles to co poda?em wcze?niej to w exporcie zamiast _Exec musi by? _Query (bez podmienienia w skrypcie na ??czno?? z mysql nie zadzia?a)
A po co tak kombinowa?? result, num, id = export... po wys?aniu do mysql inserta zwraca result, num(rows) oraz id. (oczywi?cie zwraca id tego rekordu kt?ry w?a?nie zosta? dodany)
local connection = nil
addEventHandler("onResourceStart",resourceRoot,function(resource)
connection = dbConnect("mysql","dbname=******;host=*******;port=3306;","*****","*******")
if connection then
outputDebugString("Polaczono z baza danych!")
return true
else
outputDebugString("Blad podczas laczenia sie z baza danych!")
return false
end
end
)
function _Query(...)
if not {...} then return end
local query = dbQuery(connection, ...)
local result, num_affected_rows, last_insert_id = dbPoll(query, -1)
return result, num_affected_rows, last_insert_id
end
function _QuerySingle(str,...)
if connection then
local result = _Query(str,...)
if type(result) == 'table' then
return result[1]
end
else
return false
end
end
function _Exec(str,...)
if connection then
local query = dbExec(connection,str,...)
return query
else
return false
end
end
W skrypcie do tworzenia pojazdu mam tak:
function StworzPojazd(plr,model,posx,posy,posz,rotx,roty,rotz)
local ownerid = getElementData(plr,"sid")
local result, num, id = exports.mysql:_Query("insert into pojazdy(model,ownerid) values (?,?)",model,ownerid)
if result then
local vehicle = createVehicle(model, posx, posy, posz, rotx, roty, rotz)
if vehicle then
warpPedIntoVehicle(plr, vehicle)
setElementData(vehicle, "vehicle:id", idv)
setElementData(vehicle, "vehicle:milage", 0)
setElementData(vehicle, "vehicle:fuel", 100)
local name = getPlayerName(plr)
setElementData(vehicle, "ostkierowca", name)
end
end
end
Nawet tego nie zauwa?y?em..
Dziena tylko stworzy? si? kolejny problem..
Zrobi?em komend? na zapisywanie pojazdu lecz nie chce go zapisa? i na dodatek nic w db3..
Funkcja:
function ZapiszPojazd(vehicle)
local panelstates={}
local id=getElementData(vehicle, "vehicle:id")
local model=getElementModel(vehicle)
local health=getElementHealth(vehicle)
local x,y,z=getElementPosition(vehicle)
local rx,ry,rz=getElementRotation(vehicle)
local id=getElementData(vehicle,"vehicle:id")
local fuel=getElementData(vehicle,"vehicle:fuel")
local mileage=getElementData(vehicle,"vehicle:mileage")
local c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12=getVehicleColor(vehicle, true)
local ownerid=getElementData(vehicle,"vehicle:ownerid")
local h1,h2,h3=getVehicleHeadLightColor(vehicle)
local paintjob=getVehiclePaintjob(vehicle)
local ostkierowca=getElementData(vehicle, "vehicle:ostkierowca") or " "
local frozen= isElementFrozen(vehicle) and 1 or 0
local mk1 = getElementData(vehicle, "vehicle:mk1")
local mk2 = getElementData(vehicle, "vehicle:mk2")
local mk3 = getElementData(vehicle, "vehicle:mk3")
local rh1 = getElementData(vehicle, "vehicle:rh1")
for i=0,6 do table.insert(panelstates, getVehiclePanelState(vehicle,i)) end
panelstates=table.concat(panelstates,",")
upgrades=getVehicleUpgrades(vehicle)
if not upgrades then upgrades={} end
upgrades=table.concat(upgrades, ",")
exports.mysql:_Exec("UPDATE pojazdy SET ownerid=?, frozen=?, health=?, fuel=?, milage=?, ostkierowca=?, posx=?, posy=?, posz=?, rotx=?, roty=?, rotz=?, color='%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d', panelstates=?, headlights='%d,%d,%d', tuning=?, mk1=?, mk2=?, mk3=?, rh1=?, paintjob=? where id=?",ownerid, frozen, health, fuel, milage, ostkierowca, x,y,z,rx,ry,rz,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,panelstates,h1,h2,h3, tuning, mk1, mk2, mk3, rh1, paintjob, id)
end
Komenda:
function zapisz ( playerSource, commandName )
local theVehicle = getPedOccupiedVehicle ( playerSource )
if theVehicle then
ZapiszPojazd(theVehicle)
end
end
addCommandHandler ( "zapisz", zapisz )
Nawet tego nie zauwa?y?em..
Dziena tylko stworzy? si? kolejny problem..
Zrobi?em komend? na zapisywanie pojazdu lecz nie chce go zapisa? i na dodatek nic w db3..
Funkcja:
function ZapiszPojazd(vehicle)
local panelstates={}
local id=getElementData(vehicle, "vehicle:id")
local model=getElementModel(vehicle)
local health=getElementHealth(vehicle)
local x,y,z=getElementPosition(vehicle)
local rx,ry,rz=getElementRotation(vehicle)
local id=getElementData(vehicle,"vehicle:id")
local fuel=getElementData(vehicle,"vehicle:fuel")
local mileage=getElementData(vehicle,"vehicle:mileage")
local c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12=getVehicleColor(vehicle, true)
local ownerid=getElementData(vehicle,"vehicle:ownerid")
local h1,h2,h3=getVehicleHeadLightColor(vehicle)
local paintjob=getVehiclePaintjob(vehicle)
local ostkierowca=getElementData(vehicle, "vehicle:ostkierowca") or " "
local frozen= isElementFrozen(vehicle) and 1 or 0
local mk1 = getElementData(vehicle, "vehicle:mk1")
local mk2 = getElementData(vehicle, "vehicle:mk2")
local mk3 = getElementData(vehicle, "vehicle:mk3")
local rh1 = getElementData(vehicle, "vehicle:rh1")
for i=0,6 do table.insert(panelstates, getVehiclePanelState(vehicle,i)) end
panelstates=table.concat(panelstates,",")
upgrades=getVehicleUpgrades(vehicle)
if not upgrades then upgrades={} end
upgrades=table.concat(upgrades, ",")
exports.mysql:_Exec("UPDATE pojazdy SET ownerid=?, frozen=?, health=?, fuel=?, milage=?, ostkierowca=?, posx=?, posy=?, posz=?, rotx=?, roty=?, rotz=?, color='%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d', panelstates=?, headlights='%d,%d,%d', tuning=?, mk1=?, mk2=?, mk3=?, rh1=?, paintjob=? where id=?",ownerid, frozen, health, fuel, milage, ostkierowca, x,y,z,rx,ry,rz,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,panelstates,h1,h2,h3, tuning, mk1, mk2, mk3, rh1, paintjob, id)
end
Komenda:
function zapisz ( playerSource, commandName )
local theVehicle = getPedOccupiedVehicle ( playerSource )
if theVehicle then
ZapiszPojazd(theVehicle)
end
end
addCommandHandler ( "zapisz", zapisz )
Kolego w linijce z exportem pomiesza?e? string.format (np. %d) z normalnym mysql dlatego najlepiej dla ciebie b?dzie jak poczytasz troch? o string.format na wiki.
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach