Skocz do zawartości

Pliki INI? - czym to się je?


Exigo

Rekomendowane odpowiedzi

  • Administratorzy

plik ini:

[key]
value=1
[key2]
value=3
value2=6

 

otwierasz go tak

 

ini_open('test.ini');

 

zamykasz

 

ini_close();

 

odczytujesz

 

zmienna=ini_read_string('key','value','default'); //string

zmienna=ini_read_real('key','value',16); //real

 

a zapiszujesz

 

ini_write_string('key','value',zmienna); //string

ini_write_real('key','value','zmienna'); //real

 

w GM6 jest bug, przez którego zmienne real (liczby) zapisujemy tak

ini_write_string('key','value',string(zmienna));

Odnośnik do komentarza
Udostępnij na innych stronach

Przed wszystkim: http://www.gmclan.org/index.php?wiki&wart=29

 

Za pomocą ini, możesz zapisywać dane (zmienne) do pliku ini. Gdy np. tworzysz grę a w niej opcje, ustawienia zapisujesz w ini, przez co po kolejnym uruchomieniu gry, będą one zapamiętane. Używam ich, do zapamiętywania wartości, które chcę, aby po kolejnym uruchomieniu gry zostały wczytywane :)

Odnośnik do komentarza
Udostępnij na innych stronach

No i niestety błąd... napisałem coś takiego w obiekcie 'kontroler' :

(create)

GML
ini_open('opcje.ini');

if ini_read_string(opcje,ozdobniki,1)

{global.opcja_ozdobnik = 1}

ini_close();

 

Co jest nie tak?

 

A to jest zawartość INI:

 

[opcje]

ozdobniki = 0

 

Proponuje tak:

 

Room Start:

GML
//odczyt

ini_open('plik.ini')

ozdobniki=ini_read_real('opcje','ozdobniki','1')

ini_close()

 

Step:

GML
if (warunek) global.opcja_ozdobniki = 1

// nie rozumiem za bardzo, co chciałeś zrobić z tym "if ini_read_string(opcje,ozdobniki,1)"

//jak napiszesz o co chodziło to poprawię

 

Room End:

GML
//zapis

ini_open('data.ini')

ini_write_string('opcje','ozdobniki',string(ozdobniki))

ini_close()

Odnośnik do komentarza
Udostępnij na innych stronach

Kurde... znów wyrzuca błędy.... aaaah. Może zrobimy tak, wytłumaczę na czym filozofia tych ozdobników działa, a wy pomożecie napisać mi kod :P ... a więc słuchajcie:

Są 2 obiekty... obj_kontroler oraz obj_blok_15x15. Ten tzw. blok, odczytuje globalną zmienną o nazwie global.ozdabiaj ... jeśli ma ona wartość 1, robi akcje... kontroler zaś ma odczytywać co się znajduje w pliku INI i ustawiać wartość globalnej... Teraz pokaże plik INI.. (nazywa się "ustawienia") :

[opcje]
ozdobniki = 0

Kontroler odczytuje wartość 'ozdobniki' ... jeśli wartość tego to 1, ustawia w zmiennej globalnej "global.ozdabiaj" też wartość 1... rozumiecie?

 

To jak... pomożecie? :P

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy
GML
//odczyt

ini_open('data.ini')

global.ozdobnik = ini_read_string('opcje','ozdobniki')

ini_close()

 

Tak, po pierwsze real, po drugie gdzie DEFAULT, po trzecie gdzie średniki ??

 

GML
//odczyt

ini_open('data.ini');

global.ozdobnik = ini_read_real('opcje','ozdobniki',0);

ini_close();

Odnośnik do komentarza
Udostępnij na innych stronach

Właśnie że nie.. :P - jest zadeklarowana ;)

 

Edit: Zapuszczę kodem.. ;)

 

Obiekt 'obj_kontroler:

Game Start:

global.ozdobnik = 0;

Room Start:

ini_open('ustawienia.ini');

global.ozdobnik = ini_read_real('opcje','ozdobniki',0);

ini_close();

 

Obiekt 'obj_blok_15x15'

Create:

if global.ozdobnik = 1

{

<rysowanie>

}

 

Plik INI o nazwie 'ustawienia.ini' :

[opcje]

ozdobniki = 1

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

a obj kontroler na pewno jest tworzony pierwszy ?

dodaj w każdym z tych dwóch obiektów w create: show_message('jakis tekst');

oczywiście w kazdym inny tekst i sprawdź który tekst będzie pierwszy.

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