Frakció panel: kattintható guiLabel a tagoknál

Indította Hasirama, 2016. május 22. - 13:16:52

Előző téma - Következő téma

Hasirama

Hali!
Egy egyedi kivitelezésű frakció panelt szeretnék megalkotni, viszont egy ponton megakadtam.
Az megvan, hogy kilistázza egymás alá a tagok neveit egy guiLabel-el. Viszont azt nem tudom megoldani, hogy minden egyes név labeljének egy egyedi ID-t adni, amivel meg lehessen különböztetni a többitől, hogy ha majd rákattintsunk, akkor azt érzékelje. Mivel eddig csak úgy működik, hogy a legutolsó név labeljét érzékeli, a többi mintha ott se lenne.
Jelenleg ebben a formájában semmit sem érzékel, ha rákattintok, itt ronthatok el valamit:
Valamint tudom, hogy nem a tagokat írja ki, hanem az online playereket, ez csak átmeneti dolog!
 
        
local player_cache = {}
local taglista = {}
local elem = 0
 
player_cache = getElementsByType(\"player\")
for k,v in ipairs(player_cache) do
   elem = elem + 1
   local nev = getPlayerName(v)
 
   taglista[elem] = guiCreateLabel(400,60 + elem * (30) ,700,50,nev,false,bg)
         guiSetFont(taglista[elem], myFont)
 

end

 
Valamint itt van, mikor rákattintok az adott labelre:
Itt meg csak egy kettő dolog van beleírva, hogy tesztelhessem, azokat se nagyon kell nézni:D
 
elseif (source == taglista[elem]) then
   outputChatBox(tostring(elem))
   guiLabelSetColor ( taglista[elem], 255, 0, 0 )
   local neve = guiGetText ( taglista[elem] )
   local jatekos = getPlayerFromName (neve)
   outputChatBox(tostring(getElementData(jatekos, \"CharSzomj\"))..\" -os az éhsége \"..getPlayerName(jatekos)..\" -nak/-nek\")
else
   return false --its not one of our gomb...
end

Robika1

Szia.
Szerintem itt lesz a baj:
 
elseif (source == taglista[elem]) then

 
Az elem változóba az utolsó elem = elem + 1 által létrehozott szám van, és azért érzékeli csak az utolsót (ha nem így van, javítsatok ki).
Próbálj meg https://wiki.multitheftauto.com/wiki/GuiCreateGridList\" rel=\"external nofollow\">guiCreateGridListtel listát csinálni, azzal 1000x könnyebb + kezelhetőbb mint így. De amúgy a labeles cucc jobban néz ki, gondolom azért csinálod így :D
Robika1

Hasirama

Igazad lehet. Majd megpróbálom más módon lekérni, hogy melyikre kattintott. Az amit írtál, igaz hogy jó, de szerintem egy egyedi designen igen rosszul fest, ezért akartam így megoldani. De gondoltam rá, hofy inkább elvetem az ötletet, és a könnyebvik utat választom. Köszi a választ!

Vegance Roleplay

Azért érzékeli az utolsót, mivel a for loopban létrehozott változó az utolsó elemig tart, jelen esetben elem=elem+1-ig, tehát mindenképpen az elem legutolsó értéket fogja érzékelni.
Csinálj egy slot rendszert, tömb elembe hozza létre a frakcióban tartózkodó játékosokat, és máris ki tudsz emelni a tömb-ből magadnak elemet.

Hasirama

Tudnál egy kicsit ezen pontosítani, ha megkérhetlek? Mert ennyire nem vagyok még belemerülve.
De így is köszönöm!

Vegance Roleplay

#5
Melyik részét magyarázzam el részletesebben?


Idézetet írta: Hasirama date=1464623101\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"60516\" data-ipsquote-contentclass=\"forums_TopicTudnál egy kicsit ezen pontosítani, ha megkérhetlek? Mert ennyire nem vagyok még belemerülve.
De így is köszönöm!
 

local id = { }
function slotf()
local slot = nil
for k = 1, 200 do
if (id[k]==nil) then
   slot = k
   break
end
end
end

Hasirama

Úgy az egészet nem értettem, de ahogy látom, megírtad nekem, köszönöm!
Annyi még, ha nem nagy gond, akkor a taglista[elem] helyett írom azt, hogy id[slot], igaz? Vagy akkor rosszul értelmeztem?

Vegance Roleplay

Idézetet írta: Hasirama date=1464623101\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"60516\" data-ipsquote-contentclass=\"forums_TopicTudnál egy kicsit ezen pontosítani, ha megkérhetlek? Mert ennyire nem vagyok még belemerülve.
De így is köszönöm!
 
Igen, de ez csak az alapja. Egyébként mysql dbPool-al is meglehet csinálni. Amint látom még kezdő szinten csinálod :D

Hasirama

Hát igen, sajnos. Köszönöm a segítséget! Sajnos kipróbálni csak hétvégén tudom.

Vegance Roleplay

Idézetet írta: Hasirama date=1464681669\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"60516\" data-ipsquote-contentclass=\"forums_TopicHát igen, sajnos. Köszönöm a segítséget! Sajnos kipróbálni csak hétvégén tudom.
 
Rendben, utána szólj, hogy mi a helyzet nyugodtan  ^-^

Hasirama

Sajnos nem igazán akar összejönni. Megpróbáltam beépíteni az eddigibe, viszont nem reagál semmire se. Csak a nevet írta ki, de jelenleg azt nem tudom leellenőrizni, hogy több nevet is kiír-e. A kattintásra viszont nem reagál.