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

Wysłany: 2018-10-20, 13:33


kxkuba







Wiek: 38
Na forum: 3203 dni
Posty: 6

Piwa: 1

Respekt: 50

Witajcie :)
Ostatnio mam du?? rozmin? nad tym fragmentem kodu. Szuka?em w googlach itp. czyta?em na Wiki Ale nadal nie rozumiem :\
Kod ten (jest to tylko fragment) jest odpowiedzialny za Wczytanie do gracza inforamcji z bazy danych. Baza danych jest podpi?ta w innym kodzie kt?ry zosta? wyeksportowany.
Problem zaczyna si? ju? w pierwszej funkcjii

function loadPlayerData(element)
    if not getElementData(element'p:logged'then
        local uid getElementData(element'p:uid')
        if not uid then return end


Przysi?gam szuka?em wsz?dzie na temat getElementData Ale albo jestem jaki? u?omny albo nwm mo?e wolno ?api? ale nie czaj? jak dzia?a ta funkcja :P
Dalej w tej funkcji pojawia si? argument "element"?
I najwi?kszy problem sprawia mi co oznacza napis p:money , p:reputation
I szuka?em w dokumentacji LUA na temat tonumber Ale te? niezbyt czaj?.
Ciekawi mnie w jaki spos?b ten kod okre?la ?e akurat nam zalogowanemu przydzieli? wszystkie wytyczne z bazy danych. Z g?ry dzi?kuje :)

Ca?a cz??? kodu.


