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

Wysłany: 2020-09-01, 21:34


Hokan







Wiek: 24
Na forum: 2978 dni
Posty: 15
Nick w MP: Hokan



Respekt: 50

Witam potrzebuj? pomocy przy zmianie skryptu odpowiadaj?cego za kupno premium na serwerze. Mam serwer na serverprojekt oraz mam gotowy skrypt na gui z zakupem premium. Nazwy, numery oraz tre?? sms mam zmienione, lecz pojawia si? najwa?niejsza kwestia zmiany adresu na adres wykonawczy server projekt zawieraj?cym api i nie mam zielone poj?cia jak si? za to zabra?. Prosz? o pomoc.

Domy?lam si? ?e chodzi o zmian? tych linijek:

addEvent("skPremium"true)
addEventHandler("skPremium"root, function(koddni)
    local spr "http://microsms.pl/api/v2/multi.php?userid=2176&code="..kod.."&serviceid=2938"
    fetchRemote(sprwyk""falseclientdni)
end)


Client:


function isEventHandlerAdded(sEventName,pElementAttachedTo,func)
    if type(sEventName)=='string' and isElement(pElementAttachedTo) and type(func)=='function' then local aAttachedFunctions getEventHandlers(sEventName,pElementAttachedTo)
    if type(aAttachedFunctions)=='table' and #aAttachedFunctions > 0 then for i,v in ipairs(aAttachedFunctions) do if v==func then return true end end end
    end return false
end

ww,hh 19201080
www,hhh guiGetScreenSize()
wnhn = (www/ww), (hhh/hh)

local screenWscreenH guiGetScreenSize()
local sxsy guiGetScreenSize()

function mysz(psx,psy,pssx,pssy,abx,aby)
    if not isCursorShowing() then return end
    cx,cy=getCursorPosition()
    cx,cy=cx*sx,cy*sy
    if cx >= psx and cx <= psx+pssx and cy >= psy and cy <= psy+pssy then
        return true,cx,cy
    else
        return false
    end
end
local dxfont0_droidsans dxCreateFont("font.ttf"12)
local dxfont1_droidsans dxCreateFont("font.ttf"14)
local dxfont2_droidsans dxCreateFont("font.ttf"15)
local gp = {}

editbox guiCreateEdit(0.430.490.140.04""true)
komboboks guiCreateComboBox(0.440.340.120.13""true)
guiComboBoxAddItem(komboboks"1 dzie?")
guiComboBoxAddItem(komboboks"3 dni")
guiComboBoxAddItem(komboboks"7 dni")
guiComboBoxAddItem(komboboks"14 dni")
guiComboBoxAddItem(komboboks"30 dni")
guiComboBoxAddItem(komboboks"60 dni")
guiSetVisible(komboboks,false)
guiSetVisible(editbox,false)
local pp false

function guiPremka()
                local a interpolateBetween(0,0,255,255,0,255,((getTickCount()-tick)/3350),"Linear") 
                        local a2 interpolateBetween(0,0,141,141,0,141,((getTickCount()-tick)/3350),"Linear") 
        local wybrane guiComboBoxGetSelected(komboboks)
        if not wybrane then return end
        local tekst guiComboBoxGetItemText(komboboks,wybrane)
        if tekst == "1 dzie?" then
            txt="Tre?? sms: AA.SP\nNumer: 7136\nKoszt: 1,23 z?\nPoni?ej wpisz otrzymany w sms kod:"
        elseif tekst == "3 dni" then
            txt="Tre?? sms: AA.SP\nNumer: 7355\nKoszt: 3,69 z?\nPoni?ej wpisz otrzymany w sms kod:"
        elseif tekst == "7 dni" then
            txt="Tre?? sms: AA.SP\nNumer: 7555\nKoszt: 6,15 z?\nPoni?ej wpisz otrzymany w sms kod:"
        elseif tekst == "14 dni" then
            txt="Tre?? sms: AA.SP\nNumer: 7936\nKoszt: 11,07 z?\nPoni?ej wpisz otrzymany w sms kod:"
        elseif tekst == "30 dni" then
            txt="Tre?? sms: AA.SP\nNumer: 91955\nKoszt: 23,37 z?\nPoni?ej wpisz otrzymany w sms kod:"
        elseif tekst == "60 dni" then
            txt="Tre?? sms: AA.SP\nNumer: 92555\nKoszt: 30,75 z?\nPoni?ej wpisz otrzymany w sms kod:"
        else
            txt="Tre?? sms: --\nNumer: --\nKoszt: --\nPoni?ej wpisz otrzymany w sms kod:"
        end
        exports["buttons"]:createCustomWindow("Premium",screenW 0.3755screenH 0.2833screenW 0.2495screenH 0.4333tocolor(100a), false)
        exports["buttons"]:createCustomButton("Zakup",screenW 0.4307screenH 0.5750screenW 0.1396screenH 0.0583tocolor(0102204a), false)
        exports["buttons"]:createCustomButton("X",screenW 0.5984screenH 0.6685screenW 0.0214screenH 0.0389tocolor(0102204a2), false)
        dxDrawText(txt, (screenW 0.4385) + 1, (screenH 0.3648) + 1, (screenW 0.5615) + 1, (screenH 0.4954) + 1tocolor(000a), 1*wndxfont1_droidsans"center""center"falsefalsefalsefalsefalse)
        dxDrawText(txtscreenW 0.4385screenH 0.3648screenW 0.5615screenH 0.4954tocolor(255255255a), 1*wndxfont1_droidsans"center""center"falsefalsefalsefalsefalse)
