-
Na szóval. Van egy ilyen SetElementData-s rész:
setElementData( root, \"jobname1\", \"Uttisztito\",false)
ezzel nincs gond.
De amikor lekérném a getElementData-val,akkor baj van. A getElementData rész:
function marker1 ()
local sajt = getElementData(root, \"jobname1\")
if sajt == Uttisztito then
createMarker ( 1659, -1891, 12.5, \"cylinder\", 1.5, 255, 255, 0, 170 )
else
outputChatBox(\"Hazucc\")
end
end
addEventHandler ( \"onClientResourceStart\", getRootElement(), marker1 )
Itt mindig az Else utáni rész futtatja,bármit csinálok. Mi lehet a baj?
-
Az if elágazás így nézzen ki:
if sajt == \"Uttisztito\" then
-
Köszönöm,és még annyi lenne a kérdésem hogy azt hogyan lehetne megoldani hogy folyamatosan nézze,hogy uttisztito e az a \"Data\",és ha uttisztito,akkor tegye le a markert és ha nem akkor meg törölje. Lehetséges lenne?
-
Igen ElementData Change vagy egy sajat script OnclientRender
-
Az addEventHandlernél ne onClientResourceStart-ot írjál hanem onClientElementDataChange-et.
Ahhoz, hogy eltűnjön a markert egy változóban hozd létre mondjuk marker = ... és az eltűnéséhez pedig az else ágon belül egy destroyElement-el tültesd el azt.
pl.: destroyElement(marker)
-
function marker1 ()
local sajt = getElementData(root, \"jobname1\")
if sajt == \"Uttisztito\" then
utmark = createMarker ( 1659, -1891, 12.5, \"cylinder\", 1.5, 255, 255, 0, 170 )
outputChatBox(\"createm\")
else
destroyElement(utmark)
outputChatBox(\"eltunmark\")
end
end
addEventHandler(\"onClientElementDataChange\",getRootElement(),marker1)
Itt van,csak az a baj,hogy nem tűnik el a marker de a \"debug\" üzenetet kiirja hogy eltunmark. Akkor hogyan?
-
Nem törlöd a markert mikor belemennek, ez a baj. Rooton pedig felesleges ilyen elementdatákat állítani, mert az az összes elemre kihat(player, kocsi, stb..).
-
Figyelj. Kiprobáltam barátommal és semmi. Neki nem állitotta be ezt az elementdata-t client oldalon.
És ha másképp irom, pl localPlayer,vagy thePlayer,vagy player akkor semmit nem csinál.
Hogy tudom kiküszöbölni? Köszönöm előre is a válaszokat! :)
Dupla üzenet összevonva ekkor: 2015. március 11. - 14:55:30
Átírtam getLocalPlayer-re. De minden playerData változásával lefut az a function. Miért? Itt van ismét:
function marker1 (thePlayer)
local sajt = getElementData(getLocalPlayer(), \"jobname1\")
if sajt == \"Uttisztito\" then
utmark = createMarker ( 1659, -1891, 12.5, \"cylinder\", 1.5, 255, 255, 0, 170 )
outputChatBox(\"createm\")
else
destroyElement(utmark)
outputChatBox(\"eltunmark\")
end
end
addEventHandler(\"onClientElementDataChange\",getLocalPlayer(),marker1)
-
Hali,
Először is a Getlocalplayer() és a localPlayer ugyan az.
A thePlayer nem csoda, hogy nem működik hiszem a te evented első argumentuma az a string ami megváltozott.
A getElementData pedig nem stringet ad vissza szóval a sajtos feltételed nem működik.
function marker1 (thePlayer)
if thePlayer == \"Uttisztito\" then
utmark = createMarker ( 1659, -1891, 12.5, \"cylinder\", 1.5, 255, 255, 0, 170 )
outputChatBox(\"createm\")
else
destroyElement(utmark)
outputChatBox(\"eltunmark\")
end
end
addEventHandler(\"onClientElementDataChange\",getLocalPlayer(),marker1)
-
Ne rontsd el neki jobban. van az onclientelementdatachangenak egy argumentje mely megmondja h melyik adat valtozott. Azzal ellenorizd le a jobname1-et es jo lesz.majd kerd le az elementdatat es ellenorizd le a munkajat.
string dataName, string oldValue