function loadPlayerData(element)
    if not getElementData(element'p:logged'then
        local uid getElementData(element'p:uid')
        if not uid then return end
    
        -- load player data
        local result exports['og-connect']:dbGet('select * from og_characters where uid=?'uid)
        if result and #result > 0 then
            setElementModel(elementresult[1]['skin'])
        
            setElementData(element'p:money'tonumber(result[1]['money']))
            setElementData(element'p:reputation'tonumber(result[1]['reputation']))
            setElementData(element'p:weave'tonumber(result[1]['weave']))
            setElementData(element'p:mandate'tonumber(result[1]['mandate']))
        
            setElementData(element'p:licenseA'tonumber(result[1]['licenseA']))
            setElementData(element'p:licenseB'tonumber(result[1]['licenseB']))
            setElementData(element'p:licenseC'tonumber(result[1]['licenseC']))
            setElementData(element'p:licenseD'tonumber(result[1]['licenseD']))
            setElementData(element'p:licenseL'tonumber(result[1]['licenseL']))
            setElementData(element'p:licenseH'tonumber(result[1]['licenseH']))
        
            setElementData(element'p:logged'true)
        
            outputDebugString('og-core/playerData.lua - Pomy?lnie wczytano dane gracza '.. getPlayerName(element) ..'.')
        end



Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-10-20, 14:05


Avenged

Młodszy Szkrypter






Wiek: 23
Na forum: 3510 dni
Posty: 654
Nick w MP: Avenged

Piwa: 1570

Respekt: 326,3
Respekt: 326,3Respekt: 326,3Respekt: 326,3

elementdata to jest tak jakby przechowywnie danych tymczasowo - to co w niej zapisujesz resetuje sie po opuszczeniu serwera. Mo?na tam zapisa? w sumie wszystko co tylko chcesz



function test()
    if getElementData(element"zdobyl"then 
          outputChatBox("Posiadasz juz zdobyty."element)
    else 
         setElementData(element"zdobyl"true)
         outputChatBox("Zdobywasz. "element)
    end 
end 


tutaj masz mniej wiecej przykladowe

ta nazwa pomiedzy ' ' przyk?adowo jak m?wisz 'p:reputation' to nadaje graczowi eldate reputacja, aby? m?g? pobiera? j? w r??nych miejscach (scoreboard/prace etc.) bez zb?dnych zapyta? do bazy danych za ka?dym razem. Nazwa? mo?esz to sobie jak tylko chcesz




Argument 'element' to jest element na kt?ry nadajesz ten 'zapis' i z kt?rego b?dziesz to p??niej pobiera?, przyk?adowo mo?esz to nada? na markery/colshape'y/pojazdy/graczy itd

[ Dodano: 2018-10-20, 14:09 ]
A co do pobierania danych tylko dla nas to masz tutaj zapytanie SQL:


 local uid getElementData(element'p:uid') -- pobieramy UID gracza
        if not uid then return end -- jesli nie ma uid to przerywamy funkcje
    
        local result exports['og-connect']:dbGet('select * from og_characters where uid=?'uid) -- where uidczyli tlumaczac na polskie pobieramy * (wszystko z tabeligdzie uid jest r?wne uid pobranego ze zmiennej


[ Dodano: 2018-10-20, 14:13 ]
Funkcja tonumber nie musi by? zawsze u?ywana przy kodzie lecz mo?na jej u?ywa? poniewa? czasami bez tonumber nam co? nie zadzia?a - zwraca to samo co bez tonumber. Przyk?adowo:


 local zmienna print(tonumber(zmienna)) -- zwroci nam '1' 



A tutaj:

 local zmienna =print(zmienna) -- zwroci nam tez '1' 


Podpis
LUA, JS, PHP



Zapraszam do skorzystania z moich usług: Klik

Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
kxkuba
Wysłany: 2018-10-21, 16:26


kxkuba







Wiek: 38
Na forum: 3203 dni
Posty: 6

Piwa: 1

Respekt: 50

"BarteQ03" napisał/a:

ta nazwa pomiedzy ' ' przyk?adowo jak m?wisz 'p:reputation' to nadaje graczowi eldate reputacja, aby? m?g? pobiera? j? w r??nych miejscach (scoreboard/prace etc.) bez zb?dnych zapyta? do bazy danych za ka?dym razem. Nazwa? mo?esz to sobie jak tylko chces


Nadal nie zatrybi?o.

function loadPlayerData(element)
    if not getElementData(element'p:logged'then
        local uid getElementData(element'p:uid')
        if not uid then return end


W tym przypadku czym jest p:logged zmienn? o jakiej? warto?ci czy jakim? argumentem kt?ry na dobr? spraw? mo?e nazywa? si? dowolnie?

    
        -- load player data
        local result exports['og-connect']:dbGet('select * from og_characters where uid=?'uid)
        if result and #result > 0 then
            setElementModel(elementresult[1]['skin'])
        
            setElementData(element'p:money'tonumber(result[1]['money']))
            setElementData(element'p:reputation'tonumber(result[1]['reputation']))
            setElementData(element'p:weave'tonumber(result[1]['weave']))
            setElementData(element'p:mandate'tonumber(result[1]['mandate']))
        
            setElementData(element'p:licenseA'tonumber(result[1]['licenseA']))
            setElementData(element'p:licenseB'tonumber(result[1]['licenseB']))
            setElementData(element'p:licenseC'tonumber(result[1]['licenseC']))
            setElementData(element'p:licenseD'tonumber(result[1]['licenseD']))
            setElementData(element'p:licenseL'tonumber(result[1]['licenseL']))
            setElementData(element'p:licenseH'tonumber(result[1]['licenseH']))
        
            setElementData(element'p:logged'true)
        
            outputDebugString('og-core/playerData.lua - Pomy?lnie wczytano dane gracza '.. getPlayerName(element) ..'.')
        end

Bo tutaj w tym miejscu zapisujemy do "element" warto?ci naszych danych z bazy danych ?eby by?o ju? to w programu i ?eby nie wysy?a? stale zapyta? do bazy danych.
Ale nasuwa mi si? pytanie czy w takim przypadku po zmianie warto?ci w bazie danych b?d? one aktualne? Bo zapytanie by?o wys?ane od razu jednorazowo na pocz?tku .
I jak np. wypisa? na ekran tak? warto?? z getElementData.
Z g?ry dzi?kuj? i leci piwerko :) Ju? du?o mi pomog?e?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-10-21, 22:42


PolskiSebek12

Programista






Wiek: 28
Na forum: 4346 dni
Posty: 343
Nick w MP: CrosRoad95

Piwa: 3883

Respekt: 288,8
Respekt: 288,8Respekt: 288,8Respekt: 288,8

Ostrzeżeń: 100%
przegl?daj kod og-rpg, przynajmniej b?dziesz wiedzia? jak NIE pisa? skrypt?w

Podpis
Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 2 piw(a):
TeeNekk, Zbigniewqq
Wysłany: 2018-10-23, 18:16


OchIAch







Wiek: 26
Na forum: 3114 dni
Posty: 144
Nick w MP: OchIAch

Piwa: 1311

Respekt: 105,3
Respekt: 105,3

Ostrzeżeń: 100%
Chce nawi?za? do 1 odpowiedzi, mo?e si? to przyda? kiedy? tw?rcy tematu. ElData NIE resetuje sie po wyj?ciu z serwera.

Podpis
Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-10-23, 18:20


Avenged

Młodszy Szkrypter






Wiek: 23
Na forum: 3510 dni
Posty: 654
Nick w MP: Avenged

Piwa: 1570

Respekt: 326,3
Respekt: 326,3Respekt: 326,3Respekt: 326,3

OchIAch, je?li gracz kt?remu nada?e? eldate wyjdzie z serwera to si? mu usunie ;)

Podpis
LUA, JS, PHP



Zapraszam do skorzystania z moich usług: Klik

Postaw piwo autorowi tego posta
 

 
Tagi: niezrozumiały :: kod :: og-rpg
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA » Niezrozumiały kod OG-RPG 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