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

Wysłany: 2017-06-25, 17:06


DjEnzo







Wiek: 27
Na forum: 4881 dni
Posty: 31
Nick w MP: DjEnzo



Respekt: 50

Witam ponownie!
Po odpaleniu resource z bazy danych pobierane s? markery i potem rozrzucane s? one po mapie

S:
function load_petrolstation()
    local query pobierzTabeleWynikow("SELECT * FROM "..MYSQL_PETROLS .."")
    for i,p in ipairs(query) do
        createPickup (p.pxp.pyp.pz316501)
        local text "PID: " .. p.pid .. "\nStacja: " .. p.pname .. "\nCena za litr: 4,81"
        triggerClientEvent(source"createPetrols"sourcetext,p.px,p.py,p.pz)
    end
end

addEventHandler("onResourceStart",root,load_petrolstation)


Chcia?bym aby nad pickupem wy?wietla? si? 3D Text tak jak w sampie. Do tego u?y? chc? dxdraw3dText

C:
local dxDraw3DText exports.text:dxDraw3DText(textxyzscalefontrgbmaxDistance)

function petrol3DText(text,x,y,z)
    dxDraw3DText(textxyz2"default"2550020) -- dtawing the text
end

addEvent("createPetrols",true)
addEventHandler("createPetrols",getRootElement(),petrol3DText)


meta.xml
<export function="dxDraw3DText" type="client"/>


Co robi? nie tak? Pickupy pojawiaj? si?, ale 3D Text nie jest wy?wietlany :/

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-06-25, 22:11


Jacob

Głupiomądry






Wiek: 28
Na forum: 5502 dni
Posty: 967
Nick w MP: Jacob

Piwa: 786

Respekt: 212,3
Respekt: 212,3Respekt: 212,3

W mecie nie potrzebna Ci ta linijka. Upewnij si?, ?e zas?b 'text' jest w??czony. Wy?wietla si? co? w DB3?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-06-26, 19:07


DjEnzo







Wiek: 27
Na forum: 4881 dni
Posty: 31
Nick w MP: DjEnzo



Respekt: 50

db3 nic nie wyrzuca, bo to po stronie klienta. Resource "text" jest w??czony.
M?j problem my?leniowy to
local dxDraw3DText exports.text:dxDraw3DText(textxyzscalefontrgbmaxDistance)

function petrol3DText(text,x,y,z)
    dxDraw3DText(textxyz2"default"2550020) -- dtawing the text
end

addEvent("createPetrols",true)
addEventHandler("createPetrols",getRootElement(),petrol3DText)


Ten kod wykonuje si? kiedy nie ma graczy na serwerze. Czy mog? do funkcji petrol3DText wrzuci? event onClientRender? Czy macie inny pomys? na rozwi?zanie tego?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-06-26, 22:09


Jacob

Głupiomądry






Wiek: 28
Na forum: 5502 dni
Posty: 967
Nick w MP: Jacob

Piwa: 786

Respekt: 212,3
Respekt: 212,3Respekt: 212,3

Wed?ug przyk?adu z wikipedi
https://wiki.multitheftauto.com/wiki/Resource:DxDraw3DText
funkcja nie potrzebuje zdarzenia renderuj?cego.

Spr?buj tak:
local dxDraw3DText exports.text:dxDraw3DText
function petrol3DText(text,x,y,z)
    dxDraw3DText(textxyz2"default"2550020) -- dtawing the text
end

addEvent("createPetrols",true)
addEventHandler("createPetrols",getRootElement(),petrol3DText)

Powinno ?miga?.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-06-26, 23:50


DjEnzo







Wiek: 27
Na forum: 4881 dni
Posty: 31
Nick w MP: DjEnzo



Respekt: 50

Wci?? nie. Spr?bowa?em wrzuci? funkcj? po stronie serwera ?eby db3 co? wyplu?o.
1)
local dxDraw3DText exports.text:dxDraw3DText


Kod:

ERROR: Loading script failed: test\core.lua:3: function arguments expected near 'function'


2)
local dxDraw3DText exports.text:dxDraw3DText()


Kod:

ERROR: test\core.lua:2: call: failed to call 'text:dxDraw3DText' [string "?"]


[ Dodano: 2017-06-27, 00:01 ]
// EDIT

Mi si? wydaje, ?e to tutaj jest problem.
triggerClientEvent(source"createPetrols"sourcetext,p.px,p.py,p.pz)


Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-06-27, 00:05


Jacob

Głupiomądry






Wiek: 28
Na forum: 5502 dni
Posty: 967
Nick w MP: Jacob

Piwa: 786

Respekt: 212,3
Respekt: 212,3Respekt: 212,3

Daj outputChatBox na text, x, y, z i sprawd? czy dane s? przesy?ane poprawnie.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-06-27, 00:08


DjEnzo







Wiek: 27
Na forum: 4881 dni
Posty: 31
Nick w MP: DjEnzo



Respekt: 50

Spr?bowa?em wrzuci? skrypt dxDraw3dText do mojego pliku c-side. I kiedy wywo?uj? funkcj? dxDraw3dText nic nie dzia?a.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-06-27, 00:14


Jacob

Głupiomądry






Wiek: 28
Na forum: 5502 dni
Posty: 967
Nick w MP: Jacob

