dynia1221 Posted April 27, 2020 Share Posted April 27, 2020 skrypt do poprawy local dbPolicja = dbConnect("sqlite",":/frakcje.db") function spawn() local nazwaGracza = getPlayerName(source) local nazwa = getServerName () outputChatBox ("Witaj "..nazwaGracza.. " na serwerze "..nazwa.."! Administracja zyczy milej gry!",source) spawnPlayer(source,-204.71535, 1119.36426, 19.74219,-90,0,0,0) fadeCamera(source,true) setCameraTarget(source,source) if dbPolicja then local qh = dbQuery(dbPolicja,"SELECT * FROM pol WHERE nick=?", nazwaGracza) local wynik = dbPoll(qh,-1) if not wynik == nil then iprint(wynik) for k,v in pairs(wynik) do if v == nazwaGracza then setElementData(source,"policja",true) end end end end end addEventHandler("onPlayerJoin",root,spawn) Problem polega na tym ze w tabeli, która ma tylko kolumnę nick iprint w konsoli wyświetla INFO: { { nick = "jakisnick**" } } i teraz nie wiem jak wyciągnąć wartość stringu nick z tabeli. Próbowałem z pętlami for, ale albo kończyło się błędem, albo zwróceniem wartości nil. Próbowałem robić to na zasadzie if wynik then, ale to nie usuwało problemu, nawet jak nie było mojego nicku w tabeli w bazie danych (sprawdzałem programem DBbrowser) zawsze if stwierdzał, że jednak mój nick jest w bazie danych (tutaj jest akurat mój błąd, bo dbPoll zwraca wartość false w przypadku wystąpienia błędu, więc tu if miał rację). If not wynik == nil then też nie działa, dzieje się dokładnie to samo co w przypadku if wynik then, czyli nie ważne czy nick jest w bazie czy nie, i tak if zwraca prawdę. iprint w konsoli wyświetla coś takiego INFO : {} . Już naprawdę nie mam pomysłów jak i co jeszcze można zrobic. Proszę o pomoc. ** - dowolna wartość string Link to comment
Seba500PLK Posted September 18, 2020 Share Posted September 18, 2020 (edited) Trochę namieszałeś local dbPolicja = dbConnect("sqlite",":/frakcje.db") function spawn() local nazwaGracza = getPlayerName(source) local nazwa = getServerName () outputChatBox ("Witaj "..nazwaGracza.. " na serwerze "..nazwa.."! Administracja zyczy milej gry!",source) spawnPlayer(source,-204.71535, 1119.36426, 19.74219,-90,0,0,0) fadeCamera(source,true) setCameraTarget(source,source) if dbPolicja then local qh = dbQuery(dbPolicja,"SELECT * FROM pol WHERE nick=?", nazwaGracza) local wynik = dbPoll(qh,-1) if wynik and wynik[1] then if wynik[1]['nick'] == nazwaGracza then setElementData(source,"policja",true) end end end end addEventHandler("onPlayerJoin",root,spawn) Edited September 18, 2020 by Seba500PLK Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now