GTA Közösség - A magyar GTA fórum

Multi Theft Auto (MTA) => MTA: Szerverfejlesztés => Archívum => A témát indította: Tarack - 2015. Március 11. - 13:48:40

Cím: Ezzel mi lehet a gond?
Írta: Tarack - 2015. Március 11. - 13:48:40
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?
Cím: Ezzel mi lehet a gond?
Írta: Robert - 2015. Március 11. - 13:57:00
Az if elágazás így nézzen ki:
 

if sajt == \"Uttisztito\" then
Cím: Ezzel mi lehet a gond?
Írta: Tarack - 2015. Március 11. - 14:06:09
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?
Cím: Ezzel mi lehet a gond?
Írta: tomaker - 2015. Március 11. - 14:13:33
Igen ElementData Change vagy egy sajat script OnclientRender
Cím: Ezzel mi lehet a gond?
Írta: Robert - 2015. Március 11. - 14:14:37
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)
Cím: Ezzel mi lehet a gond?
Írta: Tarack - 2015. Március 11. - 14:20:49
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?
Cím: Ezzel mi lehet a gond?
Írta: lackos888 - 2015. Március 11. - 14:30:50
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..).
Cím: Ezzel mi lehet a gond?
Írta: Tarack - 2015. Március 11. - 14:34:54
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)
Cím: Ezzel mi lehet a gond?
Írta: Feher - 2015. Március 11. - 22:00:24
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)
Cím: Ezzel mi lehet a gond?
Írta: lackos888 - 2015. Március 12. - 06:12:52
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