bluks Opublikowano 28 Lipca 2009 Udostępnij Opublikowano 28 Lipca 2009 Mam problem z poniższym skryptem ponieważ gdy go napisz nic się nie zmienia tak jak bym tego chciał: Dałem to w step: GML repeat (1)if global.level=1 {global.exp=250}; repeat (1)if global.level=2 {global.exp=400}; repeat (1)if global.level=3 {global.exp=1000}; repeat (1)if global.level=4 {global.exp=1500}); Mój problem to żeby zamieniało global.exp na 250 tylko raz i tylko wtedy gdy global.level jest = 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Egzekutor Opublikowano 28 Lipca 2009 Udostępnij Opublikowano 28 Lipca 2009 a po co ci tu repeat ? GML if global.level=1 {global.exp=250}; i też będzie, przecież to zmienne a nie obiekty. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 28 Lipca 2009 Administratorzy Udostępnij Opublikowano 28 Lipca 2009 Repeat to instrukcja nie funkcja. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
bluks Opublikowano 28 Lipca 2009 Autor Udostępnij Opublikowano 28 Lipca 2009 ale gdy wykonam pewną akcje global.exp wynosi mniejszą wartość a jeżeli nie dam repeat to ciągle będzie mi zmieniać na 250. PS. Ludzie nauczcie się rozumieć innego człowieka bo przy wielu postach było tak że jakis debil chcial usunąć coś z danego skryptu z czego wychodziło to czego autor tematu właśnie nie pożąda a nawet prawie ślepy człowiek zauważyłby że z tamtego właśnie to się wywodz. Czy ty nie widzisz Egzekutor że z tego co tam napisałęś to się wywodzi dany skrypt a je chcę do tego dodać (nie odjąć) to aby czynność wykonała się raz. Więc jeżeli masz problemy z czytaniem ze zrozumieniem to czytaj to po kilka razy, aż będziesz w co najmniej 90% pewny że właśnie oto chodzi. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 28 Lipca 2009 Udostępnij Opublikowano 28 Lipca 2009 GML (Create) global.lastLvl = 0; GML (Gdziestam) if( global.lastLvl != global.level ) if( global.level == 1 ) { global.exp=250; global.lastLvl = global.level; } else if( global.level == 2 ) { global.exp=400; global.lastLvl = global.level; } else if( global.level == 3 ) { global.exp=1000; global.lastLvl = global.level; } else if( global.level == 4 ) { global.exp=1500; global.lastLvl = global.level; } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 28 Lipca 2009 Udostępnij Opublikowano 28 Lipca 2009 Dałeś w Step: GMLrepeat (1)if global.level=1 {global.exp=250}; Po pierwsze, repeat() tylko spowalnia twój skrypt. Po drugie, cały czas będziesz miał 250 exp, gdy będziesz miał 1 lv. Pokombinuj z większą ilością zmiennych, np. if(zm1 = 1) { if(global.level = 1) { global.exp = 250 zm1 = 0 } } EDIT: To samo z resztą :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Lechu4444 Opublikowano 28 Lipca 2009 Udostępnij Opublikowano 28 Lipca 2009 GML //create: global.nextlevel=250 global.exp=0 global.level=1 //step: if global.exp=global.nextlevel { global.level=2 } //drugi kod w step if global.level = 2 {global.nextlevel=400} if global.level = 3 {global.nextlevel=1000} if global.level = 4 {global.nextlevel=1500} //...</span> o to chodzi? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 28 Lipca 2009 Administratorzy Udostępnij Opublikowano 28 Lipca 2009 ale gdy wykonam pewną akcje global.exp wynosi mniejszą wartość a jeżeli nie dam repeat to ciągle będzie mi zmieniać na 250. PS. Ludzie nauczcie się rozumieć innego człowieka bo przy wielu postach było tak że jakis debil chcial usunąć coś z danego skryptu z czego wychodziło to czego autor tematu właśnie nie pożąda a nawet prawie ślepy człowiek zauważyłby że z tamtego właśnie to się wywodz. Czy ty nie widzisz Egzekutor że z tego co tam napisałęś to się wywodzi dany skrypt a je chcę do tego dodać (nie odjąć) to aby czynność wykonała się raz. Więc jeżeli masz problemy z czytaniem ze zrozumieniem to czytaj to po kilka razy, aż będziesz w co najmniej 90% pewny że właśnie oto chodzi. Repeat powoduje, ze kod za nim wykona się ileś razy. Zatem repeat(1) to tak samo, jakby nie napisać nić lub napisać for(i=0; i<1; i+=1). GML repeat(1) show_message('hej'); //wkonuje akcję 1 raz</span> GML show_message('hej'); //to jest indetyczny kod jak powyzej</span> GML repeat(10) show_message('hej'); //wyswietla 10 razy</span> GML for(i=0; i<10; i+=1) show_message('hej'); //to jest indetyczny kod jak powyzej</span> Repeat nie oznacza, że ten kod już sie potem nigdy nie wykona, on wykona się za każdym stepem, a więc 30 razy na sekundę :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 28 Lipca 2009 Udostępnij Opublikowano 28 Lipca 2009 Repeat powoduje, ze kod za nim wykona się ileś razy. Zatem repeat(1) to tak samo, jakby nie napisać nić lub napisać for(i=0; i<1; i+=1). w GMLu wszystko jest możliwe ;p E: Co do: GML for(i=0; i<10; i+=1) show_message('hej'); //to jest indetyczny kod jak powyzej</span> Nie koniecznie, stworzenie zmiennej ( tu i ) też kosztuje xP Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
bluks Opublikowano 28 Lipca 2009 Autor Udostępnij Opublikowano 28 Lipca 2009 Gnysek racja ale dając to w stepie będzie ci tą wiadomość otwierać bez przerwy a z repeat (1) tylko 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 28 Lipca 2009 Udostępnij Opublikowano 28 Lipca 2009 GML //drugi kod w step if global.level = 2 {global.nextlevel=400} if global.level = 2 {global.nextlevel=1000} if global.level = 2 {global.nextlevel=1500} //... o to chodzi? "Jeśli (global.level = 2) wtedy {global.nextlevel = 400} Jeśli (global.level = 2) wtedy {global.nextlevel = 1000} Jeśli (global.level = 2) wtedy {global.nextlevel = 1500}" Wyjdzie na to, że na 2 lv będzie potrzebne 1500 exp. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 28 Lipca 2009 Udostępnij Opublikowano 28 Lipca 2009 dając to w stepie będzie ci tą wiadomość otwierać bez przerwyWcale nie! w ciągu 1 stepa wyświetli to 10 razy ;p z repeat (1) tylko 1Wtedy wystarczy sam STEP ;p Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 28 Lipca 2009 Administratorzy Udostępnij Opublikowano 28 Lipca 2009 Gnysek racja ale dając to w stepie będzie ci tą wiadomość otwierać bez przerwy a z repeat (1) tylko 1 Nie - też w nieskończonosć :) Ponieważ repat(1) oznacza: "ten kod wykonaj w tym stepie 1 raz". W następnym stepie, znów zostanie wykonany 1 raz i tak w kółko. Kod bez repeat(1) też jest wykonywany w danym stepie jeden raz :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 28 Lipca 2009 Udostępnij Opublikowano 28 Lipca 2009 Step wykonuje się co fps/room_speed! Zrozum bluks! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
bluks Opublikowano 28 Lipca 2009 Autor Udostępnij Opublikowano 28 Lipca 2009 Lechu4444 Dzięki właśnie oto chodziło. No może oprucz tego ż zamiast dać te kilka lvl to dałeś same 2. Ale reszta jest ok. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 28 Lipca 2009 Administratorzy Udostępnij Opublikowano 28 Lipca 2009 Nie zrozumiałeś działania repeat jak widzę :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
bluks Opublikowano 28 Lipca 2009 Autor Udostępnij Opublikowano 28 Lipca 2009 Pewnie tak bo w dokumentacji znalazłem i chciałem odrazu dodac do gry bo potrzebowałem. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Lechu4444 Opublikowano 28 Lipca 2009 Udostępnij Opublikowano 28 Lipca 2009 "Jeśli (global.level = 2) wtedy {global.nextlevel = 400} Jeśli (global.level = 2) wtedy {global.nextlevel = 1000} Jeśli (global.level = 2) wtedy {global.nextlevel = 1500}" Wyjdzie na to, że na 2 lv będzie potrzebne 1500 exp. O jejku zapomniałem po przeprawiać z pośpiechu cyferek. E. Już poprawiłem Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
bluks Opublikowano 28 Lipca 2009 Autor Udostępnij Opublikowano 28 Lipca 2009 I jeszcze to GML if global.exp=global.nextlevel { global.level=2 } A według mnie powinno być GML if global.exp=global.nextlevel { global.level+=1 } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Nobody Opublikowano 28 Lipca 2009 Udostępnij Opublikowano 28 Lipca 2009 Wg. mnie głupotą jest dawać taki kod do stepa. Może teraz nie będzie to widoczne, ale przy większym kodzie to będzie po prostu niewydajne. Takie rzeczy dajesz w create i nie przypisuje Ci ciągle takich samych wartości co step. Create GML global.next[0] = 250; global.next[1] = 500; global.next[2] = 1000; //itd itd itd</span> Przy zdobywaniu expa GML if( global.next[ level - 1 ] == global.exp ) { global.exp -= global.next[ level - 1 ]; // Różnica expa, żeby nie zmniejszało do 0 tylko tyle, ile było za dużo na dany poziom level += 1; } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 28 Lipca 2009 Udostępnij Opublikowano 28 Lipca 2009 Wo góle macie głupie myślenie GML (Create) global.level = 0; global.maxExp = 250; global.exp = 0; GML (Zdobycie Expa) if( global.exp >= global.maxExp ) { global.exp -= global.maxExp; global.maxExp *= 2; global.level += 1; } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Nobody Opublikowano 28 Lipca 2009 Udostępnij Opublikowano 28 Lipca 2009 A jeżeli nie chce mieć potrzebnego expa 2x większego od poprzedniego? Może chce sobie sam ustalać wszystko? 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ę