ALT Opublikowano 26 Lutego 2011 Udostępnij Opublikowano 26 Lutego 2011 Potrzebuje prostego przykładu z inventory a'la Minecraft,czyli biorę jakiś item,to sprawdza czy już jest taki w inventory jeżeli tak,to go stack'uje. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Roki Opublikowano 26 Lutego 2011 Udostępnij Opublikowano 26 Lutego 2011 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 Więcej opcji udostępniania...
ALT Opublikowano 26 Lutego 2011 Autor Udostępnij Opublikowano 26 Lutego 2011 sory,ale sie zgubiłem ._. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 26 Lutego 2011 Udostępnij Opublikowano 26 Lutego 2011 @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 Więcej opcji udostępniania...
ALT Opublikowano 26 Lutego 2011 Autor Udostępnij Opublikowano 26 Lutego 2011 hus das lista? O_O Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kt1117 Opublikowano 26 Lutego 2011 Udostępnij Opublikowano 26 Lutego 2011 Where is dokumentacja? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Platyna Opublikowano 26 Lutego 2011 Udostępnij Opublikowano 26 Lutego 2011 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 Więcej opcji udostępniania...
Roki Opublikowano 26 Lutego 2011 Udostępnij Opublikowano 26 Lutego 2011 @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 Więcej opcji udostępniania...
ALT Opublikowano 26 Lutego 2011 Autor Udostępnij Opublikowano 26 Lutego 2011 Gdzie 43 to ID itema, a 4000 to numer pola w ekwipunku Tym zdaniem "powiedziałeś" 100 słów,cczyli dzięki temu zdaniu mnie olśniło :> THX i zamykam Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi