Witamy na GTAOnline Obecny czas to 2018-06-21, 19:37 Użytkowników: 74928
Strona główna | Użytkownicy | Grupy | Faq | Regulamin | Zaloguj


Poprzedni temat :: Następny temat
getTimestamp - zmora logowania...
Autor Wiadomość

MassUUUU 
Graphic Designer





Informacje
Nick w MP: CooqieEZ
Wiek: 16
Na forum: 871 dni
Posty: 124
Piwa: 1707
Respekt: 13

Wysłany: 2017-12-23, 23:24   getTimestamp - zmora logowania...



Cześć, na serwer może zalogować się jedna osoba, ale druga już ni uja. Wtedy pojawia się coś takiego:
logowanie/s.lua:52attempt 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"sourceresult)
    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"sourcepozycja[1], pozycja[2], pozycja[3])
    else
        triggerClientEvent("sprawdz:pozycje"source1721.72, -1695.6613.50)
    end
end)

addEvent("zaloguj"true)
addEventHandler("zaloguj"root, function(loginhaslo)
    haslo escapeStrings(haslo)
    login escapeStrings(login)
    haslo2 haslo
    local haslo base64Encode(haslo)
    local spr exports.mysql:wykonaj("SELECT * FROM konta WHERE login=? AND haslo=?"loginhaslo)
    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(loginhaslo2)
    if konto then
        logIn(clientkontohaslo2)
    end
    triggerClientEvent(client"usunElementyLogowania"root)
    wczytajDane(clientlogin)
end)

addEvent("zarejestruj"true)
addEventHandler("zarejestruj"root, function(loginhasloemail)
    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()"loginhasloemailgetPlayerSerial(client))
    if wyk then
        addAccount(loginhaslo2)
        local konto getAccount(loginhaslo2)
        if konto then
            logIn(clientkontohaslo2)
        end
        triggerClientEvent(client"usunElementyLogowania"roottrue)
        wczytajDane(clientlogin)
    end
end)

addEvent("spawn"true)
addEventHandler("spawn"root, function(lxyz)
    if not l then return end
    if ~= true then
        if == "spawn" then
            spawnPlayer(client, -2671.75, -5.046.130getElementData(client"skin"), 0)
        elseif == "angelpine" then
            spawnPlayer(client, -2108.19, -2448.5630.620getElementData(client"skin"), 0)
        elseif == "urzad" then
            spawnPlayer(client, -2713.565127.124.330getElementData(client"skin"), 0)
    --[[elseif == "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 xypozycja[1], pozycja[2], pozycja[3]
                spawnPlayer(clientxyz0getElementData(client"skin"), 0)
            else
                spawnPlayer(client1721.72, -1695.6613.500getElementData(client"skin"), 0)
            end]]
        end
    else
        spawnPlayer(clientxyz0getElementData(client"skin"), 0)
    end
    setElementData(client"zalogowany"true)
    setCameraTarget(clientclient)
    toggleControl(client"fire"false)
    toggleControl(client"aim_weapon"false)
end)

function wczytajDane(pl)
    if not p and not l then return end
    local spr exports.mysql:wykonaj("SELECT * FROM konta WHERE login=?"l)
    setPlayerName(pspr[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(p2552550)
    else
        setElementData(p"premium"false)
        setPlayerNametagColor(p255255255)
        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 xygetElementPosition(source)
        local pos x..", "..y..", "..z
        local wyk exports.mysql:wykonaj("UPDATE konta SET kasa=?, grosze=?, online=?, punkty=?, skin=?, pos=? WHERE dbid=?"kasagroszeonlinepktskinposdbid)
        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"rootgspr[1].ipspr[1].serialspr[1].dataspr[1].adminspr[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  
Postaw piwo autorowi tego posta
 

marcin778 
Krytyk serwerów MTA





Informacje
Nick w MP: Marcineg
Wiek: 30
Na forum: 1245 dni
Posty: 2234
Piwa: 4096
Respekt: 1046,8
Respekt: 1046,8

Wysłany: 2017-12-23, 23:33   




Więcej informacji znajdziesz w Wikipedii MTA:

getTimestamp





function isLeapYear(year)
    if year then year math.floor(year)
    else year getRealTime().year 1900 end
    return ((year == and year 100 ~= 0) or year 400 == 0)
end

function getTimestamp(yearmonthdayhourminutesecond)
    -- initiate variables
    local monthseconds = { 267840024192002678400259200026784002592000267840026784002592000267840025920002678400 }
    local timestamp 0
    local datetime getRealTime()
    yearmonthday year or datetime.year 1900month or datetime.month 1day or datetime.monthday
    hourminutesecond hour or datetime.hourminute or datetime.minutesecond or datetime.second
    
    -- calculate timestamp
    for i=1970year-do timestamp timestamp + (isLeapYear(i) and 31622400 or 31536000end
    for i=1month-do timestamp timestamp + ((isLeapYear(year) and == 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.

_________________
Pomagam w miarę możliwości Discord: marcin778#7316
Również robię skrypty na zamówienie.

Moje prace: https://www.youtube.com/c...MuaWGHPp1mhlGnw

Jak to rzekł pewien mądry człowiek, są ludzie, którym lepiej ustąpić. Nie z powodu strachu lecz z powodu ich głupoty, która prowadzi donikąd.

-- obecnie
-- obecnie
-- dawniej
-- dawniej
-- obecnie
Postaw piwo autorowi tego posta
 

MassUUUU 
Graphic Designer





Informacje
Nick w MP: CooqieEZ
Wiek: 16
Na forum: 871 dni
Posty: 124
Piwa: 1707
Respekt: 13

Wysłany: 2017-12-24, 00:07   



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.

_________________
Postaw piwo autorowi tego posta
 
Tagi: gettimestamp :: zmora :: logowania...
Anonymous



Dołaczył: Wczoraj 0:00
Posty: 1
Skad: google.com


Anonymous Koniecznie zajrzyj na:







Wyświetl posty z ostatnich:   
Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Wersja do druku

Skocz do:  


phpBB by Przemo modified by xXx 2003-2016

Template GTAONLINE created by gtaonline.pl



Strona wygenerowana w 0,19 sekundy. Zapytań do SQL: 18