dynia1221 Posted April 27, 2020 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
Seba500PLK Posted September 18, 2020 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
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