Skocz do zawartości

System misji


Rekomendowane odpowiedzi

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

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

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

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

  • Filar Społeczności
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

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

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ę
  • Ostatnio przeglądający   0 użytkowników

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