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

Wysłany: 2017-07-23, 23:22


BoCzKu

Mapper & Lua






Wiek: 25
Na forum: 3606 dni
Posty: 87
Nick w MP: BoKu

Piwa: 331

Respekt: 135
Respekt: 135

Witam, tak jak w temacie. Na serwerze dodaje komu? premium, po wyj?ciu z serwera w MySQL wszystko si? zapisuje, ale jak wejdzie na serwer to nie posiada owej premki.


api="3dJ02IcwJagzYrpVuGhAeSxPo"
function getPremiumDate(plr)
    local queryA=exports['sW-db']:dbGet("SELECT * FROM Ev_Konta WHERE UID=? AND premiumdate>NOW() LIMIT 1", getElementData(plr,"UID"))
    if (queryA and #queryA > 0) then
        return queryA[1].premiumdate
    end
    return false
end


function setPremiumDay(plr,days)
    if getPremiumDate(plr) then
    local queryA=exports['sW-db']:dbSet(string.format("UPDATE Ev_Konta SET premiumdate = DATE(premiumdate) + INTERVAL %d DAY WHERE UID=%d",days,getElementData(plr,"UID")))
    return end
    local queryA=exports['sW-db']:dbSet(string.format("UPDATE Ev_Konta SET premiumdate = DATE(curdate()) + INTERVAL %d DAY WHERE UID=%d",days,getElementData(plr,"UID")))
end

addEvent("premiumActive", true)
addEventHandler("premiumActive", root, function(code,amount,number)
    if not code then return end
    outputDebugString(code..":"..amount)
    local x=exports['sW-db']:dbGet("SELECT * from Premium_Kody where code=?",code)
    if x and #x > 0 then
        if x[1].active < 1 then outputChatBox("*B??dny Kod",client) return end
        local xamount = tonumber(x[1].amount)
        if xamount == tonumber(amount) then
        exports['sW-db']:dbSet("UPDATE Premium_Kody set active=0,active_date=NOW(),active_uid=? where code=?",getElementData(client,"UID"),code)
        if tonumber(amount) == 1508 then amount = 15 else amount = 30 end
        setPremiumDay(client,amount)
        triggerEvent("save:player",root,client)
        triggerEvent("load:player",root,client)
        setElementData(client,"player:premium",true)
        outputChatBox("Kupiono konto premium na "..amount.." dni! Dzi?kujemy za dotacje !", client)
        else
        outputChatBox("B??dny ekod",client) return
        end
    return end
    local query=string.format("http://admin.serverproject.pl/api/smsapi.php?key="..api.."&amount=%s&code=%s&desc=%s", number,code,amount)
    fetchRemote( query, result,"",false, client,amount,number)
end)

function result(responseData, errno, playerToReceive,amount)
    if errno == 0 then
  local x = split(responseData,",")
    if not x then return end
    if string.find(x[1],"1") then
        if tonumber(amount) == 1508 then amount = 15 else amount = 30 end
        setPremiumDay(playerToReceive,amount)
        outputChatBox("Kupiono konto premium na "..amount.." dni! Dzi?kujemy za dotacje !", playerToReceive)
    --    setElementData(playerToReceive,"player:premium", true)
        triggerEvent("save:player",root,playerToReceive)
        triggerEvent("load:player",root,playerToReceive)
    else
        outputChatBox("B??dny Kod ("..responseData..")", playerToReceive)
--        outputChatBox("*B??dny Kod", client)
    end
    end
end

addCommandHandler("dajvipa",function(plr,cmd,cel,dni)
    if exports['sW-Admins']:getAdmin(plr,3) or exports['sW-Admins']:getAdmin(plr,4) then
    if not cel then outputChatBox("/dajvipa [gracz] [dni]",plr) return end
    if not dni then outputChatBox("/dajvipa [gracz] [dni]",plr) return end
    if not tonumber(dni) then outputChatBox("/dajvipa [gracz] [dni]",plr) return end
        local target=exports["sW-Core"]:findPlayer(plr,cel)
        if not target then
            outputChatBox("* Nie znaleziono podanego gracza.", plr, 255, 0, 0)
            return
        end
        setPremiumDay(target,dni)
        outputChatBox("Nadano konto premium na "..dni.." dni dla "..getPlayerName(target):gsub("#%x%x%x%x%x%x",""), plr)
        outputChatBox("Otrzymales konto premium na "..dni.." dni od "..getPlayerName(plr):gsub("#%x%x%x%x%x%x",""), target)
        triggerEvent("save:player",root,target)
        triggerEvent("load:player",root,target)
        setElementData(target,"player:premium",true)
    end
end)

addCommandHandler("losvip",function(plr)
    if exports['sW-Admins']:getAdmin(plr,3) then
    local los = getRandomPlayer()
    if not los then return end
        setPremiumDay(los,15)
        outputChatBox("Losowanie konta premium na 15 dni...", root)
        outputChatBox("Losowe konto PREMIUM otrzymuje gracz o nicku "..getPlayerName(los):gsub("#%x%x%x%x%x%x","").." na 15 dni!", root)
        outputChatBox("Otrzymales konto premium na 15 dni.", los)
        triggerEvent("save:player",root,los)
        triggerEvent("load:player",root,los)
        setElementData(los,"player:premium",true)
    end
end)

addCommandHandler("losvip2",function(plr)
    if exports['sW-Admins']:getAdmin(plr,3) then
    local los2 = getRandomPlayer()
    if not los2 then return end
        setPremiumDay(los2,30)
        outputChatBox("Losowanie konta premium na 30 dni...", root)
        outputChatBox("Losowe konto PREMIUM otrzymuje gracz o nicku "..getPlayerName(los2):gsub("#%x%x%x%x%x%x","").." na 30 dni!", root)
        outputChatBox("Otrzymales konto premium na 30 dni.", los2)
        triggerEvent("save:player",root,los2)
        triggerEvent("load:player",root,los2)
        setElementData(los2,"player:premium",true)
    end
end)

function RGBToHex(red, green, blue, alpha)
    if ( (red < 0 or red > 255 or green < 0 or green > 255 or blue < 0 or blue > 255) or (alpha and (alpha < 0 or alpha > 255) ) ) then
        return nil
    end
    if ( alpha ) then
        return string.format("#%.2X%.2X%.2X%.2X", red,green,blue,alpha)
    else
        return string.format("#%.2X%.2X%.2X", red,green,blue)
    end
end


Prosze o pomoc. Daje Repke oraz Piwko.

Postaw piwo autorowi tego posta
 

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


Szymczu

Programista bo tak






Wiek: 27
Na forum: 3575 dni
Posty: 194
Nick w MP: Szymczu

Piwa: 36

Respekt: 120
Respekt: 120

Ten kod jest odpowiedzialny tylko za aktywacje premium. Musisz przy logowaniu, po sprawdzeniu czy gracz ma to premium nadawa? elementDate.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-07-24, 11:01


Querex







Wiek: 32
Na forum: 4290 dni
Posty: 79
Nick w MP: Querex

Piwa: 41

Respekt: 50

Dodaj co? na podobe tego do skryptu wczytywania danych o graczu z bazy

Kod:


local queryA=string.format("SELECT * FROM Ev_Konta WHERE UID=%d AND premiumdate>NOW() LIMIT 1", getElementData(gracz,"UID"))
local resultA=exports['sW-db']:dbGet(queryA)
if (resultA) then
setElementData(gracz,"player:premium",true)
else
setElementData(gracz,"player:premium",false)
end


Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-07-30, 01:43


BoCzKu

Mapper & Lua






Wiek: 25
Na forum: 3606 dni
Posty: 87
Nick w MP: BoKu

Piwa: 331

Respekt: 135
Respekt: 135

Wraa, mam taki kod

    local queryA=string.format("SELECT * FROM Ev_Konta WHERE UID=%d AND premiumdate>NOW() LIMIT 1", getElementData(gracz,"UID")) 
local resultA=exports['sW-db']:dbGet(queryA) 
if (resultA) then 
setElementData(gracz,"player:premium",true) 
else 
setElementData(gracz,"player:premium",false) 
end 
    if getElementData(gracz,"player:premium") then
        local queryA=string.format("SELECT * FROM Ev_Konta WHERE UID=%d AND premiumdate>NOW() LIMIT 1", getElementData(gracz,"UID"))
        outputChatBox("#FFFF00[#A4A4A4Premium#FFFF00]#a4a4a4 Posiadasz konto ze statusem #FFFF00PREMIUM, #a4a4a4dzi?kujemy za wsparcie!", gracz, 255, 255, 255,true)
    end


Praktycznie on dzia?a, ale nie tak jak trzeba... Ka?dy kto wejdzie na serwer otrzymuje premium NIE kupuj?c jego.

Podpis
Postaw piwo autorowi tego posta
 

 
Tagi: nie :: zapisuje :: premium :: wejściu :: serwer
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA Odpowiedz do tematu

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