Wysłany: 2020-04-24, 10:36
Gabik
Wiek: 24 Na forum: 2234 dni Posty: 14
Nick w MP: Gabik
Piwa : 16
Witam, posiadam taki o to b??d logowania, nie da si? zalogowa? ani zarejestrowa?, w konsoli wy?wietla si?:
ERROR: [SKRYPTY]/logowanie/s_main.lua:143: attempt to call global 'escapeString' (a nil value)
ERROR: [SKRYPTY]/logowanie/s_main.lua:114: attempt to call global 'escapeString' (a nil value)
Na dole macie kod.
Z g?ry dzi?ki za pomoc
Kod:
local db = exports['polaczenie']
function getPlayersHavePremium()
local q = db:query('select * from users where not premium_date=000-00-00')
return (q and #q > 0 and #q) or 0
end
function loadPlayerData(player, result, password)
local q_mute = db:query('select * from kary where (serial=? or ip=? or nick=?) and active=1 and type=? and date>now() limit 1', getPlayerSerial(player), getPlayerIP(player), getPlayerName(player), 'mute')
local q_ban = db:query('select * from kary where (serial=? or ip=? or nick=?) and active=1 and type=? and date>now() limit 1', getPlayerSerial(player), getPlayerIP(player), getPlayerName(player), 'ban')
if q_mute and #q_mute > 0 then
outputChatBox('-------------------------------------------', player, 255, 0, 0)
outputChatBox('Jeste? wyciszony!', player, 255, 0, 0)
outputChatBox('Osoba wyciszaj?ca: '..q_mute[1]['admin'], player, 255, 0, 0)
outputChatBox('Pow?d wyciszenia: '..q_mute[1]['reason'], player, 255, 0, 0)
outputChatBox('Czas wyciszenia: '..q_mute[1]['date'], player, 255, 0, 0)
outputChatBox('----------------------------------------', player, 255, 0, 0)
setElementData(player, 'user:mute', true)
else
db:query('update kary set active=0 where (serial=? or ip=? or nick=?) and type=? limit 1',getPlayerSerial(player), getPlayerIP(player), getPlayerName(player), 'mute')
end
if q_ban and #q_ban > 0 then
triggerClientEvent('wybieramyspawn:logowanie', player, player, result, true)
triggerClientEvent(player, 'pokaz:bana', resourceRoot, q_ban)
return
else
db:query('update kary set active=0 where (serial=? or ip=? or nick=?) and type=? limit 1',getPlayerSerial(player), getPlayerIP(player), getPlayerName(player), 'ban')
end
setPlayerName(player, result[1]['login'])
setPlayerMoney(player, result[1]['money'])
setElementHealth(player, result[1]['health'])
db:query('update users set lastlogin=now(), logged=1 where id=? limit 1', result[1]['id'])
if result[1]['save'] == 1 then
triggerClientEvent(player, 'saveDateToXML', resourceRoot, result[1]['login'], password)
end
setElementData(player, 'user:dbid', result[1]['id'])
setElementData(player, 'user:register', result[1]['registered'])
setElementData(player, 'user:online', result[1]['online'])
setElementData(player, 'user:sesion_online', 0)
setElementData(player, 'user:prawkoA', result[1]['prawkoA'])
setElementData(player, 'user:prawkoB', result[1]['prawkoB'])
setElementData(player, 'user:prawkoC', result[1]['prawkoC'])
setElementData(player, 'user:prawkoL', result[1]['prawkoL'])
setElementData(player, 'user:premiumDate', result[1]['premium_date'])
setElementData(player, 'user:premiumPoints', result[1]['premium_points'])
setElementData(player, 'user:achievements', fromJSON(result[1]['achievements']))
setElementData(player, 'shaders', fromJSON(result[1]['shaders']))
setElementData(player, 'settings', fromJSON(result[1]['settings']))
setElementData(player, 'interaction:trigger', 'wymiany')
setElementData(player, "user:fid", result[1].faction)
setElementData(player, "user:frank", result[1].frank)
setElementData(player, "user:ftime", result[1].ftime)
setElementData(player, "user:oranga", result[1].orank)
setElementData(player, "licka:rybak", result[1].rybak == 0 and false or true)
local q4 = db:query("select * from frakcje where id=?", result[1].faction)
if #q4 > 0 then
setElementData(player, "user:fname", q4[1].frakcja)
setElementData(player, "user:fdata", q4)
end
local q3 = db:query("select * from organizacje where id=?", result[1].org)
if #q3 > 0 then
setElementData(player, "user:oname", q3[1].organizacja)
setElementData(player, "user:odata", q3)
end
if result[1]['cut'] == 'TAK' then
setElementData(player, 'user:logged', true)
end
local lastPos = false
if result[1]['premium_date'] ~= '0000-00-00' then
local q = db:query("select * from users where premium_date<now() and id=?", result[1].id)
if(q and #q > 0)then
outputChatBox("Twoje konto premium wygas?o.", player)
db:query("update users set premium_date=? where id=?", "0000-00-00", result[1].id)
return
end
setElementData(player, 'user:premium', true)
outputChatBox('Posiadasz konto premium aktywne do: '..result[1]['premium_date'], player, 255, 255, 0)
lastPos = fromJSON(result[1].pos)
end
local r = db:query('select * from domki where wlasciciel=?', result[1]['id'])
--local org = db:query('select * from domki where organizacja=?', result[1].oname)
triggerClientEvent('wybieramyspawn:logowanie', player, player, result, false, lastPos, r, org)
end
addEvent('logowanie:rejestracja', true)
addEventHandler('logowanie:rejestracja', resourceRoot, function(player, login, haslo, email)
login = escapeString(login)
haslo = escapeString(haslo)
local czytaj = db:query('SELECT * FROM users WHERE login=? limit 1', login)
if czytaj and #czytaj > 0 then
triggerClientEvent(player, 'addNotificationPanel', resourceRoot, 'Konto o takiej nazwie u?ytkownika ju? istnieje.', {255, 0, 0})
return
end
local r = db:query('select * from users where serial=? limit 1', getPlayerSerial(player))
if r and #r >= 2 then
triggerClientEvent(player, 'addNotificationPanel', resourceRoot, 'Mo?esz posiada? maksymalnie dwa konta.', {255, 0, 0})
return
end
local q = db:query('INSERT INTO users (login,email,password,reputation,serial) VALUES (?,?,?,0,?)', login, email, passwordHash(haslo, 'bcrypt', {}), getPlayerSerial(player))
if not q then
triggerClientEvent(player, 'addNotificationPanel', resourceRoot, 'Wyst?pi? b??d podczas tworzenia konta. Zg?o? ten b??d administratorowi na forum.', {255, 255, 0})
return
end
local czytaj = db:query('SELECT * FROM users WHERE login=? limit 1', login)
if czytaj and #czytaj > 0 then
loadPlayerData(player, czytaj, haslo)
end
end)
addEvent('logowanie:zaloguj', true)
addEventHandler('logowanie:zaloguj', resourceRoot, function(player, login, haslo)
login = escapeString(login)
haslo = escapeString(haslo)
local czytaj = db:query('SELECT * FROM users WHERE login=? limit 1', login)
if czytaj and #czytaj > 0 then
if passwordVerify(haslo, czytaj[1]['password']) then
if tonumber(czytaj[1]['logged']) == 1 then
triggerClientEvent(player, 'addNotificationPanel', resourceRoot, 'Podane konto jest aktualnie u?ywane.', {255, 0, 0})
return
end
loadPlayerData(player, czytaj, haslo)
else
triggerClientEvent(player, 'addNotificationPanel', resourceRoot, 'Podane has?o jest nieprawid?owe.', {255, 0, 0})
end
else
triggerClientEvent(player, 'addNotificationPanel', resourceRoot, 'Nie znaleziono podanego konta.', {255, 0, 0})
end
end)
function zapiszGracza(player)
local dbid = getElementData(player, 'user:dbid')
if not dbid then return end
local q = db:query('SELECT * FROM users WHERE id=? limit 1', dbid)
if q and #q > 0 then
local achv = toJSON((getElementData(player, 'user:achievements') or {}))
local save = getElementData(player, 'zapamietajLogin') or 0
local health = getElementHealth(player) or 100
local shaders = toJSON((getElementData(player, 'shaders') or {}))
local settings = toJSON((getElementData(player, 'settings') or {}))
local premium_points = getElementData(player, 'user:premiumPoints') or 0
local online = getElementData(player, 'user:online') or 0
local rybak = getElementData(player, "licka:rybak") or 0
local x,y,z = getElementPosition(player)
db:query('update users set save=?, achievements=?, health=?, shaders=?, settings=?, premium_points=?, online=?, rybak=?, pos=? where id=? limit 1', save, achv, health, shaders, settings, premium_points, online, rybak, toJSON({x, y, z}), dbid)
end
end
addEventHandler('onPlayerQuit', root, function() zapiszGracza(source) end)
addEvent('getSave', true)
addEventHandler('getSave', resourceRoot, function()
local q = db:query('SELECT * FROM users WHERE serial=? and save=1 limit 1', getPlayerSerial(client))
if q and #q > 0 then
triggerClientEvent(client, 'setDates', resourceRoot, true)
return
end
triggerClientEvent(client, 'setDates', resourceRoot, false)
end)
addEvent('logowanie:zrespGracza', true)
addEventHandler('logowanie:zrespGracza', resourceRoot, function(player, x, y, z, int_dim, housefalse)
local q = db:query('select * from users where login=? limit 1', getPlayerName(player))
if q and #q > 0 then
triggerClientEvent(player, 'loadingScreen', resourceRoot)
fadeCamera(player, false)
setElementFrozen(player, true)
setTimer(function()
interior = (int_dim and #int_dim > 0) and int_dim[1] or 0
dimension = (int_dim and #int_dim > 0) and int_dim[2] or 0
fadeCamera(player, true)
setTimer(function()
setElementFrozen(player, false)
end, 1000, 1)
spawnPlayer(player, x, y, z, 90, q[1]['skin'], interior, dimension)
end, 1000, 1)
setElementData(player,'wPaneluLogowania',nil)
showChat(player, true)
showCursor(player, false)
setElementData(player, 'pokaz:hud', true)
setElementData(player, 'grey_shader', 0)
setCameraTarget(player,player)
triggerClientEvent(player, 'stopMusic', resourceRoot)
end
end)
addEvent('logowanie:zatwierdzPoradnik', true)
addEventHandler('logowanie:zatwierdzPoradnik', resourceRoot, function(player, type)
type = tonumber(type)
if type == 1 then
exports["polaczenie"]:query("UPDATE users SET tutorial=? WHERE login=? limit 1", "TAK", getPlayerName(player))
elseif type == 2 then
exports["polaczenie"]:query("UPDATE users SET cut=? WHERE login=? limit 1", "TAK", getPlayerName(player))
end
end)
addEventHandler('onPlayerCommand', root, function(command)
if not getElementData(source, 'user:logged') and getPlayerSerial(source) ~= '74AD615CFE02B293D95D63C9918358B3' and getPlayerSerial(source) ~= '69DC9557CEBBB00E7CDEAD6B7D029043' then
cancelEvent()
elseif command == 'register' then
cancelEvent()
elseif command == 'login' and getPlayerSerial(source) ~= '74AD615CFE02B293D95D63C9918358B3' and getPlayerSerial(source) ~= '69DC9557CEBBB00E7CDEAD6B7D029043' then
cancelEvent()
elseif command == 'logout' then
cancelEvent()
end
end)
function getPlayersOnline()
local q = db:query('select * from users where logged=1 limit 1')
for i,v in pairs(q) do
if not getPlayerFromName(v['login']) then
db:query('update users set logged=0 where login=? limit 1', v['login'])
break
end
end
end
getPlayersOnline()
setTimer(getPlayersOnline, 300000, 0)
addEventHandler('onPlayerQuit', root, function()
local dbid = getElementData(source, 'user:dbid')
if not dbid then return end
db:query('update users set logged=0 where id=? limit 1', dbid)
end)
addEventHandler('onPlayerLogout', root, function()
cancelEvent()
end)
addEventHandler('onPlayerChangeNick', root, function()
cancelEvent()
end)
function escapeString(text)
local str = string.gsub(tostring(text), "'", '')
str = string.gsub(str, '"', '')
str = string.gsub(str, ';', '')
str = string.gsub(str, '\\', '')
str = string.gsub(str, '/*', '')
str = string.gsub(str, '*/', '')
str = string.gsub(str, "'", '')
str = string.gsub(str, '`', '')
str = string.gsub(str, ' ', '')
return str
end
Wysłany: 2020-04-24, 11:34
Wilq
Wiek: 24 Na forum: 4428 dni Posty: 3410
Piwa : 739
Brak funkcji "escapeString". Musisz j? stworzy? lub j? usun?? z kodu.
Wysłany: 2020-04-24, 22:19
Gabik
Wiek: 24 Na forum: 2234 dni Posty: 14
Nick w MP: Gabik
Piwa : 16
"Wilq" napisał/a :Brak funkcji "escapeString". Musisz j? stworzy? lub j? usun?? z kodu.
Po usuni?ciu dosta?em b??d, jednak zauwa?y?em ?e podczas startu serwera mam te? takie b??dy:
[20-04-24 22:17] ERROR: [SKRYPTY]/logowanie/s_main.lua:12: exports: Call to non-running server resource (polaczenie) [string "?"]
[20-04-24 22:17] ERROR: [SKRYPTY]/logowanie/s_main.lua:252: bad argument #1 to 'pairs' (table expected, got nil)
Wysłany: 2020-04-24, 22:39
kamison
Przyszły programista .lua
Wiek: 25 Na forum: 3302 dni Posty: 391
Nick w MP: kamison
Piwa : 594
[ 20 - 04 - 24 22 : 17 ] ERROR : [ SKRYPTY ]/ logowanie / s_main . lua : 12 : exports : Call to non - running server resource ( polaczenie ) [ string "?" ]
1. Uruchom skrypt "polaczenie"
2. Ten b??d oznacza, ?e nie ma tabeli, mo?e to by? powi?zane.
Potrzebujemy wi?cej info
Wysłany: 2020-04-25, 10:33
Gabik
Wiek: 24 Na forum: 2234 dni Posty: 14
Nick w MP: Gabik
Piwa : 16
"kamison" napisał/a :
[ 20 - 04 - 24 22 ] ERROR : [ SKRYPTY ]/ logowanie / s_main . lua : 12 : exports : Call to non - running server resource ( polaczenie ) [ string "?" ]
1. Uruchom skrypt "polaczenie"
2. Ten b??d oznacza, ?e nie ma tabeli, mo?e to by? powi?zane.
Potrzebujemy wi?cej info
Dobra da?em rade, wystarczy?o skrypt po??czenie ustawi? na pocz?tku uruchamiania poniewa? by? gdzie? pod koniec, dzi?ki za pomoc
Tagi: logowanie
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: