Matrix_ Opublikowano 19 Lipca 2015 Udostępnij Opublikowano 19 Lipca 2015 Witam, Ostatnio planuje zrobić jakąś grę z dużą ilością misji. Albo przynajmniej z łatwą możliwością ich rozwijania. Zastanawiam się czy najlepszym rozwiązaniem nie będzie zrobienie tablicy, z każdym misji. Jedynie zarządzanie nimi będzie dość skomplikowane. Zawsze jest jakaś nagroda wiec w tablicy będą wskaźniki takie jak: Status aktywowania, jakiś licznik rzeczy do np. Zabicia, obecny wynik, czy ukończono, czy oddano i jaka jest nagroda ( jeden z kilku casów) Czy dobra droga idę nad opracowaniem tego typu systemu? Moglibyście mi powiedzieć jak wy rozwiazaliscie taki system w swoich grach albo jakieś wskazówki mi podać? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gibki Kaktus Opublikowano 19 Lipca 2015 Udostępnij Opublikowano 19 Lipca 2015 Tak, najłatwiejszym sposobem będzie wykorzystanie tablic. Każda misja niech będzie miała coś takiego np: Nazwa Opis(opcjonalny) Aktywowana Zmienna Nagroda Nagroda rzeczowa(opcjonalny) Oczywiście będziesz miał też bardziej rozbudowane misje pewnie, typu zabij x wilków, x niedźwiedzi i zbierz x fiołków. Wtedy możesz to rozbudować tak: Nazwa Opis(opcjonalny) Aktywowana Zmienna[misja,1] Zmienna[misja,2] Zmienna[misja,3] Nagroda Nagroda rzeczowa(opcjonalny) I potem przy zabiciu wilka coś takiego będziesz dawać: GML if global.Aktywowana[1]=1 global.Zmienna[1]++ To jeden z najprostszych sposobów. Myślę, że taki zarys Ci wystarczy ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 19 Lipca 2015 Udostępnij Opublikowano 19 Lipca 2015 Boad: Przy tak rozbudowanych zagadnieniach nigdy nie używaj słów "najprostszy" albo "najłatwiejszy". Nawet jeżeli takie rozwiązanie istnieje to nigdy nie uda Ci się go podać bo nie znasz wszystkich warunków. Zrobienie systemu misji wymaga zaplanowania od Ciebie jakiegoś systemu którego będziesz się trzymać. Na 100% będziesz się odnosić do każdego z questów więc każdy musi mieć swoje ID. Ja bym to zrobił jako słowniki (ds_map) GML global.questkarczmarza=ds_map_create()//To już jest ID ds_map_add(global.questkarczmarza,"Nazwa","Szczury w piwnicy") ds_map_add(global.questkarczmarza,"Wykonany", false) ds_map_add(global.questkarczmarza,"Typ",2)//Typ questa. 2 to np.: Zabij specyficznego przeciwnika ds_map_add(global.questkarczmarza,"Argument 1",o_enemy_32) Dzięki temu możesz się odnosić do elementów ds_map z dowolnego miejsca w grze. Co więcej teraz w GM:S można zagnieżdżać struktury. Możesz zrobić jeden ds_list który będzie przechowywać wszystkie questy. GML ds_list_add(global.questy,global.questkarczmarza) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Matrix_ Opublikowano 19 Lipca 2015 Autor Udostępnij Opublikowano 19 Lipca 2015 Dziękuję za takie obszerne odpowiedzi. Boad wykonał to sposobem nad którym się zastanawiałem. Dla mnie zrobienie tego na ds-list jest troszkę trudniejsze. Nie korzystałem za często z tej funkcji... Czytałem dokumentację ale trochę nie do konca zrozumiale. Za bardzo nie wiem jak się odpytuje tablice. Niby jest to ds_list_read, ale przy GML ds_map_add(global.questkarczmarza,"Nazwa","Szczury w piwnicy") dodaje się 2 wartości niczym nie związane... Jak odczytać pozycję szczury w piwnicy po nazwie? Przecież lista bierze zmienną z liczby podanej przy add, a nie nazwa zmiennej i jej wartość. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności ANtY Opublikowano 19 Lipca 2015 Filar Społeczności Udostępnij Opublikowano 19 Lipca 2015 Boad: Przy tak rozbudowanych zagadnieniach nigdy nie używaj słów "najprostszy" albo "najłatwiejszy". Nawet jeżeli takie rozwiązanie istnieje to nigdy nie uda Ci się go podać bo nie znasz wszystkich warunków. "najprostszy (według mnie) sposób" już dupa nie boli? zawsze zakładaj, że jak ktoś coś ocenia to jest to jego opinia oparta na tym co wie Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 19 Lipca 2015 Udostępnij Opublikowano 19 Lipca 2015 Jak odczytać pozycję szczury w piwnicy po nazwie? Przecież lista bierze zmienną z liczby podanej przy add, a nie nazwa zmiennej i jej wartość.ds_map_find_value(global.questkarczmarza,"Nazwa") To odczyta "Szczury w piwnicy". Są jeszcze Accessors które pozwalaja na działąnia podobne do tablic: global.questkarczmarza[?"Nazwa"] "najprostszy (według mnie) sposób" już dupa nie boli? zawsze zakładaj, że jak ktoś coś ocenia to jest to jego opinia oparta na tym co wie Boli wciąż i będzie boleć. ;) Zawsze zakładam wszystkie możliwe możliwości w danej sytuacji, po czym oceniam je wg prawdopodobieństwa. Zawsze. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Matrix_ Opublikowano 19 Lipca 2015 Autor Udostępnij Opublikowano 19 Lipca 2015 ds_map_find_value(global.questkarczmarza,"Nazwa") To odczyta "Szczury w piwnicy". Są jeszcze Accessors które pozwalaja na działąnia podobne do tablic: global.questkarczmarza[?"Nazwa"] Dzięki wielkie za pomoc. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się