end

addEventHandler("onClientClick"root, function(bs)
    if ~= "state" and ~= "down" then return end
    if mysz(screenW 0.4307screenH 0.5750screenW 0.1396screenH 0.0583) and pp == true then
        if guiGetText(editbox) == "" then return end
        local dni 0
        local wybrane guiComboBoxGetSelected(komboboks)
        if not wybrane then return end
        local tekst guiComboBoxGetItemText(komboboks,wybrane)
        if tekst == "1 dzie?" then
            dni 1
        elseif tekst == "3 dni" then
            dni 3
        elseif tekst == "7 dni" then
            dni 7
        elseif tekst == "14 dni" then
            dni 14
        elseif tekst == "30 dni" then
            dni 30
        elseif tekst == "60 dni" then
            dni 60
        else
            dni 0
        end
        if dni == 0 then
            outputChatBox("Nie wybra?e? ilo?ci dni, wybierz i kliknij ponownie.")
            return
        end
        triggerServerEvent("skPremium"localPlayerguiGetText(editbox), dni)
    elseif mysz(screenW 0.5984screenH 0.6685screenW 0.0214screenH 0.0389) and pp == true then
        pp false
guiSetVisible(komboboks,false)
guiSetVisible(editbox,false)
        showCursor(false)
        setElementFrozen(localPlayer,false)
        removeEventHandler("onClientPreRender"rootguiPremka)
    end
end)

addCommandHandler("premium", function()
tick getTickCount()
--if getPlayerSerial(localPlayer) == "E31AEC4C62F98B8C0EA93CFB5A469042" or getPlayerSerial(localPlayer) == "AC3E4952A412CBDDDB0DA7021C88D484" then
    if not pp then
        pp true
guiSetVisible(komboboks,true)
guiSetVisible(editbox,true)
        showCursor(truefalse)
        setElementFrozen(localPlayer,true)
        addEventHandler("onClientPreRender"rootguiPremka)
    else
        pp false
guiSetVisible(komboboks,false)
guiSetVisible(editbox,false)
        showCursor(false)
        setElementFrozen(localPlayer,false)
        removeEventHandler("onClientPreRender"rootguiPremka)
    --    end
--    end
end
end)


function roundedRectangle(xywhcolor)
  dxDrawRectangle(xywhcolorfalse)
  dxDrawRectangle(2141colorfalse)
  dxDrawRectangle(2h41colorfalse)
  dxDrawRectangle(1214colorfalse)
  dxDrawRectangle(w214colorfalse)
end



Server:

