Exigo Opublikowano 26 Czerwca 2008 Udostępnij Opublikowano 26 Czerwca 2008 No i mam pytanie... co to pliki INI, do czego służą, i jak się je obsługuje?.. :P Bo potrzebuje zrobić 'opcje' w grze w której by był wybór: "czy generować ozdobniki, czy nie"... więc jeśli możecie, wtajemniczcie mnie w magię tych plików... ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 26 Czerwca 2008 Administratorzy Udostępnij Opublikowano 26 Czerwca 2008 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 Więcej opcji udostępniania...
Sirluki Opublikowano 26 Czerwca 2008 Udostępnij Opublikowano 26 Czerwca 2008 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 Więcej opcji udostępniania...
Exigo Opublikowano 26 Czerwca 2008 Autor Udostępnij Opublikowano 26 Czerwca 2008 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 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sirluki Opublikowano 26 Czerwca 2008 Udostępnij Opublikowano 26 Czerwca 2008 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 Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 26 Czerwca 2008 Administratorzy Udostępnij Opublikowano 26 Czerwca 2008 Kurde, nie dać kolorowania składni i już nie widzi ktoś apostrofów ... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Exigo Opublikowano 26 Czerwca 2008 Autor Udostępnij Opublikowano 26 Czerwca 2008 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 Więcej opcji udostępniania...
Marek.S Opublikowano 26 Czerwca 2008 Udostępnij Opublikowano 26 Czerwca 2008 GML //odczyt ini_open('data.ini') global.ozdobnik = ini_read_string('opcje','ozdobniki') ini_close() Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 26 Czerwca 2008 Administratorzy Udostępnij Opublikowano 26 Czerwca 2008 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 Więcej opcji udostępniania...
Exigo Opublikowano 26 Czerwca 2008 Autor Udostępnij Opublikowano 26 Czerwca 2008 Kurde... wywala error że nie wie co to jest zmienna global.ozdobnik .... ah. :( Jakieś propozycje.. :P ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 26 Czerwca 2008 Udostępnij Opublikowano 26 Czerwca 2008 nie wie co to jest zmienna global.ozdobnik Sam sobie odpowiedziałeś. ;] Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Exigo Opublikowano 26 Czerwca 2008 Autor Udostępnij Opublikowano 26 Czerwca 2008 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 Więcej opcji udostępniania...
Marek.S Opublikowano 26 Czerwca 2008 Udostępnij Opublikowano 26 Czerwca 2008 może ten room w którym odczytujesz ini nie jest pierwszy? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Exigo Opublikowano 26 Czerwca 2008 Autor Udostępnij Opublikowano 26 Czerwca 2008 Jest pierwszy.... to jak?... istnieje jakieś rozwiązanie?... :crying: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 26 Czerwca 2008 Administratorzy Udostępnij Opublikowano 26 Czerwca 2008 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 Więcej opcji udostępniania...
Marek.S Opublikowano 26 Czerwca 2008 Udostępnij Opublikowano 26 Czerwca 2008 gnysek, a co za różnica skoro i tak wczytuje ini przy starcie roomu? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Exigo Opublikowano 26 Czerwca 2008 Autor Udostępnij Opublikowano 26 Czerwca 2008 Kontroler tworzy się drugi... pierwszy zaś heros... więc wrzuciłem wszystkie akcje do bloku... i działa :D . 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ę