Piwa: 786

Respekt: 212,3
Respekt: 212,3Respekt: 212,3

Daj co? takiego
 outputChatBox(tostring(dxDraw3DText(...))) 

I powiedz co wy?wietli.

Spr?buj sobie wykreowa? metod? w swoim dzia?aniu pr?b i b??d?w. U?ywaj wy?wietlania do czatu czy konsoli i analizuj dzia?anie kodu krok po kroku.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-06-27, 00:14


DjEnzo







Wiek: 27
Na forum: 4881 dni
Posty: 31
Nick w MP: DjEnzo



Respekt: 50

Plik C-Side przerobi?em tak
... skrypt dxDraw3dText ...

function petrol3DText(text,x,y,z)
    local petrolTexts dxDraw3DText(textxyz2"default"2550020)
    if petrolTexts==false then outputChatBox("Something gone wrong")
    else outputChatBox("Ok")
    end
end

addEvent("createPetrols",true)
addEventHandler("createPetrols",getRootElement(),petrol3DText)


Chat nic nie wy?wietla

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-06-27, 00:16


Jacob

Głupiomądry






Wiek: 28
Na forum: 5502 dni
Posty: 967
Nick w MP: Jacob

Piwa: 786

Respekt: 212,3
Respekt: 212,3Respekt: 212,3

W takim razie event nie jest w og?le wywo?ywany. Daj jakie? wy?wietlanie poza ifami byle jakie, ?eby sprawdzi? czy skrypt dochodzi do tej funkcji.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-06-27, 00:21


DjEnzo







Wiek: 27
Na forum: 4881 dni
Posty: 31
Nick w MP: DjEnzo



Respekt: 50

Chat nic nie wyrzuca.
C:
function petrol3DText(text,x,y,z)
    outputChatBox("Funkcja wywo?ana")
    outputChatBox(text..x..y..z) 
    local petrolTexts dxDraw3DText(textxyz2"default"2550020)
    if petrolTexts==false then outputChatBox("Something gone wrong")
    else outputChatBox("Ok")
    end
end

addEvent("createPetrols",true)
addEventHandler("createPetrols",getRootElement(),petrol3DText)

Moim zdaniem
S:
triggerClientEvent(source"createPetrols"sourcetext,p.px,p.py,p.pz)

Nie powinno by? wywo?ane w onResourceStart. Powinienem u?y? innego eventu, tylko nie wiemm jakiego :/

Bo logicznie na to patrz?c. Resource odpala si?, triggeruje event do gracza kt?rego nie ma i event si? onResourceStart si? ko?czy - potem do??czam ja i nic si? nie dzieje

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-06-27, 00:23


Jacob

Głupiomądry






Wiek: 28
Na forum: 5502 dni
Posty: 967
Nick w MP: Jacob

Piwa: 786

Respekt: 212,3
Respekt: 212,3Respekt: 212,3

Dobra, ?e te? wcze?niej tego nie zauwa?y?em. Pliki s-side s? wczytywane wcze?niej ni? c-side. Zr?b tak:
onClientResourceStart, triggerujesz funkcje po s-side kt?ra pobiera wyniki z MySQL i potem ponownie triggerujesz na c-side event createPetrols.

c-side > s-side > c-side
Ogarniasz?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-06-27, 00:32


DjEnzo







Wiek: 27
Na forum: 4881 dni
Posty: 31
Nick w MP: DjEnzo



Respekt: 50

Teraz dzia?a. Moje pytanie.
Czy to rozwi?zanie jest optymalne? Czy pickupy nie b?d? si? duplikowa??

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-06-27, 00:34


Jacob

Głupiomądry






Wiek: 28
Na forum: 5502 dni
Posty: 967
Nick w MP: Jacob

Piwa: 786

Respekt: 212,3
Respekt: 212,3Respekt: 212,3

Dlaczego mia?yby si? duplikowa?? Event onClientResourceStart jest wykonywany raz, przy starcie skryptu. Jedyne co bym zmieni? to nie triggerowalbym przy ka?dym rekordzie w p?tli tylko ca?? tabel? wynik?w bym przes?a? i wrzuci?bym w p?tle ju? po c-side.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-06-27, 00:39


DjEnzo







Wiek: 27
Na forum: 4881 dni
Posty: 31
Nick w MP: DjEnzo



Respekt: 50

Czyli to:
for i,p in ipairs(query) do
        --outputChatBox(string.format("%d %s"p.pidp.pname))
        createPickup (p.pxp.pyp.pz316501)
        local text "PID: " .. p.pid .. "\nStacja: " .. p.pname .. "\nCena za litr: Max!"
    end

Robi? po C-Side
a S-Side:
function load_petrolstation()
    local query pobierzTabeleWynikow("SELECT * FROM "..MYSQL_PETROLS .."")
    triggerClientEvent(source"createPetrols"sourcequery)
end


Czy mog? w funkcji dxDraw3dText manipulowa? kolorem?
Co? w stylu
"{#ffffff}PID: {#ff0000}" .. p.pid .. "\nStacja: " .. p.pname .. "\nCena za litr: Max!" etc.

I na?o?y? na to np. shadow?

Postaw piwo autorowi tego posta
 

 
Tagi: dxdraw3dtext
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