kowal Opublikowano 1 Czerwca 2005 Udostępnij Opublikowano 1 Czerwca 2005 Witam wszystkich obecnych na forum. Mam problem. jak zrobi rozmowe z kolesiem tak jak w rpg? prubowałem, i zrobiłem to tak : W create lowcy - naszego rozmowcy: global.taklowca=0 global.ble=0//wartosc ktora wplywa na to ze pisze tylko spadaj a nie od nowa tekst W step gracza - tym kim gramy: wiadomosci(); No i teraz gdy gadamy z kolesiem to wykonywany jest ten skrypt: { global.lowca1='TAYON: Witam cię wędrowcze nazywam się Tayon. Czy mogłbys mi powiedźiec gdzie ja się znalazłem?' global.lowca2='BINABIK: No człowieku to z toboą musi byc naprawdę źle ,że nie wiesz gdzie jestes hehe . Glupi człowiek, głupi.' global.lowca3='TAYON: Nie jestem glupi. Płynąłem statkiem, szalała buża, i... i niepamiętam co się stało puźniej.' global.lowca4='BINABIK: A skąd ja moge wiedziec co sie stało potem?' global.lowca5='TAYON: Nie o to mi chodzi. Chciałem tylko...' global.lowca6='BINABIK: Mowiłem ,że jestes głupi - sam sobie zaprzeczasz.' global.lowca7='TAYON: Aj skończmy z tym. Powiec mi tylko jaka to kraina.' global.lowca8='BINABIK: A z czym mam niby skończy? Czy ja cie zaczepiłem i wygadywałem jakies bzdury sam sobie przecząc?' global.lowca9='TAYON: Nie.' global.lowca10='BINABIK: No a więc widzisz hehe jestes tylko głupim człowiekiem nie to co ja mysliciel trol. A powracając do tamtego pytania to znajdujesz się na wyspie Naglimund.' global.lowca11='TAYON: Było tak od razu. Ok dzięki.' global.lowca12='BINABIK: Spadaj' } { if (global.ble=0) if distance_to_object(lowca)<8 if (keyboard_check(vk_enter)) global.taklowca=1 } { if (global.ble=0) if (global.taklowca=1) if distance_to_object(lowca)<8 if (keyboard_check(vk_enter)) show_message(global.lowca1) } { if (global.ble=0) if (global.taklowca=1) global.taklowca=2 } { if (global.ble=0) if (global.taklowca=2) show_message(global.lowca2) } { if (global.ble=0) if (global.taklowca=2) global.taklowca=3 } { if (global.ble=0) if (global.taklowca=3) show_message(global.lowca3) } { if (global.ble=0) if (global.taklowca=3) global.taklowca=4 } { if (global.ble=0) if (global.taklowca=4) show_message(global.lowca4) } { if (global.ble=0) if (global.taklowca=4) global.taklowca=5 } { if (global.ble=0) if (global.taklowca=5) show_message(global.lowca5) } { if (global.ble=0) if (global.taklowca=5) global.taklowca=6 } { if (global.ble=0) if (global.taklowca=6) show_message(global.lowca6) } { if (global.ble=0) if (global.taklowca=6) global.taklowca=7 } { if (global.ble=0) if (global.taklowca=7) show_message(global.lowca7) } { if (global.ble=0) if (global.taklowca=7) global.taklowca=8 } { if (global.ble=0) if (global.taklowca=8) show_message(global.lowca8) } { if (global.ble=0) if (global.taklowca=8) global.taklowca=9 } { if (global.ble=0) if (global.taklowca=9) show_message(global.lowca9) } { if (global.ble=0) if (global.taklowca=9) global.taklowca=10 } { if (global.ble=0) if (global.taklowca=10) show_message(global.lowca10) } { if (global.ble=0) if (global.taklowca=10) global.taklowca=11 } { if (global.ble=0) if (global.taklowca=11) show_message(global.lowca11) } { if(global.taklowca=11) global.ble=1 } { if distance_to_object(lowca)<8 if (keyboard_check(vk_enter)) if (global.ble=1) show_message(global.lowca12) } I właśnie chodzi mi o to czy mozna to w jakis łatwiejszy sposob zrobi?? Pamietac nalezy także, że gdy wcisniemy ok w pojawiajacym sie message to pojawia sie nastepny message z dialogiem nazego rozmowcy i tak cały czas az skonczy sie to co zaplanowałem aby powiedzieli. dziękuje za pomoc - mam nadzieje , że jest to zrozumiałe :] Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 1 Czerwca 2005 Udostępnij Opublikowano 1 Czerwca 2005 Zamiast : { if (global.ble=0) if distance_to_object(lowca)<8 if (keyboard_check(vk_enter)) global.taklowca=1 } { if (global.ble=0) if (global.taklowca=1) if distance_to_object(lowca)<8 if (keyboard_check(vk_enter)) show_message(global.lowca1) } { if (global.ble=0) if (global.taklowca=1) global.taklowca=2 } { if (global.ble=0) if (global.taklowca=2) show_message(global.lowca2) } { if (global.ble=0) if (global.taklowca=2) global.taklowca=3 } { if (global.ble=0) if (global.taklowca=3) show_message(global.lowca3) } { if (global.ble=0) if (global.taklowca=3) global.taklowca=4 } { if (global.ble=0) if (global.taklowca=4) show_message(global.lowca4) } { if (global.ble=0) if (global.taklowca=4) global.taklowca=5 } { if (global.ble=0) if (global.taklowca=5) show_message(global.lowca5) } { if (global.ble=0) if (global.taklowca=5) global.taklowca=6 } { if (global.ble=0) if (global.taklowca=6) show_message(global.lowca6) } { if (global.ble=0) if (global.taklowca=6) global.taklowca=7 } { if (global.ble=0) if (global.taklowca=7) show_message(global.lowca7) } { if (global.ble=0) if (global.taklowca=7) global.taklowca=8 } { if (global.ble=0) if (global.taklowca=8) show_message(global.lowca8) } { if (global.ble=0) if (global.taklowca=8) global.taklowca=9 } { if (global.ble=0) if (global.taklowca=9) show_message(global.lowca9) } { if (global.ble=0) if (global.taklowca=9) global.taklowca=10 } { if (global.ble=0) if (global.taklowca=10) show_message(global.lowca10) } { if (global.ble=0) if (global.taklowca=10) global.taklowca=11 } { if (global.ble=0) if (global.taklowca=11) show_message(global.lowca11) } { if(global.taklowca=11) global.ble=1 } { if distance_to_object(lowca)<8 if (keyboard_check(vk_enter)) if (global.ble=1) show_message(global.lowca12) } daj : for(a=1;a<=12;a+=1;) { var text; text='show_message(global.lowca'+string(a)+');'; execute_string(text); } Powinno działać. EDIT Ok, sprawdzałem i działa. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kowal Opublikowano 1 Czerwca 2005 Autor Udostępnij Opublikowano 1 Czerwca 2005 A no tak tak samo robi sie w c++ ;) No dobze to juz mamy z głowy, a co zrobic jesli własnie po wypowiedzeniu tego dialogu chcem aby za kazdym razem gdy do tego kolesia podejde i zaczne gadac to zeby on odpowiadał tylko tym tekstem: global.lowca12='BINABIK: Spadaj' Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 1 Czerwca 2005 Udostępnij Opublikowano 1 Czerwca 2005 A to jest bardzo proste, musisz dać coś w rodzaju przełącznika czyli nowej zmiennej A więc : if rozmawial=false {for(a=1;a<=12;a+=1;) { var text; text='show_message(global.lowca'+string(a)+');'; execute_string(text); rozmawial=true;}} else show_message(global.lowca12); EDIT Pamiętaj tylko żeby dać w create : rozmawial=false; ;) bo inaczej wyskoczy error :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kowal Opublikowano 1 Czerwca 2005 Autor Udostępnij Opublikowano 1 Czerwca 2005 Wielkie dzieki działa wszystko ok. zmieniłem tylko, to co jest na czerwono. wielkie dzieki. if distance_to_object(lowca)<8 if (keyboard_check(vk_enter)) if rozmawial=false { for(a=1;a<=12;a+=1;) { var text; text='show_message(global.lowca'+string(a)+');'; execute_string(text); rozmawial=true; } } else show_message(global.lowca12); A teraz drugi problemik <_< Mam takie cos ze jesli mam odpowiednią iloś np. many, i gdy klikam na dany obiekt to kolo myszki pojawia mi sie inny obiekt - jakas tam strefa. No i mam kłopot z tym, ze ona zamiast raz zostac stworzona to cały czas tworza sie nowe obiekty strefy. Chodzi mi o to aby powstała tylko jedna taka strefa :D Ty pewnie to w jednej linijce zrobisz ;) Z góry dziekuje za odpowiedz. a to fragment mojego kody - niedopracowanego bo obiekty strefy cały czas sie tworza nowe zamiast jednego. To w step przycisku: x=view_xview+150 y=view_yview+450//obiekt zawsze stoi w 1 miejscu { if (global.mana >10)//musi byc wieksze od 10 aby ta animacja dzialala with(myszka) if position_meeting(x,y,piorun)//gdy najedziemy myszką na obiekt to zmienia on animacje with(piorun)image_single=2 } { with(myszka) if not position_meeting(x,y,piorun) with(piorun)image_single=1 } { with(myszka) if not position_meeting(x,y,piorun)//jeseli mana jest mniejsza niz 10 wtedy animacja 0 if (global.mana<10) with(piorun)image_single=0 } { if (global.mana >10)//musi byc wieksze od 10 aby ta animacja dzialala with(myszka) if position_meeting(x,y,piorun)//gdy najedziemy myszką na obiekt to zmienia on animacje if mouse_check_button(mb_left) global.obszarc=1 } { if (global.obszarc=1) instance_create(mouse_x,mouse_y,obszar) } { if (global.obszarc=1) with(obszar)x=random(10) with(obszar)y=random(38) } { if (global.obszarc=1) global.obszarc=0 } A to w create przycisku: global.przycisk=0 global.obszarc=0 Edit dopiero zauwazylem :rolleyes: moj numer gg to : 9313186 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 1 Czerwca 2005 Udostępnij Opublikowano 1 Czerwca 2005 x=view_xview+150 y=view_yview+450//obiekt zawsze stoi w 1 miejscu { if (global.mana >10)//musi byc wieksze od 10 aby ta animacja dzialala with(myszka) if position_meeting(x,y,piorun)//gdy najedziemy myszką na obiekt to zmienia on animacje with(piorun)image_single=2 } { with(myszka) if not position_meeting(x,y,piorun) with(piorun)image_single=1 } { with(myszka) if not position_meeting(x,y,piorun)//jeseli mana jest mniejsza niz 10 wtedy animacja 0 if (global.mana<10) with(piorun)image_single=0 } { if (global.mana >10)//musi byc wieksze od 10 aby ta animacja dzialala with(myszka) if position_meeting(x,y,piorun)//gdy najedziemy myszką na obiekt to zmienia on animacje if mouse_check_button(mb_left) global.obszarc=1 } { if (global.obszarc=1) && obszar.instance_count<1 // stprawdza ilość obiektów instance_create(mouse_x,mouse_y,obszar) } { if (global.obszarc=1) with(obszar)x=random(10) with(obszar)y=random(38) } { if (global.obszarc=1) global.obszarc=0 } Może wyskoczyć error. EDIT A jak nie działa to spróbuj : x=view_xview+150 y=view_yview+450//obiekt zawsze stoi w 1 miejscu { if (global.mana >10)//musi byc wieksze od 10 aby ta animacja dzialala with(myszka) if position_meeting(x,y,piorun)//gdy najedziemy myszką na obiekt to zmienia on animacje with(piorun)image_single=2 } { with(myszka) if not position_meeting(x,y,piorun) with(piorun)image_single=1 } { with(myszka) if not position_meeting(x,y,piorun)//jeseli mana jest mniejsza niz 10 wtedy animacja 0 if (global.mana<10) with(piorun)image_single=0 } { if (global.mana >10)//musi byc wieksze od 10 aby ta animacja dzialala with(myszka) if position_meeting(x,y,piorun)//gdy najedziemy myszką na obiekt to zmienia on animacje if mouse_check_button(mb_left) global.obszarc=1 } { if (global.obszarc=1) var id_obszar; id_obszar=instance_create(mouse_x,mouse_y,obszar); with (id_obszar) instance_destroy(); } { if (global.obszarc=1) with(obszar)x=random(10) with(obszar)y=random(38) } { if (global.obszarc=1) global.obszarc=0 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kowal Opublikowano 1 Czerwca 2005 Autor Udostępnij Opublikowano 1 Czerwca 2005 Probowałem tego co napisałeś ale nie działało i zrobiłem tak ( jakos wymysliłem :P ) Troszke zmieniłem To jest fragment: { if (global.obszarc=1) instance_create(mouse_x,mouse_y,obszar); global.obszarc=3 } { if (global.obszarc=3) with(obszar)x=mouse_x } { if (global.obszarc=3) with(obszar)y=mouse_y } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 1 Czerwca 2005 Udostępnij Opublikowano 1 Czerwca 2005 { if (global.obszarc=1) instance_create(mouse_x,mouse_y,obszar); global.obszarc=3 } { if (global.obszarc=3) {with(obszar)x=mouse_x with(obszar)y=mouse_y} } Tak jest łatwiej ;) No i czytelniej xD EDIT Widze że masz przyzwyczajenie do innego języka programowania ;) EDIT 2 To ma być jakiś powarzniejszy projekt czy tylko nauka GMa ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kowal Opublikowano 2 Czerwca 2005 Autor Udostępnij Opublikowano 2 Czerwca 2005 Wiesz co ja dopiero zaczynam sie uczy gmla ;) ale nawet szybko wchodzi w banie :] Bardzo mi help pomaga mimo ze prawie angielskiego nie znam. 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ę