function sprawdzIloscDni(gracz)
    local spr exports['pystories-db']:dbGet("SELECT * FROM pystories_users WHERE id=? AND premiumdate>NOW() LIMIT 1"getElementData(gracz,"player:sid"))
    if (spr and #spr > 0) then
        return spr[1].premiumdate
    end
    return false
end

function ustawIloscDni(graczdni)
    if sprawdzIloscDni(graczthen
    local wyk exports['pystories-db']:dbSet(string.format("UPDATE pystories_users SET premiumdate = DATE(premiumdate) + INTERVAL %d DAY WHERE id=%d",dni,getElementData(gracz,"player:sid")))
    return end
    local wyk exports['pystories-db']:dbSet(string.format("UPDATE pystories_users SET premiumdate = DATE(curdate()) + INTERVAL %d DAY WHERE id=%d",dni,getElementData(gracz,"player:sid")))
end

addEvent("skPremium"true)
addEventHandler("skPremium"root, function(koddni)
    local spr "http://microsms.pl/api/v2/multi.php?userid=2176&code="..kod.."&serviceid=2938"
    fetchRemote(sprwyk""falseclientdni)
end)

function wyk(responseDataerrnoplayerToReceiveamount)
    if errno == 0 then
    if string.find(responseData"kod"then
    amount nil
        if string.find(responseData'"number":"7136"'then
            amount 1
        elseif string.find(responseData'"number":"7355"'then
            amount 3
        elseif string.find(responseData'"number":"7555"'then
            amount 7
        elseif string.find(responseData'"number":7936"'then
            amount 14
        elseif string.find(responseData'"number":"91955"'then
            amount 30
        elseif string.find(responseData'"number":"92555"'then
            amount 60
        end
        if not amount then return end
        outputChatBox("Zakupi?e? premium na "..amount.." dni."playerToReceive)
        setElementData(playerToReceive"player:premium"true)
        ustawIloscDni(playerToReceiveamount)
        setPlayerNametagColor(playerToReceive2552000)
        triggerEvent("save:player",root,playerToReceive)
        triggerEvent("load:player",root,playerToReceive)
    else
        outputChatBox("Podany kod jest nieprawid?owy. ("..responseData..")"playerToReceive)
    end
end
end

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


[ Dodano: 2020-09-01, 21:45 ]
Poprawi?em skrypt lecz prosz? o sprawdzenie czy dobrze go poprawi?em.

w Client doda?em warto?? netto kt?ra potrzebna jest przy wysy?aniu do serverprojekt:

addEventHandler("onClientClick"root, function(bs)
    if ~= "state" and ~= "down" then return end
    if mysz(screenW 0.4307screenH 0.5750screenW 0.1396screenH 0.0583) and pp == true then
        if guiGetText(editbox) == "" then return end
        local dni 0
        local netto 0
        local wybrane guiComboBoxGetSelected(komboboks)
        if not wybrane then return end
        local tekst guiComboBoxGetItemText(komboboks,wybrane)
        if tekst == "1 dzie?" then
            dni 1
            netto 1
        elseif tekst == "3 dni" then
            dni 3
            netto 3
        elseif tekst == "7 dni" then
            dni 7
            netto 5
        elseif tekst == "14 dni" then
            dni 14
            netto 9
        elseif tekst == "30 dni" then
            dni 30
            netto 19
        elseif tekst == "60 dni" then
            dni 60
            netto 25
        else
            dni 0
        end
        if dni == 0 then
            outputChatBox("Nie wybra?e? ilo?ci dni, wybierz i kliknij ponownie.")
            return
        end
        triggerServerEvent("skPremium"localPlayerguiGetText(editbox), dninetto)


A po strone servera doda?em taki adres:

addEvent("skPremium"true)
addEventHandler("skPremium"root, function(koddninetto)
    local spr "https://admin.serverproject.eu/api/smsapi.php?key=TW2Gb9M5uICLCH84rZr19FoDg&amount="..netto.."&code="..kod
    fetchRemote(sprwyk""falseclientdni)
end)


Chyba wszystko zrobi?em dobrze lecz nie jestem pewny prosi?bym o sprawdzenie Stawiam Piwko :piwo:

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-09-01, 22:11


Wilq







Wiek: 24
Na forum: 4428 dni
Posty: 3410

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

Na pierwszy rzut oka kod wygl?da okej. Po prostu go przetestuj generuj?c testowy kod premium w panelu SP. Wtedy zerknij na b??dy /debugscript 3 i je?li jakie? si? pojawi?, wklej je tutaj.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-09-01, 22:58


Hokan







Wiek: 24
Na forum: 2978 dni
Posty: 15
Nick w MP: Hokan



Respekt: 50

Juz sprawdzi?em, b??d jest jeden Acces Denied dal fetchRemote, wiem juz ze musze dodac ten zas?w do admin w acl.xml jako: <object name="resource.nazwa"></object>
Aktualnie pisze autostart wszystkich zasob?w aby moc spokojnie wy??czyc serwer i zmienic to gdy? zmiana acl.xml na w??czonym serwerze i refresh nic nie daje. Dzieki za pomoc, mo?e jeszcze si? przyda

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