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

Wysłany: 2015-07-17, 16:49


Tostuch







Wiek: 27
Na forum: 4931 dni
Posty: 483
Nick w MP: Tost

Piwa: 137

Respekt: 110
Respekt: 110

Cze??! Robi? system pojazd?w i nie tworzy mi w og?le pojazdu.

Komenda do tworzenia pojazdu:
addCommandHandler("veh", function(plrcommodelownertemprejkargb)
    if model then
    local x,y,getElementPosition(plr)
    local rxryrz getElementRotation(plr)
        if owner then else
        local owner "Publiczny"
        end
        
        if tonumber(type(temp)) ~= nil and tonumber(temp) > 0 then
        local temp true
        else
        local temp false
        end
        
        if rejka then else
        local rejka nil
        end
        
        if r then else
        local r nil
        end
        
        if y then else
        local y nil
        end
        
        if z then else
        local z nil
        end
        
        local veh stworzPojazd(modelxyzrxryrzownertemprejkargb)
        setElementPosition(plrx+2y+2z)
        warpPedIntoVehicle(plrveh)
        
        if getElementData(veh"uid"then
        outputChatBox("* Utworzono "..getVehicleName(veh).." o UID: "..tostring(getElementData(veh"uid")).."."plr)
        else
        outputChatBox("* Utworzono "..getVehicleName(veh).."."plr)
        end
    else
    outputChatBox("/"..com.." [Nazwa lub ID] ([W?a?ciciel] [Tymczasowy 0-1] [Rejestracja] [R] [G] [B]"plr)
    end
end)


A tutaj sama funkcja tworz?ca:
function stworzPojazd(modelxyzrxryrzownertemprejkargb)
    if model and owner and temp and rejka and and and b then
        if (tonumber(type(x)) ~= nil) and (tonumber(type(y)) ~= nil) and (tonumber(type(z)) ~= nilthen
            if owner ~= "Publiczny" then
            local owner exports.hl_core:findPlayer(owner)
            end
            
            if type(model) == nil then
            local model getVehicleModelFromName(model)
            end
            
            if rejka == nil then
            local rejka exports.hl_core:generateString(8)
            end
            
            if tonumber(type(rx)) == nil then
            local rx 0
            end
            
            if tonumber(type(ry)) == nil then
            local rx 0
            end
            
            if tonumber(type(rz)) == nil then
            local rx 0
            end
            
            if tonumber(type(r)) == nil then
            local r 0
            end
            
            if tonumber(type(g)) == nil then
            local g 0
            end
            
            if tonumber(type(b)) == nil then
            local b 0
            end
            
            if temp == true then
            local veh createVehicle(modelxyzrxryrz)
            setVehiclePlateText(vehrejka)
            setVehicleColor(vehrgb)
            return veh
            else
            local veh createVehicle(modelxyzrxryrz)
            setVehiclePlateText(vehrejka)
            setVehicleColor(vehrgb)
            saveVehicle(veh)
            local que executeSQLQuery("SELECT uid FROM hl_pojazdy ORDER BY uid DESC")
            setElementData(pojazd"uid"que[1].uid)
            return veh
            end
        else
        outputDebugString("POJAZDY: Podano niepoprawne wsp??rz?dne!"1)
        end
    else
    outputDebugString("POJAZDY: Nie podano wszystkich argument?w")
    end
end


W debugu mam 5 informacji.
INFO: POJAZDY: Nie podano wszystkich argument?w
WARNING: [High Life]\tost\pojazdy_server.lua:181: Bad argument @ 'warpPedIntoVehicle' [Expected vehicle at argument 2, got nil]
WARNING: [High Life]\tost\pojazdy_server.lua:183: Bad argument @ 'getElementData' [Expected element at argument 1, got nil]
WARNING: [High Life]\tost\pojazdy_server.lua:186: Bad argument @ 'getVehicleName' [Expected vehicle at argument 1, got nil]
ERROR: [High Life]\tost\pojazdy_server.lua:186: attempt to concatenate a boolean value

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-07-18, 01:52


Wittx

8===D






Wiek: 26
Na forum: 4794 dni
Posty: 121
Nick w MP: wittula

Piwa: 1905

Respekt: 120
Respekt: 120

Cze??. Przerobi?em troch? Tw?j kod, sprawd? powoli co si? w nim po kolei dzieje, por?wnaj z Twoim etc. Nie testowa?em jak co?. Nie chce mi si? po kolei opowiada? co zmieni?em itd (moze pozniej, nie teraz), jak masz jakie? w?tpliwo?ci, pytania to pisz. W funkcjach nie dawa?em przy niektorych zmiennych 'local', poniewa? te zmienne ju? istniej? w tej funkcji (z argument?w) i tylko zmieniam ich warto??.

Komenda:
local function getValidVehicleModels()
    local validVehicles = { }
    local invalidModels = {
        ['435']=true, ['449']=true, ['450']=true, ['537']=true,
        ['538']=true, ['569']=true, ['570']=true, ['584']=true,
        ['590']=true, ['591']=true, ['606']=true, ['607']=true, 
        ['608']=true
    }
    for i=400609 do
        if ( not invalidModels[tostring(i)] ) then
            table.insert validVehicles)
        end
    end
    return validVehicles
end

local function toboolean(number)
    if number >= 1 then
        return true
    else
        return false
    end
    return false
end

local validTable getValidVehicleModels()

addCommandHandler("veh", function(plrcommodelownertemprejkargb)
    if tonumber(modelthen
        model tonumber(model)
    else
        model getVehicleModelFromName(model)
    end

    if validTable[modelthen
        owner owner or "Publiczny"
        rejka rejka or false
        r or 0
        g or 0
        b or 0
        temp tonumber(temp) or 1
       
        local veh stworzPojazd(modelplr.position.xplr.position.yplr.position.zplr.rotation.xplr.rotation.yplr.rotation.zownertoboolean(temp), rejkargb)
        plr:warpIntoVehicle(veh)
        
        if veh:getData("uid"then
        outputChatBox("* Utworzono "..veh.name.." o UID: "..veh:getData("uid").."."plr)
        else
        outputChatBox("* Utworzono "..veh.name.."."plr)
        end
    else
    outputChatBox("/"..com.." [Nazwa lub ID] ([W?a?ciciel] [Tymczasowy 0-1] [Rejestracja] [R] [G] [B]"plr)
    end
end)


Funkcja na tworzenie pojazdu:
function stworzPojazd(modelxyzrxryrzownertemprejkargb)
    if model and and and and owner then
        if owner ~= "Publiczny" then
            owner exports.hl_core:findPlayer(owner)
        end
            
        if not rejka then
            rejka exports.hl_core:generateString(8)
        end

        local veh Vehicle(modelxyzrx or 0ry or 0rz or 0)
        veh:setPlateText(rejka)
        veh:setColor(rgb)

        if not temp then
            saveVehicle(veh)
            local que executeSQLQuery("SELECT uid FROM hl_pojazdy ORDER BY uid DESC") --nie lepiej na w?asnym pliku .db lub MySQL?
            pojazd:setData("uid"que[1].uid)
        end
        return veh
    else
    outputDebugString("POJAZDY: Nie podano wszystkich argument?w")
    end
end


Pozwolilem sobie pisa? obiektowo, w meta.xml musisz doda?:
Kod:

<oop>true</oop>

Jak pisa?em wcze?niej - nie testowa?em. Poza tym jest p??no troch? teraz wi?c mo?esz napotka? w kodzie jakie? #fucklogic etc. :D
Daj zna? czy dzia?a :D

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-07-18, 02:44


Tostuch







Wiek: 27
Na forum: 4931 dni
Posty: 483
Nick w MP: Tost

Piwa: 137

Respekt: 110
Respekt: 110

New_Banan, tw?j kod wywala b??d przy:
if validTable[modelthen


Aczkolwiek po kilku przer?bkach skrypt dzia?a poprawnie. Widocznie musia?em gdzie? si? pogubi? w tych chorych zmiennych :P


//EDIT: Ring, ding, ding. Jednak nie pozb?dziecie si? mnie tak szybko, zn?w b??d.

ERROR: [High Life]/[systemy]/hl_pojazdy/pojazdy_server.lua:69: Database query failed: no such column: false

Linijka 69:
executeSQLQuery("INSERT INTO hl_pojazdy (model, posx, posy, posz, rx, ry, rz, r, g, b, rejka, owner) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)"modelxyzrxryrzrgbrejkaowner)


Tworzenie bazy:
executeSQLQuery("CREATE TABLE IF NOT EXISTS hl_pojazdy (uid INTEGER PRIMARY KEY AUTOINCREMENT, model INT, posx FLOAT, posy FLOAT, posz FLOAT, rx FLOAT, ry FLOAT, rz FLOAT, r INT, g INT, b INT, paintjob INT, rejka TEXT, owner TEXT)")


ERROR: [High Life]/[systemy]/hl_pojazdy/pojazdy_server.lua:110: attempt to index field '?' (a nil value)

Linijka 109 i 110:
local que executeSQLQuery("SELECT uid FROM hl_pojazdy ORDER BY uid DESC")
setElementData(veh"uid"que[1].uid)


ERROR: [High Life]/tost/server.lua:3: call: failed to call 'hl_pojazdy:stworzPojazd' [string "?"]

Linijka 3:
local veh exports.hl_pojazdy:stworzPojazd(nazwa, -1976.3515625300.89257812534.88984298706100179.31335449219getPlayerName(client), false)


Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-07-18, 12:01


Wittx

8===D






Wiek: 26
Na forum: 4794 dni
Posty: 121
Nick w MP: wittula

Piwa: 1905

Respekt: 120
Respekt: 120

3 linijka (uwaga, g?upie pytania):
- Czy masz zas?b "hl_pojazdy" i czy jest uruchomiony?
- Czy ten zas?b jest widziany dla MTA? (wiesz, mo?e ?le co? w meta.xml)
- Czy w meta.xml masz wyeksportowan? funkcj? stworzPojazd?

Tworzenie bazy: autoincrement w sqlite (w tagach jest co? o Androidzie, nie wiem czy b?dzie dzia?a? na MTA)
executeSQLQuery("CREATE TABLE IF NOT EXISTS `hl_pojazdy` (`uid` INTEGER PRIMARY KEY, `model` INTEGER, `posx` REAL, `posy` REAL, `posz` REAL, `rx` REAL, `ry` REAL, `rz` REAL, `r` INTEGER, `g` INTEGER, `b` INTEGER, `paintjob` INTEGER, `rejka` TEXT, `owner` TEXT)")


69 linijka:
executeSQLQuery("INSERT INTO `hl_pojazdy` (`model`, `posx`, `posy`, `posz`, `rx`, `ry`, `rz`, `r`, `g`, `b`, `rejka`, `owner`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)"modelxyzrxryrzrgbrejkaowner)


109 i 110 linijka:
local que executeSQLQuery("SELECT MAX(uid) FROM hl_pojazdy") --nie wiem czy MAX(xdzia?a na MTA
setElementData(veh"uid"que[1])


Je?li chodzi o baz? danych dla pojazd?w to na Twoim miejscu pomy?la?bym o MySQL.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-07-19, 00:42


Tostuch







Wiek: 27
Na forum: 4931 dni
Posty: 483
Nick w MP: Tost

Piwa: 137

Respekt: 110
Respekt: 110

AUTOINCREMENT W MTA dzia?a jak najbardziej, sam stosuje to do kont.

Czy masz zas?b "hl_pojazdy" i czy jest uruchomiony? - no to jest oczywiste, co nie? :D
Czy ten zas?b jest widziany dla MTA? (wiesz, mo?e ?le co? w meta.xml) - tak, poniewa? dzia?a komenda /veh kt?ra jest bezpo?rednio w poje?dzie.
Czy w meta.xml masz wyeksportowan? funkcj? stworzPojazd? - tak, ni?ej w jaki spos?b j? eksportuj?. By? mo?e jest co? ?le, ale ze smoothMoveCamera nie ma problem?w.

Exportowanie funkcji:
Kod:

<export function="stworzPojazd" type="server"/>


Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-07-19, 16:25


Wittx

8===D






Wiek: 26
Na forum: 4794 dni
Posty: 121
Nick w MP: wittula

Piwa: 1905

Respekt: 120
Respekt: 120

New_Banan napisał/a:

Je?li chodzi o baz? danych dla pojazd?w to na Twoim miejscu pomy?la?bym o MySQL.
+ przepisa? ca?y kod na nowo, bo sam widzisz, ?e nic nie mo?na z nim zrobi?.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-07-19, 19:44


Tostuch







Wiek: 27
Na forum: 4931 dni
Posty: 483
Nick w MP: Tost

Piwa: 137

Respekt: 110
Respekt: 110

Tak zrobi?, jednak MySQL jest ?dziebko bardziej funkcjonalne.

Postaw piwo autorowi tego posta
 

 
Tagi: auto :: się :: nie :: respi
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA » Auto się nie respi 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