Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2015-03-08, 11:25


piotr172







Wiek: 27
Na forum: 4558 dni
Posty: 130

Piwa: 2329

Respekt: 105,3
Respekt: 105,3

Witam. Mam kod na zapis aut w SQL, ale chcia?bym aby zapisywa?o te? zepsute cz??ci auta (np. maska itp). Pr?bowa?em ju? to robi? ale si? nie uda?o. Bardzo prosi?bym o dodanie do kodu odpowiedniej funkcji. Z g?ry dzi?kuje.

Kod:


test_db = dbConnect( "sqlite", "auta.db" )
function save()
    dbQuery( test_db,"DROP TABLE auta")
    dbQuery( test_db,"CREATE TABLE auta (VehicleID INTEGER,ID INTEGER, px REAL, py REAL, pz REAL, rx REAL, ry REAL, rz REAL, Color1 INTEGER, Color2 INTEGER, Health REAL, upgrades TEXT, paintjob INTEGER, PALIWO TEXT, PRZEBIEG TEXT, Zarejstrowany TEXT, NaKogo1 TEXT, NaKogo2 TEXT)")
    for i, vehicle in pairs (getElementsByType("vehicle")) do
    if getElementData(vehicle,"Pojazd_zapis") == true then
        local px, py, pz = getElementPosition(vehicle)
        local rx, ry, rz = getElementRotation(vehicle)
        local color1, color2, color3, color4 = getVehicleColor(vehicle)
        local model = getElementModel(vehicle)
        local health = getElementHealth (vehicle)
        local tableUpgrades = getVehicleUpgrades(vehicle)
        local upgrades = table.concat(tableUpgrades, ",")
        local paintjob = getVehiclePaintjob(vehicle)
        local id1 = tostring(getElementData(vehicle,"id"))
        local paliwo = tostring(getElementData(vehicle,"fuel"))
        local przebieg = tostring(getElementData(vehicle,"przebieg"))
        local zarejstrowany = tostring(getElementData(vehicle,"Zarejstrowany"))
        local x = getElementData(vehicle,"Zarejstrowany-Na")
        local x2 = getElementData(vehicle,"Zarejstrowany-Na2")
        if x then
        na1 = getElementData(vehicle,"Zarejstrowany-Na")
        else
        na1 = ""
        end
        if x2 then
        na2 = getElementData(vehicle,"Zarejstrowany-Na2")
        else
        na2 = ""
        end
        dbQuery( test_db, "INSERT INTO auta VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)",model,id1,px,py,pz,rx,ry,rz,color1,color2,health,upgrades,paintjob,paliwo,przebieg,zarejstrowany,na1,na2 )
    end
    end
    end
addEventHandler("onResourceStop", getResourceRootElement(getThisResource()), save)
addCommandHandler("zapis",save)

function zapisujemy()
    local pojazdy = getElementsByType("vehicle", root)
    for i,v in ipairs(pojazdy) do
        save(v)
    end
end
setTimer(zapisujemy, 360, 1)
addEventHandler("onResourceStop", root, zapisujemy)

-- Zapisujemy pojazd
addEventHandler("onVehicleExit", root, function(player, seat, jacked)
    if seat==0 then
        save(player)
    end
end)


function Database()
    dbQuery( test_db,"CREATE TABLE auta (VehicleID INTEGER,ID INTEGER, px REAL, py REAL, pz REAL, rx REAL, ry REAL, rz REAL, Color1 INTEGER, Color2 INTEGER, Health REAL, upgrades TEXT, paintjob INTEGER, PALIWO TEXT, PRZEBIEG TEXT, Zarejstrowany TEXT, NaKogo1 TEXT, NaKogo2 TEXT)")
    

    
    qh = dbQuery(test_db,"SELECT * FROM auta")
    local result, num_affected_rows, errmsg = dbPoll ( qh, -1 )
    for i, v in pairs (result) do
        local vehicle = createVehicle( v.VehicleID, v.px, v.py, v.pz, v.rx, v.ry, v.rz )
        setElementHealth ( vehicle, v.Health )
        setElementFrozen ( vehicle, true )
        setVehicleEngineState ( vehicle, false )
        setVehicleColor ( vehicle, v.Color1, v.Color2, 0, 0 )
        if ( v.paintjob ) then
            setVehiclePaintjob( vehicle, v.paintjob )
        end
        local upgrades = split( v.upgrades, 44 )
        for index, upgrade in pairs (upgrades) do
            addVehicleUpgrade( vehicle, upgrade )
        end
        setElementData(vehicle,"przebieg",v.PRZEBIEG)
        setElementData(vehicle,"fuel",v.PALIWO)
        if v.Zarejstrowany == "brak" then
        else
        setElementData(vehicle,"Zarejstrowany",v.Zarejstrowany)
        setElementData(vehicle,"Zarejstrowany-Na",v.NaKogo1)
        setElementData(vehicle,"Zarejstrowany-Na2",v.NaKogo2)
        setElementData(vehicle,"Pojazd_zapis",true)
        setElementData(vehicle,"id",v.ID)
        end
            
        
    end
    
end
addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), Database)


Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-03-08, 23:07


Piorun







Wiek: 33
Na forum: 6853 dni
Posty: 1837
Nick w MP: Piorun

Piwa: 516

Respekt: 480,7
Respekt: 480,7

"piotr172" napisał/a:

Bardzo prosi?bym o dodanie do kodu odpowiedniej funkcji. Z g?ry dzi?kuje.


Chyba kpisz :x ...

Co do zapisu zepsutych cz??ci to ja to widz? tak - ka?da cz??? to osobna kolumna. W MTA jest fukcja:


Więcej informacji znajdziesz w Wikipedii MTA:

GetVehicleDoorState


Ona zwraca nam int'a w zale?no?ci od tego jak bardzo zniszczona jest dana cz???. Skoro zrobi?e? zapis do bazy pojazd?w to bez problemu si? z tym uporasz.

Podpis
Możesz mnie znaleźć na: Facebook
Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-03-08, 23:13


MeeShuffle

Programista/Grafik






Wiek: 33
Na forum: 4535 dni
Posty: 2758
Nick w MP: Shuffle

Piwa: 8578

Respekt: 535,3
Respekt: 535,3

damage = {}
for i=0,6 do table.insert(damage, getVehiclePanelState(v, i)) end
        local uszkodzenia = table.concat ( damage, "," )


Podpis

https://shufflecode.pl
Static Codes and Graphics - Join our discord!
Postaw piwo autorowi tego posta
 

 
Tagi: zniszczone :: czesci :: auta. :: jak :: dodac?
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA » Zniszczone czesci auta. Jak dodac? Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

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
Dodaj temat do Ulubionych
Wersja do druku