Wysłany: 2017-12-23, 23:24
MassUUUU
Primary MTA
Wiek: 24 Na forum: 3775 dni Posty: 123
Nick w MP: CooqieEZ
Piwa : 5082
Cze??, na serwer mo?e zalogowa? si? jedna osoba, ale druga ju? ni uja. Wtedy pojawia si? co? takiego: logowanie / s . lua : 52 : attempt to call global 'getTimestamp' ( a nil value )
Dobra, teraz wrzuc? kodzik:
local haslo2 = false
local haslo3 = false
addEvent ( "domy" , true )
addEventHandler ( "domy" , root , function()
local result = false
if getElementData ( source , "organizacja" ) then
result = exports . mysql : wykonaj ( "SELECT * FROM domy WHERE (nwlasciciel=? OR organizacja=?)" , getPlayerName ( source ), getElementData ( source , "organizacja" ))
else
result = exports . mysql : wykonaj ( "SELECT * FROM domy WHERE nwlasciciel=?" , getPlayerName ( source ))
end
if #result > 0 then
triggerClientEvent ( source , "domy" , source , result )
end
end )
addEvent ( "sprawdz:pozycje" , true )
addEventHandler ( "sprawdz:pozycje" , root , function()
local result = exports . mysql : wykonaj ( "SELECT * FROM konta WHERE dbid=?" , getElementData ( source , "dbid" ))
if #result > 0 and result[1].pos:len() > 1 then
local pozycja = split ( result [ 1 ]. pos , "," )
triggerClientEvent ( "sprawdz:pozycje" , source , pozycja [ 1 ], pozycja [ 2 ], pozycja [ 3 ])
else
triggerClientEvent ( "sprawdz:pozycje" , source , 1721.72 , - 1695.66 , 13.50 )
end
end )
addEvent ( "zaloguj" , true )
addEventHandler ( "zaloguj" , root , function( login , haslo )
haslo = escapeStrings ( haslo )
login = escapeStrings ( login )
haslo2 = haslo
local haslo = base64Encode ( haslo )
local spr = exports . mysql : wykonaj ( "SELECT * FROM konta WHERE login=? AND haslo=?" , login , haslo )
if #spr > 1 then
triggerClientEvent ( client , "zmienPowiadomienie" , client , "Dane s? nieprawid?owe b?d? takie konto nie istnieje." )
return
end
if #spr < 1 then
triggerClientEvent ( client , "zmienPowiadomienie" , client , "Dane s? nieprawid?owe b?d? takie konto nie istnieje." )
return
end
for _ , p in ipairs ( getElementsByType ( "player" )) do
if getElementData ( p , "dbid" ) == spr [ 1 ]. dbid then
timestamp = getTimestamp ()
czas = timestamp + 14 * 86400
time = getRealTime ( czas )
data = ( time . year + 1900 ).. "-" ..( time . month + 1 ).. "-" ..( time . monthday ).. " " ..( time . hour + 1 ).. ":" ..( time . minute ).. ":" ..( time . second )
exports . mysql : wykonaj ( "INSERT INTO bany SET nick=?, serial=?, ip=?, data=?, admin=?, tresc=?" , getPlayerName ( client ), getPlayerSerial ( client ), getPlayerIP ( client ), data , 'SYSTEM' , 'Wyja?nij co? na forum' )
kickPlayer ( client , "Zaloguj si? ponownie." )
return
end
end
local konto = getAccount ( login , haslo2 )
if konto then
logIn ( client , konto , haslo2 )
end
triggerClientEvent ( client , "usunElementyLogowania" , root )
wczytajDane ( client , login )
end )
addEvent ( "zarejestruj" , true )
addEventHandler ( "zarejestruj" , root , function( login , haslo , email )
haslo = escapeStrings ( haslo )
login = escapeStrings ( login )
local sprxd = exports . mysql : wykonaj ( "SELECT * FROM konta WHERE serial=?" , getPlayerSerial ( client ))
if sprxd and #sprxd >= 2 then
triggerClientEvent ( client , "zmienPowiadomienie" , client , "Na twoim serialu zarejestrowano ju? maksymaln? liczb? kont (2)." )
return
end
haslo3 = haslo
local haslo = base64Encode ( haslo )
local spr = exports . mysql : wykonaj ( "SELECT * FROM konta WHERE login=?" , login )
if #spr > 0 then
triggerClientEvent ( client , "zmienPowiadomienie" , client , "Konto o takim loginie ju? istnieje." )
return
end
local wyk = exports . mysql : wykonaj ( "INSERT INTO konta SET login=?, haslo=?, email=?, serial=?, rejestracja=NOW()" , login , haslo , email , getPlayerSerial ( client ))
if wyk then
addAccount ( login , haslo2 )
local konto = getAccount ( login , haslo2 )
if konto then
logIn ( client , konto , haslo2 )
end
triggerClientEvent ( client , "usunElementyLogowania" , root , true )
wczytajDane ( client , login )
end
end )
addEvent ( "spawn" , true )
addEventHandler ( "spawn" , root , function( l , x , y , z )
if not l then return end
if l ~= true then
if l == "spawn" then
spawnPlayer ( client , - 2671.75 , - 5.04 , 6.13 , 0 , getElementData ( client , "skin" ), 0 )
elseif l == "angelpine" then
spawnPlayer ( client , - 2108.19 , - 2448.56 , 30.62 , 0 , getElementData ( client , "skin" ), 0 )
elseif l == "urzad" then
spawnPlayer ( client , - 2713.565 , 127.12 , 4.33 , 0 , getElementData ( client , "skin" ), 0 )
--[[elseif l == "pos" then
local spr = exports . mysql : wykonaj ( "SELECT * FROM konta WHERE dbid=?" , getElementData ( client , "dbid" ))
if spr [ 1 ]. pos : len () > 1 then
local pozycja = split ( spr [ 1 ]. pos , "," )
local x , y , z = pozycja [ 1 ], pozycja [ 2 ], pozycja [ 3 ]
spawnPlayer ( client , x , y , z , 0 , getElementData ( client , "skin" ), 0 )
else
spawnPlayer ( client , 1721.72 , - 1695.66 , 13.50 , 0 , getElementData ( client , "skin" ), 0 )
end ]]
end
else
spawnPlayer ( client , x , y , z , 0 , getElementData ( client , "skin" ), 0 )
end
setElementData ( client , "zalogowany" , true )
setCameraTarget ( client , client )
toggleControl ( client , "fire" , false )
toggleControl ( client , "aim_weapon" , false )
end )
function wczytajDane ( p , l )
if not p and not l then return end
local spr = exports . mysql : wykonaj ( "SELECT * FROM konta WHERE login=?" , l )
setPlayerName ( p , spr [ 1 ]. login )
setElementData ( p , "dbid" , spr [ 1 ]. dbid )
setElementData ( p , "pieniadze" , spr [ 1 ]. kasa )
setElementData ( p , 'grosze' , spr [ 1 ]. grosze )
setElementData ( p , "punkty" , spr [ 1 ]. punkty )
setElementData ( p , "bkasa" , spr [ 1 ]. bkasa )
setElementData ( p , "online" , spr [ 1 ]. online )
setElementData ( p , "rejestracja" , spr [ 1 ]. rejestracja )
setElementData ( p , "prawko_a" , spr [ 1 ]. prawko_a )
setElementData ( p , "prawko_b" , spr [ 1 ]. prawko_b )
if spr [ 1 ]. urzedowka ~= "" then
setElementData ( p , "urzedowka" , spr [ 1 ]. urzedowka )
end
setElementData ( p , "prawko_c" , spr [ 1 ]. prawko_c )
setElementData ( p , "skin" , spr [ 1 ]. skin )
local q = exports . mysql : wykonaj ( "SELECT * FROM organizacje WHERE id=?" , spr [ 1 ]. org )
if #q > 0 then
setElementData ( p , "organizacja" , q [ 1 ]. nazwa )
setElementData ( p , "oranga" , spr [ 1 ]. oranga )
setElementData ( p , "org" , spr [ 1 ]. org )
else
setElementData ( p , "organizacja" , false )
setElementData ( p , "oranga" , false )
setElementData ( p , "org" , false )
end
if spr [ 1 ]. premium == "0000-00-00" then return end
if spr [ 1 ]. premium > data () then
setElementData ( p , "premium" , true )
setElementData ( p , "premium:date" , spr [ 1 ]. premium )
setPlayerNametagColor ( p , 255 , 255 , 0 )
else
setElementData ( p , "premium" , false )
setPlayerNametagColor ( p , 255 , 255 , 255 )
exports . mysql : wykonaj ( "UPDATE konta SET premium=? WHERE dbid=?" , "0000-00-00" , spr [ 1 ]. dbid )
end
end
addEventHandler ( "onPlayerQuit" , root , function()
if getElementData ( source , "dbid" ) then
local kasa = getElementData ( source , "pieniadze" )
local grosze = getElementData ( source , "grosze" )
local online = tonumber ( getElementData ( source , "online" ))
local dbid = getElementData ( source , "dbid" )
local pkt = getElementData ( source , "punkty" )
local skin = getElementData ( source , "skin" )
local x , y , z = getElementPosition ( source )
local pos = x .. ", " .. y .. ", " .. z
local wyk = exports . mysql : wykonaj ( "UPDATE konta SET kasa=?, grosze=?, online=?, punkty=?, skin=?, pos=? WHERE dbid=?" , kasa , grosze , online , pkt , skin , pos , dbid )
if not wyk then
outputDebugString ( "Nie udalo sie zapisac gracza o dbid " .. dbid )
end
end
end )
function data ()
local t = getRealTime ()
local r = t . year
local m = t . month
local t = t . monthday
r = r + 1900
m = m + 1
local time = getRealTime ()
local hours = time . hour
local minutes = time . minute
local c = hours .. ":" .. minutes
return r .. "-" .. m .. "-" .. t .. " " .. c
end
addEvent ( "sprawdzBana" , true )
addEventHandler ( "sprawdzBana" , root , function()
local g = source
local serial = getPlayerSerial ( g )
local spr = exports . mysql : wykonaj ( "SELECT * FROM bany WHERE serial=? AND data>NOW()" , serial )
if #spr > 0 then
triggerClientEvent ( g , "oknoZbanowany" , root , g , spr [ 1 ]. ip , spr [ 1 ]. serial , spr [ 1 ]. data , spr [ 1 ]. admin , spr [ 1 ]. nick )
triggerClientEvent ( g , "bShowedLogin" , root )
else
exports . mysql : wykonaj ( "DELETE FROM bany WHERE serial=?" , serial )
end
end )
addEvent ( "banWyrzuc" , true )
addEventHandler ( "banWyrzuc" , root , function()
kickPlayer ( source , "Tw?j serial zosta? zablokowany na tym serwerze." )
end )
function escapeStrings ( str )
local String = string . gsub ( tostring ( str ), "'" , "" )
String = string . gsub ( String , '"' , "" )
String = string . gsub ( String , ';' , "" )
String = string . gsub ( String , "\" , "" )
String = string . gsub ( String , "/*" , "" )
String = string . gsub ( String , "*/" , "" )
String = string . gsub ( String , "'" , "" )
String = string . gsub ( String , "`" , "" )
return String
end
Ostatnio zmieniony przez MassUUUU 2017-12-24, 00:08, w całości zmieniany 1 raz
Wysłany: 2017-12-23, 23:33
marcin778
Krytyk serwerów MTA
Wiek: 24 Na forum: 4149 dni Posty: 2268
Nick w MP: Marcineg
Piwa : 4662
function isLeapYear ( year )
if year then year = math . floor ( year )
else year = getRealTime (). year + 1900 end
return (( year % 4 == 0 and year % 100 ~= 0 ) or year % 400 == 0 )
end
function getTimestamp ( year , month , day , hour , minute , second )
-- initiate variables
local monthseconds = { 2678400 , 2419200 , 2678400 , 2592000 , 2678400 , 2592000 , 2678400 , 2678400 , 2592000 , 2678400 , 2592000 , 2678400 }
local timestamp = 0
local datetime = getRealTime ()
year , month , day = year or datetime . year + 1900 , month or datetime . month + 1 , day or datetime . monthday
hour , minute , second = hour or datetime . hour , minute or datetime . minute , second or datetime . second
-- calculate timestamp
for i = 1970 , year - 1 do timestamp = timestamp + ( isLeapYear ( i ) and 31622400 or 31536000 ) end
for i = 1 , month - 1 do timestamp = timestamp + (( isLeapYear ( year ) and i == 2 ) and 2505600 or monthseconds [ i ]) end
timestamp = timestamp + 86400 * ( day - 1 ) + 3600 * hour + 60 * minute + second
timestamp = timestamp - 3600 -- GMT + 1 compensation
if datetime . isdst then timestamp = timestamp - 3600 end
return timestamp
end Wrzu? to na g?r? kodu.
Wysłany: 2017-12-24, 00:07
MassUUUU
Primary MTA
Wiek: 24 Na forum: 3775 dni Posty: 123
Nick w MP: CooqieEZ
Piwa : 5082
marcin778 , nope nie dzia?a. Zaktualizowa?em kod o ca?y kod S.lua
[ Dodano : 2017-12-24, 00:36 ]
do zamkni?cia - zapomnia?em wype?niania DBID od 1, 2, 3 etc doda? w sqlu.
Tagi: gettimestamp :: zmora :: logowania...
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: