Skocz do zawartości

Sklepi


Rekomendowane odpowiedzi

Witam wszystkich GMclan'owiczów

 

 

Robię gierkę i mam mały problem ze sklepem !

 

Niby wszystko fajnie działa ale jak wyjdę ze sklepu to przedmioty które zakupiłem , nie znajdują sie "w plecaku" ( że tak powiem )

 

Używam do tego 2 roomów oraz game_save oraz game_load !

 

Pomyślałem że powinien być jakiś obiekt który przechowuje dane zakupionych żeczy ( ini czy coś w tym stylu ) lecz mam problem !

 

 

Any Ideas ???

Odnośnik do komentarza
Udostępnij na innych stronach

Dwa najszybsze i najprostrze sposoby:

 

1. Zmienne globalne:

Zmienna może być globalna jeżeli napiszesz przed nią global. albo zadeklarujesz ją za pomocą globalvar.

 

global. :

GML
//Zamiast:

Zmienna1 = 15;

Miejsce[2,4] = "Sword"

//Robisz:

global.Zmienna1 = 15;

global.Miejsce[2,4] = "Sword"

 

globalvar:

GML
//Deklaracja zmiennych

globalvar Zmienna1 Zmienna2 Zmienna3;

//Deklarujac zmienna nie mozesz nadac jej wartosci wiec robisz to pozniej

Zmienna1 = 15;

Zmienna2 = "lel";

 

2. Obiekt z zaznaczonym "persistent" który ma w sobie zawartość plecaka

 

Po prostu zrób nowy obiekt który to trzyma zawartość plecaka, do niego się odwołuj sprawdzając plecak i zaznacz mu persistent.

Tu mogą być powikłania jeżeli wielokrotnie wejdziesz do roomu w którym taki obiekt jest tworzony bo wtedy będziesz miał ich więcej jak 1.

Odnośnik do komentarza
Udostępnij na innych stronach

Od razu widzę problem, też to miałem u siebie. Zapisujesz grę przed wejściem do sklepu, czyli wszystkie zmienne np, że w plecaku nic nie masz. Wchodzisz do sklepu i wszystko działa, ale jak wychodzisz gra się wczytuje i wczytuje się zmienna plecaka - nic w nim nie ma.

W mojej grze wpadłem na pomysł zapisywania zakupionych rzeczy w osobnym pliku, w twoim przypadku najlepszy jest plik z rozszerzeniem .ini

 

Wychodzimy ze sklepu:

GML
//Plecak zapisywany jest w pliku

ini_open('plecak.ini');

ini_write_string('Plecak','pole1',global.pole1);

ini_write_string('Plecak','pole2',global.pole2);

ini_write_string('Plecak','pole3',global.pole3);

ini_close();

//Gra powraca do momentu przed wejściem do sklepu

game_load(plik.zapis);

//Zapisany plecak jest teraz wczytywany

ini_open('plecak.ini');

pole1=ini_read_string('Plecak','pole1',global.pole1);

pole2=ini_read_string('Plecak','pole2',global.pole2);

pole3=ini_read_string('Plecak','pole3',global.pole3);

ini_close();

 

Powinno działać.

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ę...