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