Szerző Téma: Ezzel mi lehet a gond?  (Megtekintve 1543 alkalommal)

Nem elérhető Tarack

  • 177
    • Profil megtekintése
Ezzel mi lehet a gond?
« Dátum: 2015. március 11. - 13:48:40 »
0 Show voters
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?

Ezzel mi lehet a gond?
« Válasz #1 Dátum: 2015. március 11. - 13:57:00 »
0 Show voters
Az if elágazás így nézzen ki:
 

if sajt == \"Uttisztito\" then

Nem elérhető Tarack

  • 177
    • Profil megtekintése
Ezzel mi lehet a gond?
« Válasz #2 Dátum: 2015. március 11. - 14:06:09 »
0 Show voters
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?

Ezzel mi lehet a gond?
« Válasz #3 Dátum: 2015. március 11. - 14:13:33 »
0 Show voters
Igen ElementData Change vagy egy sajat script OnclientRender

Ezzel mi lehet a gond?
« Válasz #4 Dátum: 2015. március 11. - 14:14:37 »
0 Show voters
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)

Nem elérhető Tarack

  • 177
    • Profil megtekintése
Ezzel mi lehet a gond?
« Válasz #5 Dátum: 2015. március 11. - 14:20:49 »
0 Show voters
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?

Ezzel mi lehet a gond?
« Válasz #6 Dátum: 2015. március 11. - 14:30:50 »
0 Show voters
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..).

Nem elérhető Tarack

  • 177
    • Profil megtekintése
Ezzel mi lehet a gond?
« Válasz #7 Dátum: 2015. március 11. - 14:34:54 »
0 Show voters
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)
« Utoljára szerkesztve: 2015. március 11. - 14:55:30 írta Tarack »

Nem elérhető Feher

  • 123
    • Profil megtekintése
Ezzel mi lehet a gond?
« Válasz #8 Dátum: 2015. március 11. - 22:00:24 »
0 Show voters
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)

Ezzel mi lehet a gond?
« Válasz #9 Dátum: 2015. március 12. - 06:12:52 »
0 Show voters
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
« Utoljára szerkesztve: 2015. március 12. - 06:16:55 írta lackos888 »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal