Ja wohl, doszedłem do tego eksperymentalnie. Niemniej dzięki wielkie za wsparcie!
ED:
Mam sobie taką konstrukcję skryptu:
local sec = item:section_name()
local kategoria
tablica = {
["kategoria1"] = {"item1", "item2"} -- i tak dalej
["kategoria2"] = {"item3", "item4"} -- i tak dalej
-- i tak dalej
}
Kategorii jest kilkanaście, itemów łącznie kilkaset. Potem leci tak:
for k, v in pairs(tablica) do
for i = 1, 50 do
if v[i] == sec then
kategoria = k
end
end
end
To elegancko działa (tt44, dzięki jeszcze raz za pierwotny pomysł!), wybiera mi kategorię, jak na wejściu funkcji wrzucę itema.
Mam dwa pytania:
1)
Jak to zrobić, żeby ten for nie leciał 50 razy bez potrzeby (bo niektóre kategorie mają po 3 itemy, a inne po kilkadziesiąt), tylko tyle razy, ile itemów jest w danej kategorii? Kiedy zamiast 50 wpisuję #k, to nie działa. (No niemożliwe, LUA nie rozumie skrótów myślowych?
) Macie pomysł, jak to elegancko skodzić?
2)
Itemy w kategoriach się nie powtarzają, w sensie każdy item należy do tylko jednej kategorii. Jednak mam jeden wyjątek, jeden item, który dobrze by było, żeby należał do dwóch kategorii. Oczywiście wpisanie go dwa razy, na przykład do kategoria3 i kategoria4, powoduje, że poprawne warunki się nie spełniają. Jakoś nie mogę wymyślić, jak to obejść. Macie pomysł?