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
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 uid? czyli tlumaczac na polskie pobieramy * (wszystko z tabeli) gdzie 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 = 1
print(tonumber(zmienna)) -- zwroci nam '1'
A tutaj:
local zmienna =1
print(zmienna) -- zwroci nam tez '1'
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(element, result[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?
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