Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2018-05-18, 22:08


MaciekSteal







Wiek: 33
Na forum: 3742 dni
Posty: 26

Piwa: 1

Respekt: 50

Cze??.
Bazuj? na paczce newmode.
Problem polega na tym, ?e gdy dodaj? premium na 1,7 czy 14 dni to premium faktycznie dzia?a oraz zapisuje si? w tabeli sql lecz po reconnect gracza posiadaj?cego premium usuwa warto?? z tabeli oraz usuwa rang? w grze. Da si? to jako? naprawi? ?

function sprawdzIloscDni(gracz)
    local spr = exports.mysql:wykonaj("SELECT * FROM konta WHERE dbid=? AND premium>NOW() LIMIT 1", getElementData(gracz, "dbid"))
    if (spr and #spr > 0) then
        return spr[1].premium
    end
    return false
end

function ustawIloscDni(gracz, dni)
    if sprawdzIloscDni(gracz) then
    local wyk = exports.mysql:wykonaj(string.format("UPDATE konta SET premium = DATE(premium) + INTERVAL %d DAY WHERE dbid=%d", dni, getElementData(gracz, "dbid")))
    return end
    local wyk = exports.mysql:wykonaj(string.format("UPDATE konta SET premium = DATE(curdate()) + INTERVAL %d DAY WHERE dbid=%d", dni, getElementData(gracz, "dbid")))
end

addEvent("skPremium", true)
addEventHandler("skPremium", root, function(kod, dni)
    local spr = ""
    fetchRemote(spr, wyk, "", false, client, dni)
end)

function wyk(responseData, errno, playerToReceive, amount)
    if errno == 0 then
    --if string.find(responseData, "Divine-Life") then
    if string.find(responseData, '"status":0') then    
        if string.find(responseData, '"number":"71480"') then
            amount = 1
        elseif string.find(responseData, '"number":"74480"') then
            amount = 7
        elseif string.find(responseData, '"number":"76480"') then
            amount = 14
        elseif string.find(responseData, '"number":"79480"') then
            amount = 30
        end
        exports["crpg_powiadomienia"]:noti("Zakupi?e? premium na "..amount.." dni.", playerToReceive)        
        setElementData(playerToReceive, "premium", true)
        ustawIloscDni(playerToReceive, amount)
        setPlayerNametagColor(playerToReceive, 255, 200, 0)
    else
        exports["crpg_powiadomienia"]:noti("Podany kod jest nieprawid?owy.", playerToReceive)        
    end
end
end


addCommandHandler("daj.premium", function(g, _, graczhere, dni)
    if getElementData(g, "duty") == 4 and graczhere and dni then
        graczhere = findPlayer(g, graczhere)
        if not graczhere then return end
        ustawIloscDni(graczhere, dni)
        setElementData(graczhere, "premium", true)
        setPlayerNametagColor(graczhere, 255, 200, 0)
        exports["crpg_powiadomienia"]:noti("Nada?e? graczu "..getPlayerName(graczhere).." premium na "..dni.." dni", g)            
    end
end)

function findPlayer(p, ph)
    for i,v in ipairs(getElementsByType("player")) do
        if tonumber(ph) then
            if getElementData(v, "id") == tonumber(ph) then
                return getPlayerFromName(getPlayerName(v))
            end
        else
            if string.find(string.gsub(getPlayerName(v):lower(),"#%x%x%x%x%x%x", ""), ph:lower(), 1, true) then
                return getPlayerFromName(getPlayerName(v))
            end
        end
    end
end


Dzi?ki ;) 8-)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-05-18, 22:11


Hades.

Łiiiiiiiiii






Wiek: 22
Na forum: 4841 dni
Posty: 372
Nick w MP: Hades

Piwa: 3218

Respekt: 337,8
Respekt: 337,8Respekt: 337,8Respekt: 337,8

Najprawdopodobniej nie posiadasz zapisu tej premki w skrypcie zapisu gracza.

Podpis
Skrypty/Grafiki na zamówienie!
Kontakt: Discord R35#5507

Discord związany z pomocą: https://discord.gg/ttkQTsc
Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
Mezo.
Wysłany: 2018-05-18, 22:13


MaciekSteal







Wiek: 33
Na forum: 3742 dni
Posty: 26

Piwa: 1

Respekt: 50

"Damian2511" napisał/a:

Najprawdopodobniej nie posiadasz zapisu tej premki w skrypcie zapisu gracza.


My?lisz, ?e to prawdopodobne je?eli zapisuj? t? premke na rok a na 14 dni ju? nie :/ ?

Zobacz? czy jest jej zapis/ dzi?ki za pomoc

[ Dodano: 2018-05-18, 22:28 ]
Mo?e wina le?y po stronie tego kodu...
Odpowiada on (chyba) za wczytywanie danych na temat premium ze sql
if spr[1].premium == "0000-00-00" then return end
       if spr[1].premium > data() then
        setElementData(p, "premium", true)
        setPlayerNametagColor(p, 255, 255, 0)
    else
        setElementData(p, "premium", false)
        setPlayerNametagColor(p, 255, 255, 255)
        exports["crpg_powiadomienia"]:noti("Twoje konto premium straci?o wa?no?c.", p)
        exports.mysql:wykonaj("UPDATE konta SET premium=? WHERE dbid=?", "0000-00-00", spr[1].dbid)
    end
end


[ Dodano: 2018-05-19, 20:17 ]
Poblem dalej nie rozwi?zany wie kto? co mog? z tym zrobi? : / ?

Postaw piwo autorowi tego posta
 

 
Tagi: premium
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA 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
Dodaj temat do Ulubionych
Wersja do druku