Wysłany: 2022-03-02, 11:37
jg2aviva1
Rusek :D
Wiek: 25 Na forum: 4134 dni Posty: 445
Nick w MP: _Wolfenstei[N]^.^
Piwa : 1033
Witam. Pisz? skrypt na system pojazd?w z zapisem w pliku bazy danych na sqlite. Problem polega na tym, ?e wszystko fajnie pi?knie, zapisuje co powinien, wczytuje co powinien, ale jak ju? co? si? zmieni w poje?dzie (pozycja, stan ?wiate?, tuning) to po ponownym wczytaniu jest stan, w jakim na pocz?tku zapisa?o te pojazdy. Kto? wie o co mo?e chodzi?? Stawiam i
baza = dbConnect ( "sqlite" , "przechowalnia.db" )
if baza then
outputDebugString ( "* Baza danych przechowalni za?adowana pomy?lnie." )
else
outputDebugString ( "* Wyst?pi? problem z baz? danych przechowalni!" )
end
function pobierzHandling ( element , wartosc )
if isElement ( element ) and getElementType ( element ) == "vehicle" and type ( wartosc ) == "string" then
local handlingTable = getVehicleHandling ( element )
local value = handlingTable [ wartosc ]
if value then
return value
end
end
end
-- tune_sprezarka TEXT , tune_naped TEXT , tune_hamulce TEXT , tune_niskienadwozie TEXT , tune_wysokienadwozie TEXT
-- t0 int , t1 int , t2 int , t3 int , t4 int , t5 int , t6 int , t7 int , t8 int , t9 int , t10 int , t11 int , t12 int , t13 int , t14 int , t15 int , t16 int
function bbaza ()
local usuwanie = dbQuery ( baza , "CREATE TABLE IF NOT EXISTS POJAZDY ( id int, model int, owner TEXT, x FLOAT, y FLOAT, z FLOAT, rotx FLOAT, roty FLOAT, rotz FLOAT, color1 FLOAT, color2 FLOAT, color3 FLOAT, color4 FLOAT, color5 FLOAT, color6 FLOAT, paliwo FLOAT, opis_gielda TEXT, przebieg FLOAT, stan_swiatel int, stan_silnika TEXT, reczny TEXT, paintjob int, hr INTEGER, hg INTEGER, hb INTEGER, t0 FLOAT, t1 FLOAT, t2 FLOAT, t3 FLOAT, t4 FLOAT, t5 FLOAT, t6 FLOAT, t7 FLOAT, t8 FLOAT, t9 FLOAT, t10 FLOAT, t11 FLOAT, t12 FLOAT, t13 FLOAT, t14 FLOAT, t15 FLOAT, t16 FLOAT, instalacja_audio TEXT, radio_cb TEXT, rejestracja TEXT, h_zawieszenie FLOAT, h_predkosc FLOAT, h_hamulce FLOAT, h_przyspieszenie FLOAT, wariant FLOAT, naped TEXT, tune_sprezarka TEXT, tune_naped TEXT, tune_hamulce TEXT, tune_niskienadwozie TEXT, tune_wysokienadwozie TEXT)" )
local result , num_affected_rows , last_insert_id = dbPoll ( usuwanie , - 1 )
if result == nil then
outputConsole ( "dbPoll result not ready yet" )
elseif result == false then
local error_code , error_msg = num_affected_rows , last_insert_id
outputConsole ( "dbPoll failed. Error code: " .. tostring ( error_code ) .. " Error message: " .. tostring ( error_msg ) )
else
outputConsole ( "dbPoll succeeded. Number of affected rows: " .. tostring ( num_affected_rows ) .. " Last insert id: " .. tostring ( last_insert_id ) )
end
dbFree ( usuwanie )
end
addCommandHandler ( "startauta" , bbaza )
function wyjebcos ()
local bierz = dbQuery ( baza , "SELECT * FROM POJAZDY" )
local wynik = dbPoll ( bierz , - 1 )
for k , v in ipairs ( wynik ) do
local pojazd_stworzony = createVehicle ( v [ "model" ], v [ "x" ], v [ "y" ], v [ "z" ], v [ "rotx" ], v [ "roty" ], v [ "rotz" ])
local id = v [ "id" ]
local wlasciciel = v [ "owner" ]
local x = v [ "x" ]
local y = v [ "y" ]
local z = v [ "z" ]
local rotx = v [ "rotx" ]
local roty = v [ "roty" ]
local rotz = v [ "rotz" ]
local color1 = v [ "color1" ]
local color2 = v [ "color2" ]
local color3 = v [ "color3" ]
local color4 = v [ "color4" ]
local color5 = v [ "color5" ]
local color6 = v [ "color6" ]
local paliwo = v [ "paliwo" ]
local przebieg = v [ "przebieg" ]
local reczny = v [ "reczny" ]
local t0 = v [ "t0" ]
local t1 = v [ "t1" ]
local t2 = v [ "t2" ]
local t3 = v [ "t3" ]
local t4 = v [ "t4" ]
local t5 = v [ "t5" ]
local t6 = v [ "t6" ]
local t7 = v [ "t7" ]
local t8 = v [ "t8" ]
local t9 = v [ "t9" ]
local t10 = v [ "t10" ]
local t11 = v [ "t11" ]
local t12 = v [ "t12" ]
local t13 = v [ "t13" ]
local t14 = v [ "t14" ]
local t15 = v [ "t15" ]
local t16 = v [ "t16" ]
local opis_gielda = v [ "opis_gielda" ]
local rejestracja = v [ "rejestracja" ]
local hr = v [ "hr" ]
local hg = v [ "hg" ]
local hb = v [ "hb" ]
local stan_swiatel = v [ "stan_swiatel" ]
local stan_silnika = v [ "stan_silnika" ]
local paintjob = v [ "paintjob" ]
local zawieszenie = v [ "h_zawieszenie" ]
local predkosc = v [ "h_predkosc" ]
local hamulce = v [ "h_hamulce" ]
local przyspieszenie = v [ "h_przyspieszenie" ]
local wariant = v [ "wariant" ]
local naped = v [ "naped" ]
local tune_sprezarka = v [ "tune-sprezarka" ]
local tune_naped = v [ "tune-naped" ]
local tune_hamulce = v [ "tune-hamulce" ]
local tune_niskienadwozie = v [ "tune-niskienadwozie" ]
local tune_wysokienadwozie = v [ "tune-wysokienadwozie" ]
local instalacja_audio = v [ "instalacja_audio" ]
local radio_cb = v [ "radio_cb" ]
setVehicleHandling ( pojazd_stworzony , "suspensionLowerLimit" , tonumber ( zawieszenie ))
setVehicleHandling ( pojazd_stworzony , "engineAcceleration" , tonumber ( przyspieszenie ))
setVehicleHandling ( pojazd_stworzony , "brakeDeceleration" , tonumber ( hamulce ))
setVehicleHandling ( pojazd_stworzony , "maxVelocity" , tonumber ( predkosc ))
setVehicleHandling ( pojazd_stworzony , "driveType" , naped )
setElementData ( pojazd_stworzony , "tune:audio" , tonumber ( instalacja_audio ))
setElementData ( pojazd_stworzony , "tune:cb" , tonumber ( radio_cb ))
setVehicleVariant ( pojazd_stworzony , wariant , wariant )
addVehicleUpgrade ( pojazd_stworzony , t0 )
addVehicleUpgrade ( pojazd_stworzony , t1 )
addVehicleUpgrade ( pojazd_stworzony , t2 )
addVehicleUpgrade ( pojazd_stworzony , t3 )
addVehicleUpgrade ( pojazd_stworzony , t4 )
addVehicleUpgrade ( pojazd_stworzony , t5 )
addVehicleUpgrade ( pojazd_stworzony , t6 )
addVehicleUpgrade ( pojazd_stworzony , t7 )
addVehicleUpgrade ( pojazd_stworzony , t8 )
addVehicleUpgrade ( pojazd_stworzony , t9 )
addVehicleUpgrade ( pojazd_stworzony , t10 )
addVehicleUpgrade ( pojazd_stworzony , t11 )
addVehicleUpgrade ( pojazd_stworzony , t12 )
addVehicleUpgrade ( pojazd_stworzony , t13 )
addVehicleUpgrade ( pojazd_stworzony , t14 )
addVehicleUpgrade ( pojazd_stworzony , t15 )
addVehicleUpgrade ( pojazd_stworzony , t16 )
setElementData ( pojazd_stworzony , "tune:sprezarka" , tonumber ( tune_sprezarka ))
setElementData ( pojazd_stworzony , "tune:naped" , tonumber ( tune_naped ))
setElementData ( pojazd_stworzony , "tune:hamulce" , tonumber ( tune_hamulce ))
setElementData ( pojazd_stworzony , "tune:niskienadwozie" , tonumber ( tune_niskienadwozie ))
setElementData ( pojazd_stworzony , "tune:wysokienadwozie" , tonumber ( tune_wysokienadwozie ))
if reczny == "true" then
setElementFrozen ( pojazd_stworzony , true )
setVehicleDamageProof ( pojazd_stworzony , true )
end
if stan_silnika == "true" then
setVehicleEngineState ( pojazd_stworzony , true )
end
setElementData ( pojazd_stworzony , "car_id" , id )
setElementData ( pojazd_stworzony , "pojazd_opis" , opis_gielda )
setElementData ( pojazd_stworzony , "car_owner" , wlasciciel )
setElementData ( pojazd_stworzony , "pojazd_paliwo" , tonumber ( paliwo ))
setElementData ( pojazd_stworzony , "pojazd_przebieg" , przebieg )
setVehiclePlateText ( pojazd_stworzony , tostring ( rejestracja ))
setVehicleOverrideLights ( pojazd_stworzony , stan_swiatel )
setVehicleHeadLightColor ( pojazd_stworzony , hr , hg , hb )
setVehiclePaintjob ( pojazd_stworzony , paintjob )
setVehicleColor ( pojazd_stworzony , color1 , color2 , color3 , color4 , color5 , color6 )
end
dbFree ( bierz )
outputDebugString ( "** Wczytywanie pojazd?w zako?czone" )
end
addCommandHandler ( "wez" , wyjebcos )
function zapisz ()
for k , v in ipairs ( getElementsByType ( "vehicle" ), getRootElement ()) do
if getElementData ( v , "car_owner" ) then
local samochod = getElementModel ( v )
local wlasciciel = getElementData ( v , "car_owner" )
local x , y , z = getElementPosition ( v )
local rotx , roty , rotz = getElementRotation ( v )
local color1 , color2 , color3 , color4 , color5 , color6 = getVehicleColor ( v )
local paliwo = getElementData ( v , "pojazd_paliwo" )
local przebieg = getElementData ( v , "pojazd_przebieg" )
local reczny = isElementFrozen ( v )
local stan_swiatel = getVehicleOverrideLights ( v )
local stan_silnika = tostring ( getVehicleEngineState ( v ))
local opis_gielda = getElementData ( v , "pojazd_opis" ) or ""
--- TUNING
local paintjob = getVehiclePaintjob ( v )
local r , g , b = getVehicleHeadLightColor ( v )
sav = {}
for i = 0 , 16 do
local upgrade = getVehicleUpgradeOnSlot ( v , i )
sav [ i ] = upgrade or 0
end
local plate_text = getVehiclePlateText ( v )
local zawieszenie = pobierzHandling ( v , "suspensionLowerLimit" )
local predkosc_max = pobierzHandling ( v , "maxVelocity" )
local hamulce = pobierzHandling ( v , "brakeDeceleration" )
local przyspieszenie = pobierzHandling ( v , "engineAcceleration" )
local wariant = getVehicleVariant ( v )
local naped = pobierzHandling ( v , "driveType" )
local tune_sprezarka = getElementData ( v , "tune:sprezarka" ) or 0
local tune_naped = getElementData ( v , "tune:naped" ) or 0
local tune_hamulce = getElementData ( v , "tune:hamulce" ) or 0
local tune_niskienadwozie = getElementData ( v , "tune:niskienadwozie" ) or 0
local tune_wysokienadwozie = getElementData ( v , "tune:wysokienadwozie" ) or 0
local instalacja_audio = getElementData ( v , "tune:audio" ) or 0
local radio_cb = getElementData ( v , "tune:cb" ) or 0
local qhh = dbQuery ( baza , "SELECT * FROM POJAZDY WHERE owner=?" , wlasciciel )
local wyniki = dbPoll ( qhh , - 1 )
for liczba , wartosc in ipairs ( wyniki ) do
if wartosc [ "owner" ] == wlasciciel then
zapisywanie_db = dbQuery ( baza , "UPDATE POJAZDY SET id=?, model=?, owner=?, x=?, y=?, z=?, rotx=?, roty=?, rotz=?, color1=?, color2=?, color3=?, color4=?, color5=?, color6=?, paliwo=?, opis_gielda=?, przebieg=?, stan_swiatel=?, stan_silnika=?, reczny=?, paintjob=?, hr=?, hg=?, hb=?, t0=?, t1=?, t2=?, t3=?, t4=?, t5=?, t6=?, t7=?, t8=?, t9=?, t10=?, t11=?, t12=?, t13=?, t14=?, t15=?, t16=?, instalacja_audio=?, radio_cb=?, rejestracja=?, h_zawieszenie=?, h_predkosc=?, h_hamulce=?, h_przyspieszenie=?, wariant=?, naped=?, tune_sprezarka=?, tune_naped=?, tune_hamulce=?, tune_niskienadwozie=?, tune_wysokienadwozie=? WHERE id=? AND owner=?" , k , samochod , wlasciciel , x , y , z , rotx , roty , rotz , color1 , color2 , color3 , color4 , color5 , color6 , paliwo , opis_gielda , przebieg , stan_swiatel , stan_silnika , tostring ( reczny ), paintjob , r , g , b , sav [ 0 ], sav [ 1 ], sav [ 2 ], sav [ 3 ], sav [ 4 ], sav [ 5 ], sav [ 6 ], sav [ 7 ], sav [ 8 ], sav [ 9 ], sav [ 10 ], sav [ 11 ], sav [ 12 ], sav [ 13 ], sav [ 14 ], sav [ 15 ], sav [ 16 ], instalacja_audio , radio_cb , plate_text , zawieszenie , predkosc_max , hamulce , przyspieszenie , wariant , naped , tonumber ( tune_sprezarka ), tonumber ( tune_naped ), tonumber ( tune_hamulce ), tonumber ( tune_niskienadwozie ), tonumber ( tune_wysokienadwozie ))
else
zapisywanie_db = dbQuery ( baza , "INSERT INTO POJAZDY (id, model, owner, x, y, z, rotx, roty, rotz, color1, color2, color3, color4, color5, color6, paliwo, opis_gielda, przebieg, stan_swiatel, stan_silnika, reczny, paintjob, hr, hg, hb, t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, instalacja_audio, radio_cb, rejestracja, h_zawieszenie, h_predkosc, h_hamulce, h_przyspieszenie, wariant, naped, tune_sprezarka, tune_naped, tune_hamulce, tune_niskienadwozie, tune_wysokienadwozie) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)" , k , samochod , wlasciciel , x , y , z , rotx , roty , rotz , color1 , color2 , color3 , color4 , color5 , color6 , paliwo , opis_gielda , przebieg , stan_swiatel , stan_silnika , tostring ( reczny ), paintjob , r , g , b , sav [ 0 ], sav [ 1 ], sav [ 2 ], sav [ 3 ], sav [ 4 ], sav [ 5 ], sav [ 6 ], sav [ 7 ], sav [ 8 ], sav [ 9 ], sav [ 10 ], sav [ 11 ], sav [ 12 ], sav [ 13 ], sav [ 14 ], sav [ 15 ], sav [ 16 ], instalacja_audio , radio_cb , plate_text , zawieszenie , predkosc_max , hamulce , przyspieszenie , wariant , naped , tonumber ( tune_sprezarka ), tonumber ( tune_naped ), tonumber ( tune_hamulce ), tonumber ( tune_niskienadwozie ), tonumber ( tune_wysokienadwozie ))
end
end
dbFree ( qhh )
sav = nil
local result , num_affected_rows , last_insert_id = dbPoll ( zapisywanie_db , - 1 )
if result == nil then
outputConsole ( "dbPoll result not ready yet" )
elseif result == false then
local error_code , error_msg = num_affected_rows , last_insert_id
outputConsole ( "dbPoll failed. Error code: " .. tostring ( error_code ) .. " Error message: " .. tostring ( error_msg ) ) else
outputConsole ( "dbPoll succeeded. Number of affected rows: " .. tostring ( num_affected_rows ) .. " Last insert id: " .. tostring ( last_insert_id ) )
end
dbFree ( zapisywanie_db )
end
end
outputDebugString ( "* Pojazdy przechowalni zapisane pomy?lnie." )
end
addCommandHandler ( "zapisz" , zapisz )
function data ( cfel )
local auto = getPedOccupiedVehicle ( cfel )
setElementData ( auto , "PRZECHO" , true )
outputChatBox ( "* No chyba jo" , source )
end
addCommandHandler ( "data" , data )
Podpis
GTAO Member: 2015-08-23, 14:26
Wysłany: 2022-03-02, 12:48
!ryzee
rebornMTA
Wiek: 19 Na forum: 2254 dni Posty: 111
Nick w MP: drakovskyy
Piwa : 55
mo?e spr?buj tak zrobi? by po ka?dej zamontowanej cz??ci dodawa?o dany warunek do tabeli w sql?
Mam na my?li tutaj ?e je?li powiedzmy zamontujesz niskiepodwozie to zr?b sobie w tabelce kolumn? np z: "niskiepodwozie" i jak zamontujesz to ustaw ?eby ustawia?o powiedzmy na warunek "1" lub "tak", je?li nie rozumiesz o co mi chodzi wal dalej.
Wysłany: 2022-03-02, 13:12
jg2aviva1
Rusek :D
Wiek: 25 Na forum: 4134 dni Posty: 445
Nick w MP: _Wolfenstei[N]^.^
Piwa : 1033
Wysłany: 2022-03-03, 18:44
!ryzee
rebornMTA
Wiek: 19 Na forum: 2254 dni Posty: 111
Nick w MP: drakovskyy
Piwa : 55
mo?e zr?b co? w stylu ?eby zapisywa?o (tak jak zapisa?e? za pierwszym razem), co jaki? czas np (5-10 sek).
Wysłany: 2022-03-03, 23:15
kamison
Przyszły programista .lua
Wiek: 25 Na forum: 3302 dni Posty: 391
Nick w MP: kamison
Piwa : 594
Masz event onResourceStop? Jak nie to pod to te? podepnij zapis wszystkiego.
Tagi: aktualizacją :: bazy :: danych :: sqlite
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: