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

Wysłany: 2020-04-16, 12:15


AsaXx







Wiek: 21
Na forum: 2553 dni
Posty: 74
Nick w MP: AsaXx

Piwa: 413

Respekt: 50

Cze??. Postanowi?em se zrobi? panel logowania ( z postaciami ), ale nie wiem jak pobiera? dane z mysql, czy gracz ma ju? posta?, a jak tak, to ile. W sensie wiem, w serwerze, ale nie wiem jak zrobi?, ?eby to sprawdza? po stronie clienta ( czyli, ile jest postaci. Np. je?li jedna to pokazuje si? jakie? okienko ). Wiem tyle, ?e triggerem. Ale nie wiem co ?le robi?.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-04-16, 14:30


kamison

Przyszły programista .lua






Wiek: 25
Na forum: 3443 dni
Posty: 391
Nick w MP: kamison

Piwa: 599

Respekt: 205,3
Respekt: 205,3Respekt: 205,3

Podaj chocia? jaki? kod/??czenie z baz? danych(zmienne exportowane)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-04-16, 17:48


AsaXx







Wiek: 21
Na forum: 2553 dni
Posty: 74
Nick w MP: AsaXx

Piwa: 413

Respekt: 50

Serwer:

local maks_ilosc_postaci = 999 -- Maksymalna ilosc kont do rejestracji
    addEvent("logging:newPostac", true)
    addEventHandler("logging:newPostac", resourceRoot, function(imie,nazwisko,wiek,waga,skin)
        local result=exports["pystories-db"]:dbGet("SELECT * FROM royal_postacie WHERE register_serial=?", getPlayerSerial(client))
        if result and #result >= maks_ilosc_postaci then
            triggerClientEvent(client, "logging:result", resourceRoot, false, "Osi?…gn?…?‚e?› juĹĽ limit kont.","blad")
        return end
        local result=exports["pystories-db"]:dbGet("SELECT * FROM royal_postacie WHERE imie=? AND nazwisko=?", imie, nazwisko)
        if result and #result > 0 then
            triggerClientEvent(client, "logging:result", resourceRoot, false, "Podane imi?™ i nazwisko zosta?‚o juĹĽ zaj?™te.","blad")
        else
            local query=exports["pystories-db"]:dbSet("INSERT INTO royal_postacie (imie,nazwisko,wiek,waga,register_serial,skin) VALUES (?,?,?,?,?,?)",imie,nazwisko,wiek,waga,getPlayerSerial(client),skin)
            if query then
                triggerClientEvent(client, "logging:result", resourceRoot, false, "Stworzy?‚e?› posta?‡ pomy?›lnie!","git")
                --setElementData(client, "player:logged", true)
            end
        end
    end)

addEvent("logging:spr", true)
addEventHandler("logging:spr", root, function()
    local result=exports["pystories-db"]:dbGet("SELECT * FROM royal_postacie WHERE register_serial=?", getPlayerSerial(client))
end)



Client:

local sw,sh = guiGetScreenSize()
local scale = 1280 / sw

local sprr = triggerServerEvent("logging:spr", root)

function renderZoneBox()
    if sppr == 2 then 
        dxDrawRectangle(sx*0/1280, sy*0/720, sx*1280/1280, sy*1720/720, tocolor(12, 12, 12, 230))
        dxDrawImage(sx*50/1280, sy*150/720, sx*350/1280, sy*350/720, "bgl.png")
        dxDrawImage(sx*50/1280, sy*505/720, sx*350/1280, sy*35/720, "bgl.png")
        dxDrawText("Imi?™:", 85/scale, -50/scale, 950/scale, 450/scale, tocolor(188, 200, 204, a), 0.58, font4, "left", "center", false, false, false, false, false)
        dxDrawText("Nazwisko:", 85/scale, 50/scale, 950/scale, 450/scale, tocolor(188, 200, 204, a), 0.57, font4, "left", "center", false, false, false, false, false)
        dxDrawText("Wiek:", 85/scale, 160/scale, 950/scale, 450/scale, tocolor(188, 200, 204, a), 0.57, font4, "left", "center", false, false, false, false, false)
        dxDrawText("Waga:", 85/scale, 260/scale, 950/scale, 450/scale, tocolor(188, 200, 204, a), 0.57, font4, "left", "center", false, false, false, false, false)
        dxDrawText("Skin:", 85/scale, 345/scale, 950/scale, 450/scale, tocolor(188, 200, 204, a), 0.57, font4, "left", "center", false, false, false, false, false)
        if not isMouseIn(sx*50/1280, sy*505/720, sx*350/1280, sy*35/720) then
            dxDrawText("Za?‚óż posta?‡", 165/scale, 593/scale, 950/scale, 450/scale, tocolor(188, 200, 204, a), 0.57, font4, "left", "center", false, false, false, false, false)
        else 
            dxDrawText("Za?‚óż posta?‡", 164/scale, 594/scale, 950/scale, 450/scale, tocolor(188, 200, 204, a), 0.59, font4, "left", "center", false, false, false, false, false)
        end
    elseif not sprr then 
        dxDrawText("Za?‚óż posta?‡", 164/scale, 594/scale, 950/scale, 450/scale, tocolor(188, 200, 204, a), 0.59, font4, "left", "center", false, false, false, false, false)
    elseif sprr == 1 then 
        dxDrawRectangle(sx*0/1280, sy*0/720, sx*1000/1280, sy*1720/720, tocolor(12, 12, 12, 230))
    end
    local x,y=getPointFromDistanceRotation(1764.61218, 1470.85852, dist, angler)
    setCameraMatrix(x,y,75.72,1623.69, 385.66, 0)
    angler=(angler+0.009)
end


Struktura ,,royal-postacie":

https://i.imgur.com/gAdHMr3.png

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-04-16, 18:14


kamison

Przyszły programista .lua






Wiek: 25
Na forum: 3443 dni
Posty: 391
Nick w MP: kamison

Piwa: 599

Respekt: 205,3
Respekt: 205,3Respekt: 205,3

Za???my, ?e najpierw gracz musi si? zalogowa? na konto(tak?) To po zalogowaniu si? sprawdzasz ile gracz ma postaci o ile ma i triggerujesz klienta z danymi o postaciach i wywo?ujesz render.

Np.


--str klienta
l_edit = guiCreateEdit(...)
r_edit = guiCreateEdit(...)
btn = guiCreateButton(...)
    addEventHandler ("onClientGUIClick",btn,function()
        triggerServerEvent("zaloguj_gracza",localPlayer,guiGetText(l_edit),r_edit)
    end)
    
-- str serwera
addEvent ("zaloguj_gracza",true)
addEventHandler ("zaloguj_gracza",resourceRoot,function(login,haslo)
    local result = ...("SELECT * FROM twoja_tabela_kont WHERE login=?",login)
    if result and result[1] and result[1].login == login and result[1].haslo == haslo then
        --logujesz gracza i triggerujesz z danymi o postaciach
        local result_postacie = ...("SELECT * FROM twoja_tabela_postaci WHERE przypisany_login=?",login)
        
        if result_postacie and result_postacie[1] then
            --trigger z danymi
            triggerClientEvent(client,"zrob_gui_postaci",client,result_postacie)
        end
    end
end)


-- znowu strona klienta
addEvent ("zrob_gui_postaci",true)
addEventHandler ("zrob_gui_postaci",resourceRoot,function(postacie)
    -- pod zmienna postacie sa dane w tabeli z postaciami przypisanymi do danego loginu
    local function renderZoneBox()
        --zrob sobie dxDrawy z danymi, tablice mozesz rozbic w petli i umieszczac dane
        dxDrawText(...)
    end
    addEventHandler ("onClientRender",root,renderZoneBox)
end)


[ Dodano: 2020-04-16, 18:15 ]
To jest tylko przyk?ad, nie kopiuj go bo nie zadzia?a, mam nadziej?, ?e Cie jako? nakieruje.

Postaw piwo autorowi tego posta
 

 
Tagi: robię :: źle?
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA » co robię źle? 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