Az általam elképzelt verzió a következő lenne:
Van egy táblád, amiben vannak a fák lerakva, vagy akár csak egy fa pozíciót adsz meg és valami értéket adogatsz x vagy y-hoz, ezzel dobja mindig odébb a kövi fát a kívánt számig (for ciklussal az egész). A fáknak van egy azonosítója ami alapján eldönti a kattintásnál, hogy melyiket is nézed épp (eddig ezt megcsináltad, ha jól értem, csak más megoldással). Az általad vázolt dolog pedig csupán annyi, hogy if ágakkal játszok. Tehát a guinál léterhezol egy pl:
if activetab = \"exit\" then ... -- ide beírod alá szépen, hogy mit akarsz, ha ez az \"ablak\" van megnyitva.
Sort, szépen megcsinálod, hogy mit akarsz belé, és a kattintásnál pedig megadod, hogy milyen poziciónál lépjen érvénybe ez a gomb. Én a gui-t elfelejteném, hiszen már semmivel se több rectangle-t odarakni, viszont legalább kinéz valahogy. Ha pedig rectangle-t csinálsz, akkor renderbe írod az általam előbb leírt elágazást. De mint mindenhol itt is többfajta megoldás létezik. :thumbsup:
Tessék itt egy példa kattintás egy dobozra.
function clickBox(button, state, _, _, _, _, _, element)
if button == \"right\" and state == \"down\" then
if element and isElement(element) and getElementData(element, \"IllegalWeapon->Box->isBox\") or false then
if tonumber(getElementData(localPlayer, \"Char->organization\")) and enabledFactions[tonumber(getElementData(localPlayer, \"Char->organization\"))] then
local x,y,z = getElementPosition(localPlayer)
local tx,ty,tz = getElementPosition(element)
if getDistanceBetweenPoints3D(x,y,z , tx,ty,tz) <= 3 then
triggerServerEvent(\"IllegalWeapon->PickBox\", localPlayer, localPlayer, getElementData(element, \"IllegalWeapon->Box->ID\")) -- itt hívja meg azt amit szeretnénk, hogy történjen mikor a dobozra nyomunk és minden teljesül
clickedElement = element
end
end
end
end
end
addEventHandler(\"onClientClick\", root, clickBox)
Egybetudod vonni, egyszerűen meghívod a functiont a nevével és mögé raksz egy ()-t tehát pl:
function gipszjakab ()
...
end
addCommanHandler(...)
function idehivommegmostagipszet ()
gipszjakab ()
end
clickedElement = element
Most komoly, hogy ilyet is lehet, és ez működik is? Nem tudom most kipróbálni, de ezer hála, ha igen, mivel ezt én nem tudtam. Ezzel meg tudnám oldani a problémámat.
Persze! :) A script elejére ezt be kell még dobni azért:
local clickedElement = false