Skocz do zawartości

Zablokowane Przykład


ALT

Rekomendowane odpowiedzi

To proste ._.

Robisz tablice:

GML
global.item[1] = 0; // ID Itemu w danej komórce eq

global.number[1] = 0; // Ilość Itemu w danej komórce eq</span></span>

 

I jak coś podnosisz to po kolei sprawdzasz każde global.item, jeśli znalazłeś dane ID, to sprawdzasz czy global.number nie przekracza maksymalnej ilości itemka na slocie, jeśli przekracza, szukasz kolejnego pola, jeśli nie to dodajesz itemek.

 

Proste. Przykładu nie napiszę, jest to tak banalne, że sobie chyba poradzisz.

 

Btw. To jest pytanie zaawansowane? To zwykła logika, czy coś w ten deseń.

Odnośnik do komentarza
Udostępnij na innych stronach

@Roki: lol. A jak będzie 4k itemów, to co, też na tablicach?

@ALT: proponuję zrobić to na listach. Dużo szybciej.

I nie sprawdzać po kolei każdego elementu listy global.item, tylko pobrać ID itemu podnoszonego i od razu zwiększać ds_list_find_value(global.number,id_itemu) o 1.

 

E: Roki, w ciągu 5 minut zmieniłeś avatara 3 razy?

Odnośnik do komentarza
Udostępnij na innych stronach

I nie sprawdzać po kolei każdego elementu listy global.item, tylko pobrać ID itemu podnoszonego i od razu zwiększać ds_list_find_value(global.number,id_itemu) o 1.

A sprawdzałeś cwaniaku złożoność czasową tej funkcji? To, że to jedna instrukcja, a nie pętla nie znaczy, że działa szybciej... Śmiem twierdzić że to też działa w czasie O(n). Chociaż mogę się mylić. Zależy czy jest to rzeczywiście lista czy może jakieś drzewo binarne.

 

EDIT: Chyba masz jednak rację. Zaraz sprawdzę dokładniej. :P

EDIT2: Nie, to chyba jednak zwykła lista w której operacje dodawania i zabierania elementu mają złożoność stałą, a odnajdywanie wartości liniową. Trzeba by przetestować czas działania. :)

Swoją drogą powinni takie rzeczy pisać w dokumentacji, bo tak to jest o kant dupy potłuc...

Odnośnik do komentarza
Udostępnij na innych stronach

@Roki: lol. A jak będzie 4k itemów, to co, też na tablicach?

Tablica przechowuje item w danej komórce, więc co za problem mieć:

GML
global.item[4000] = 43

Gdzie 43 to ID itema, a 4000 to numer pola w ekwipunku.

 

A avek losuje się sam :>

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...