Forum Stalker.pl • Zobacz temat - [LUA] ammo

[LUA] ammo

Regulamin forum
Dział "Tworzenie Modyfikacji" służy do zadawania pytań odnośnie tworzenia modyfikacji, edytowania plików gry, oraz pisania tzw. tutoriali, czyli poradników odnośnie modyfikowania gry.
Nie zadajemy tutaj pytań odnośnie modyfikacji gotowych (nie dyskutujemy o nich!), prócz prób ich połączenia etc.


Przy cytowaniu plików *.LTX stosować tag [SYNTAX="ini"], przy cytowaniu plików *.script [SYNTAX="lua"] a przy cytowaniu plików *.xml - [SYNTAX="xml"].

Re: [LUA] ammo

Postprzez Plaargath w 23 Mar 2015, 13:01

Ja wohl, doszedłem do tego eksperymentalnie. Niemniej dzięki wielkie za wsparcie!

ED:
Mam sobie taką konstrukcję skryptu:
Kod: [ Pobierz ] [ Ukryj ]
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:
Kod: [ Pobierz ] [ Ukryj ]
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ł?
Image Image

Merkantylizm, srerkantylizm.
Awatar użytkownika
Plaargath
Weteran

Posty: 653
Dołączenie: 23 Mar 2010, 15:12
Ostatnio był: 03 Kwi 2022, 22:03
Kozaki: 234

Reklamy Google

Re: [LUA] ammo

Postprzez Cromm Cruac w 23 Mar 2015, 16:08

#k na pewno by nie zadziałało, bo k to nie tablica a jej index. #v już by zadziałało, ale tu jest bardziej aligancki sposób:

Kod: [ Pobierz ] [ Ukryj ]
local kategorie = {}
for k, v in pairs(tablica) do
        for _, i in pairs (v) do
                if i == sec then
                        table.insert(kategorie, k)
                end
        end
end
-- wynik: tablica:
-- kategorie = {'kategoria3', 'kategoria4'}
 
Image

"Twoja opowieść mnie znudziła albowiem nie była o mnie" - Król Julian

Za ten post Cromm Cruac otrzymał następujące punkty reputacji:
Positive Plaargath.
Awatar użytkownika
Cromm Cruac
Modder

Posty: 2541
Dołączenie: 22 Sty 2010, 19:01
Ostatnio był: 26 Lip 2023, 10:13
Miejscowość: Londyn / Bielsko-Biała
Kozaki: 1077

Re: [LUA] ammo

Postprzez Plaargath w 28 Mar 2015, 12:47

Kurka, hopy, zaćmiło mnie. Wspomóżcie, proszę, Waszymi sprawnymi zwojami.
Otóż skopiowanie metody na tłumiki i granatniki - spoko - flaga, która mówi, że "jest" wystarcza, żeby "zdjąć" - nie ma podtypów, nie ma problemu. Ale z celownikami mam kurde problem. Flaga addon_flags mówi o celowniku tylko tyle, że "jest" albo "nie ma". Nie widzę żadnych podtypów, nie ma jak w amunicji, że mogę założyć, że jakiś numerek będzie mi w konkretnym przypadku oznaczał konkretną sekcję. No to kiedy mam giwerę z celownikiem, to jak teraz rozpoznać ze skrytpu jego konkretną nazwę? :-/
Image Image

Merkantylizm, srerkantylizm.
Awatar użytkownika
Plaargath
Weteran

Posty: 653
Dołączenie: 23 Mar 2010, 15:12
Ostatnio był: 03 Kwi 2022, 22:03
Kozaki: 234

Poprzednia

Powróć do Zew Prypeci

Kto jest na forum

Użytkownicy przeglądający to forum: Brak zarejestrowanych użytkowników oraz 1 gość