FanXX Opublikowano 3 Lipca 2012 Udostępnij Opublikowano 3 Lipca 2012 Witajcie, chciałbym poruszyć malutki problem na który się natknąłem a więc: GML var a, b if distance_to_object(Gracz) < 2 { if a = show_message_ext('Generator','Status','Kontrola','Anuluj') { if a = 0 {exit} if a = 3 {exit} if a = 1 {show_message('Status Generatora' + string('Paliwo: ') + string(paliwo) + string('#Energia: ') + string(energia))} if a = 2 {b = show_message_ext('Kontrola Generatora','Włącz','Wyłącz','Anuluj') if b = 1 {status = 1;image_index = 1;} if b = 2 {status = 0;image_index = 0;} }}} Czy wiecie może gdzie jest problem? Zmienne paliwo oraz energia są zadeklarowane w Event Create i wynoszą zero. GameMaker daje mi taki błąd: GML ___________________________________________ ERROR in action number 1 of Key Press Event for <Space> Key for object Generator: Error in code at line 4: if a = show_message_ext('Generator','Status','Kontrola','Anuluj') ^ at position 5: Unknown variable a A przecież VAR istnieje? Bardzo was proszę o pomoc. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 3 Lipca 2012 Udostępnij Opublikowano 3 Lipca 2012 Po pierwszej lini powinien być średnik, a zamias if lepiej użyć swith. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
FanXX Opublikowano 3 Lipca 2012 Autor Udostępnij Opublikowano 3 Lipca 2012 Powinien być średnik. Czy z nim czy bez i tak to samo :) Co do switch to nie wiem czy będzie to wszystko trzymać się całości choć może, może ... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 3 Lipca 2012 Udostępnij Opublikowano 3 Lipca 2012 Racja, nie działa dla tego że w if nie przypisuje się zmiennych, musisz to zrobić przed if. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
FanXX Opublikowano 3 Lipca 2012 Autor Udostępnij Opublikowano 3 Lipca 2012 GML var a, b if distance_to_object(Gracz) < 2 { a = show_message_ext('Generator','Status','Kontrola','Anuluj') if a = 0 {exit} if a = 3 {exit} if a = 1 {show_message('Status Generatora' + string('#Paliwo: ') + string(paliwo) + string('#Energia: ') + string(energia));exit} b = show_message_ext('Kontrola Generatora','Włącz','Wyłącz','Anuluj') if b = 1 {status = 1;image_index = 1;exit} if b = 2 {status = 0;image_index = 0;exit} if b = 0 {exit if b = 3 {exit} }} Poprawione już jest i działa - dzięki bo nie wiedziałem że nie można tak IF'u traktować :) Temat zamknięty @EDIT: Dzięki wielkie Threef - to samo mniej więcej pomyślałem ale zapamietam też Ciebie że pomogłeś :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 3 Lipca 2012 Udostępnij Opublikowano 3 Lipca 2012 GML var a, b if distance_to_object(Gracz) < 2 { a = show_message_ext('Generator','Status','Kontrola','Anuluj') if a = 0 {exit} if a = 3 {exit} if a = 1 {show_message('Status Generatora' + string('Paliwo: ') + string(paliwo) + string('#Energia: ') + string(energia))} if a = 2 {b = show_message_ext('Kontrola Generatora','Włącz','Wyłącz','Anuluj') if b = 1 {status = 1;image_index = 1;} if b = 2 {status = 0;image_index = 0;} }} Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
TheMarcQ Opublikowano 3 Lipca 2012 Udostępnij Opublikowano 3 Lipca 2012 GML var a, b; if distance_to_object(Gracz) < 2{ a = show_message_ext('Generator','Status','Kontrola','Anuluj'); switch(a){ case 0: exit; break; case 3: exit; break; case 1: show_message('Status Generatora' + string('Paliwo: ') + string(paliwo) + string('#Energia: ') + string(energia)); break; case 2: b = show_message_ext('Kontrola Generatora','Włącz','Wyłącz','Anuluj'); if b = 1 {status = 1;image_index = 1;} if b = 2 {status = 0;image_index = 0;} break; default: exit; break; } } e: spóźniony bo gm się otworzyć nie chciał ;p ale jednak na switchach łatwiej Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 3 Lipca 2012 Udostępnij Opublikowano 3 Lipca 2012 No to jeszcze nie zapomnij o GML if a = -1 {exit} -1 o ile pamiętam jest zwracany jak gracz naciśnie <ESC>. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
FanXX Opublikowano 3 Lipca 2012 Autor Udostępnij Opublikowano 3 Lipca 2012 e: spóźniony bo gm się otworzyć nie chciał ;p ale jednak na switchach łatwiej Może i rzeczywiście jest łatwiej ale wg mnie switch robi "chaos" w kodzie i wydaje się dla mnie zbyt skomplikowany, zobacze co lepsze i dzięki wielkie za napisanie - przyda się :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 3 Lipca 2012 Administratorzy Udostępnij Opublikowano 3 Lipca 2012 Ogólnie tylko w GML nie przypisuje się zmiennych w ifie, w większości języków przypisanie zwraca po prostu true. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
TheMarcQ Opublikowano 3 Lipca 2012 Udostępnij Opublikowano 3 Lipca 2012 Ogólnie to lepiej w ogóle tak nie robić, bo co kraj to obyczaj a co język to inny efekt takiego wygibasa. 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ę