Wysłany: 2017-05-21, 11:40
Atroth
Wiek: 23 Na forum: 3677 dni Posty: 1089
Nick w MP: Atroth
Piwa : 4808
Witam. Ucz? si? pisa? skrypty pod baz? danych. Chcia?bym zrobi? tak, i? przy wej?ciu gracza na serwer, w bazie danych zapisuje si? jego nick i liczba pieni?dzy. Niestety nie wiem jak to zrobi?.
local connect = dbConnect ( "sqlite" , "baza.db" )
if connect then
outputDebugString ( "Po??czenie z baz? SQLite zako?czy?o si? powodzeniem." )
dbExec ( connect , "CREATE TABLE IF NOT EXISTS player (nick TEXT, money TEXT)" )
dbExec ( connect , "CREATE TABLE IF NOT EXISTS frakcja (nick TEXT)" )
else
outputDebugString ( "Po??czenie z baz? SQLite zako?czy?o si? nie powodzeniem." )
stopResource ( getThisResource ())
end
for i , v in ipairs ( getElementsByType ( "player" )) do
local nick = getPlayerName ( v )
local money = getPlayerMoney ( v )
dbQuery ( connect , "INSERT INTO player ( nick, money ) VALUES ( ?,? )" , nick , money )
end
Podpis
Użytkownik - 10-05-2016
Support Team - 17.06.2017
Moderator - 25.11.2017
Mod-Team - 02.07.2018
Wysłany: 2017-05-21, 12:10
Dexnes_
Tiger
Wiek: 26 Na forum: 4402 dni Posty: 620
Nick w MP: Dexnes
Piwa : 1394
Mo?e jaki? event ?
Poczytaj co robi :
Więcej informacji znajdziesz w Wikipedii MTA: dbQuery
Więcej informacji znajdziesz w Wikipedii MTA: dbExec
Wysłany: 2017-05-21, 20:48
Atroth
Wiek: 23 Na forum: 3677 dni Posty: 1089
Nick w MP: Atroth
Piwa : 4808
BlackGamePL , Czy to jest dobrze? Nie mam teraz mo?liwo?ci sprawdzenia czy dzia?a.
local connect = dbConnect ( "sqlite" , "baza.db" )
if connect then
outputDebugString ( "Po??czenie z baz? SQLite zako?czy?o si? powodzeniem." )
local tabela = dbExec ( connect , "CREATE TABLE IF NOT EXISTS player ( name VARCHAR )" )
local tabela2 = dbExec ( connect , "CREATE TABLE IF NOT EXISTS frakcja ( name VARCHAR )" )
else
outputDebugString ( "Po??czenie z baz? SQLite zako?czy?o si? nie powodzeniem." )
stopResource ( getThisResource ())
end
addEventHandler ( "onPlayerJoin" , getRootElement (), function()
for i , v in ipairs ( getElementsByType ( "player" )) do
local nick = getPlayerName ( v )
local qh = dbQuery ( connect , "INSERT INTO player ( nick ) VALUES ( ?,? )" , nick )
local result = dbPoll ( qh , - 1 )
end
end )
Podpis
Użytkownik - 10-05-2016
Support Team - 17.06.2017
Moderator - 25.11.2017
Mod-Team - 02.07.2018
Wysłany: 2017-05-21, 21:28
Dexnes_
Tiger
Wiek: 26 Na forum: 4402 dni Posty: 620
Nick w MP: Dexnes
Piwa : 1394
Rookspack , Nie , do "INSERT" bardziej polecam dbExec , gdy? dodatkowe sprawdzanie nie b?dzie ci potem potrzebne. W dodatku nie wiem po co ci p?tla do graczy , po wej?ciu gracza na serwer b?dzie pobiera?o wszystkich graczy. Co do tego zapytania to nie wiem dlaczego masz "?,?" skoro dodajesz tylko 1 argument.
Wysłany: 2017-05-21, 22:41
Atroth
Wiek: 23 Na forum: 3677 dni Posty: 1089
Nick w MP: Atroth
Piwa : 4808
BlackGamePL , Zmieni?em krok po kroku jak napisa?e?.
Wyskakuje bad argument z
local nick = getPlayerName ( plr )
Ca?y kod:
local connect = dbConnect ( "sqlite" , "baza.db" )
if connect then
outputDebugString ( "Po??czenie z baz? SQLite zako?czy?o si? powodzeniem." )
local tabela = dbExec ( connect , "CREATE TABLE IF NOT EXISTS player ( Nick VARCHAR )" )
local tabela2 = dbExec ( connect , "CREATE TABLE IF NOT EXISTS frakcja ( Nick VARCHAR )" )
else
outputDebugString ( "Po??czenie z baz? SQLite zako?czy?o si? nie powodzeniem." )
stopResource ( getThisResource ())
end
addEventHandler ( "onPlayerJoin" , getRootElement (),
function( plr )
local nick = getPlayerName ( plr )
dbExec ( connect , "INSERT INTO player ( Nick ) VALUES ( ? )" , nick )
end
)
Prosz? o wyrozumia?o??. Baza danych w LUA na pocz?tku jest trudnym ogarni?ciem.
Podpis
Użytkownik - 10-05-2016
Support Team - 17.06.2017
Moderator - 25.11.2017
Mod-Team - 02.07.2018
Wysłany: 2017-05-22, 09:54
marcin778
Krytyk serwerów MTA
Wiek: 24 Na forum: 4150 dni Posty: 2268
Nick w MP: Marcineg
Piwa : 4662
Wysłany: 2017-05-22, 14:12
Atroth
Wiek: 23 Na forum: 3677 dni Posty: 1089
Nick w MP: Atroth
Piwa : 4808
marcin778 , Ok, brak db3. Czy za pomoc? sqllite browser b?d? m?g? przegl?da? nicki graczy, kt?rzy wejd? na serwer?
Podpis
Użytkownik - 10-05-2016
Support Team - 17.06.2017
Moderator - 25.11.2017
Mod-Team - 02.07.2018
Wysłany: 2017-05-23, 00:35
marcin778
Krytyk serwerów MTA
Wiek: 24 Na forum: 4150 dni Posty: 2268
Nick w MP: Marcineg
Piwa : 4662
Tak, ale mog? by? problemy z tym ,?e kolumna Nick jest VARCHAR powinno by? TEXT
Wysłany: 2017-05-23, 15:57
Atroth
Wiek: 23 Na forum: 3677 dni Posty: 1089
Nick w MP: Atroth
Piwa : 4808
marcin778 , Wi?c zmieni?em. Odpali?em skrypt przez konsol?, wchodz? na serwer, patrz? w otwieram baze danych, s? tabele, ale mojego nicku ju? nie
Podpis
Użytkownik - 10-05-2016
Support Team - 17.06.2017
Moderator - 25.11.2017
Mod-Team - 02.07.2018
Wysłany: 2017-05-24, 21:45
eject
kurdebele
Wiek: 30 Na forum: 3659 dni Posty: 182
Nick w MP: EjecT
Piwa : 2456
local connect = dbConnect ( "sqlite" , "baza.db" )
if connect then
outputDebugString ( "Po??czenie z baz? SQLite zako?czy?o si? powodzeniem." )
local tabela = dbExec ( connect , "CREATE TABLE IF NOT EXISTS player ( Nick VARCHAR )" )
local tabela2 = dbExec ( connect , "CREATE TABLE IF NOT EXISTS frakcja ( Nick VARCHAR )" )
else
outputDebugString ( "Po??czenie z baz? SQLite zako?czy?o si? nie powodzeniem." )
stopResource ( getThisResource ())
end
addEventHandler ( "onPlayerJoin" , getRootElement (),
function()
local nick = getPlayerName ( source )
dbExec ( connect , "INSERT INTO player ( Nick ) VALUES ( ? )" , nick )
end
)
Wysłany: 2017-05-24, 21:51
Atroth
Wiek: 23 Na forum: 3677 dni Posty: 1089
Nick w MP: Atroth
Piwa : 4808
eject , Nie wiem za bardzo co ty tu zmieni?e?, pomijaj?c, ?e ten spos?b ju? pr?bowa?em, czyta si? up ...
Podpis
Użytkownik - 10-05-2016
Support Team - 17.06.2017
Moderator - 25.11.2017
Mod-Team - 02.07.2018
Wysłany: 2017-05-24, 21:54
eject
kurdebele
Wiek: 30 Na forum: 3659 dni Posty: 182
Nick w MP: EjecT
Piwa : 2456
1. Usun plik sqlite.db pry wylaczonym skrypcie
2. Przy tworzeniu tavel masz Nick VARCHAR zmien na Nick TEXT
3.zastosuj dzialanie handlera onPlayerJoin z kodu wyzej.
4 odpal skrypt
5.reconnect
Wysłany: 2017-05-24, 21:58
Atroth
Wiek: 23 Na forum: 3677 dni Posty: 1089
Nick w MP: Atroth
Piwa : 4808
eject , Skrypt jest oparty na serwerze lokalnym. Nie za bardzo napisa?e? to po polsku.
Podpis
Użytkownik - 10-05-2016
Support Team - 17.06.2017
Moderator - 25.11.2017
Mod-Team - 02.07.2018
Wysłany: 2017-05-24, 22:00
eject
kurdebele
Wiek: 30 Na forum: 3659 dni Posty: 182
Nick w MP: EjecT
Piwa : 2456
Po polaczeniu przy dbConnect tworxy ci plik w folderze danego asobu w twoim przykladu baza.db potem zastosuj wskazowki wyzej
Wysłany: 2017-05-24, 22:05
Atroth
Wiek: 23 Na forum: 3677 dni Posty: 1089
Nick w MP: Atroth
Piwa : 4808
eject ,
Zmieni?em VARCHAR na TEXT w kodzie. Nie za bardzo to rozumiem:
Kod:
3.zastosuj dzialanie handlera onPlayerJoin z kodu wyzej.
Podpis
Użytkownik - 10-05-2016
Support Team - 17.06.2017
Moderator - 25.11.2017
Mod-Team - 02.07.2018
Tagi: baza :: danych
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: