sagi Opublikowano 13 Września 2011 Udostępnij Opublikowano 13 Września 2011 na podstawie algorytmów wyżej wymienionych autorów próbuję zrobić rozmowę z "botem", w zależności od tego co wybiorę to bot odpowiada, oczywiście to działa tylko w teorii. Próbuję to zrozumieć już od tygodnia i jako tako zrozumiałem zasadę działania skryptów a kod w step bota wygląda tak: GML depth=-y; if distance_to_object(obj_hero)<10 and no_text() and keyboard_check(vk_space) { status=1;// w create jest status=0 speed=0; if status=1 { add_text('Czesc! pogadamy?'); status=2; } if status=2 { wyb_odp('pogadamy?','tak','nie','',''); status=3; } if status=3 and global.odp=2 { add_text('to nie'); //status=-3 } if status=3 and global.odp=1 { add_text('jestem franek'); status=4; } if status=4 { wyb_odp('odp:','milo mi','jestem mariusz','ale masz smieszne imie','bywaj'); status=5; } if status=5 and global.odp=4 { add_text('nie przedstawiles sie ale dobra NARA'); //status=-3; } if status= 5 and global.odp=3 { add_text('ciekawe jakie jest twoje'); status=6; } if status=5 and global.odp=2 { add_text('milo mi'); } if status=5 and global.odp=1 { add_text('mi rowniez, ale jak sie nazywasz?'); status=7 } if status=6 { wyb_odp('odp do 3','nie takie smieszne','twoje i tak smieszniejsze','',''); status=8; } if status=8 and global.odp=2 { add_text('spierdalaj'); } if status = 8 and global.odp=1 { add_text('nie odzywaj sie do mnie'); } if status=7 { wyb_odp('odp do 1','mariusz','wybacz musze juz isc','',''); status=9; } if status =9 and global.odp=1 { add_text('no to czesc'); } if status=9 and global.odp=2 { add_text('to fajnie ale musze juz isc'); } } if speed=0 and no_text() { speed=0.5; } nie mam pojęcia jak to ugryźć a bez tego ani rusz. jeśli ktoś nie wie o co mi chodzi to proszę zadawać pytania, a jak ktoś zna rozwiązanie to będę wdzięczny za podzielenie się tą wiedzą. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kt1117 Opublikowano 13 Września 2011 Udostępnij Opublikowano 13 Września 2011 Spróbuj zrobić takie drzewko binarne. Tylko z "dziurami" tzn, żeby co drugie odgałęzienie (to, które odpowiada frazie NPC) było usunięte. Możesz spróbować zmodyfikować je tak, żeby ilość dopuszczalnych odnóg to było by 3. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 13 Września 2011 Administratorzy Udostępnij Opublikowano 13 Września 2011 GML if status=1 { add_text('Czesc! pogadamy?'); status=2; } if status=2 //jest prawdziwe, ustawione dwie linijki wcześniej { Zauważ, że ustawiasz status = 2, a za chwilę go sprawdzasz (skrypt wykonuje się dalej!), co powoduje, że warunek if status=2 jest prawdziwy. Powinno być chyba tak: GML if status=1 { add_text('Czesc! pogadamy?'); status=2; } else if status=2 { Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
sagi Opublikowano 13 Września 2011 Autor Udostępnij Opublikowano 13 Września 2011 spróbowałem wprowadzić else i wyskoczył mi kolejny problem GML ERROR in action number 1 of Step Event for object obj_ncp_1: Error in code at line 26: if status=3 and global.odp=1 ^ at position 29: Unknown variable odp a global.odp mam zadeklarowane w create innego obiektu odpowiedzialnego za wybór odpowiedzi którego instancja tworzona jest przez skrypt: GML if !instance_exists(obj_wyb_odp) then instance_create(20,20,obj_wyb_odp); obj_wyb_odp.pyt = argument0 obj_wyb_odp.op1 = argument1 obj_wyb_odp.op2 = argument2 obj_wyb_odp.op3 = argument3 obj_wyb_odp.op4 = argument4 wrzuciłem plik: http://www.gmclan.org/up7678_12_teksty_rob.html Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 13 Września 2011 Udostępnij Opublikowano 13 Września 2011 jak ty nie postawiłeś tego obiektu co ci deklaruje tą zmienną. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
sagi Opublikowano 13 Września 2011 Autor Udostępnij Opublikowano 13 Września 2011 może nie jestem dobry w gml, ale powiedz mi co Twoim zdaniem oznacza ta linia: GML if !instance_exists(obj_wyb_odp) then instance_create(20,20,obj_wyb_odp); bo według mnie: jeżeli nie prawda że instancja_istnieje(obiekt) to instancja_stwórz(x,y,obiekt); a właśnie w obiekcie obj_wyb_odp jest zadeklarowanie zmiennej, czyli jeżeli w graczuNPC odwołuje się do skryptu wyb_odp() to ten skrypt automatycznie tworzy obiekt czyli również zmienną global.odp. jeśli coś źle rozumuje proszę o poprawienie mnie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 13 Września 2011 Administratorzy Udostępnij Opublikowano 13 Września 2011 Warunek jest sprawdzany przed stworzeniem obiektu? w koncu add_text() nie dodaje tego obiektu, add_text dodaje obj_text. Dodaj w scr_ini() global.odp = 0; i po kłopocie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
sagi Opublikowano 29 Września 2011 Autor Udostępnij Opublikowano 29 Września 2011 witam mam jeszcze jeden problem, a dokładniej chodzi o wciskanie klawisza enter, gdy rozmawiam to jest taki moment w dialogu że nie wyświetla tekstu i żeby zaczeło tekst wyświetlać nalezy kliknąć 2 razy enter, może to nie jest taki wielki problem ale jednak nie wiem jak go usunąć czy przerobić coś w obj_text w evencie wciskania klawisza enter, żeby mi nie likwidowało tej ramki tylko żeby wyświetlało cały czas tekst, a po wybraniu odpowiedzi likwidowało tekst a wyświetlało tekst odpowiedzi. mam nadzieję że nie piszę zbyt zagmatwanie. oto plik: http://www.gmclan.org/up7678_12_teksty_rob1ee5b3.html Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
sagi Opublikowano 30 Października 2011 Autor Udostępnij Opublikowano 30 Października 2011 przepraszam że dawno sie nie odzywałem, ale mam mnóstwo pracy na głowie. dziękuję za pomoc, choć nie jest to do końca rozwiązane ale jak zrobię krótszy dialog to będzie wyglądało jakby działało prawidłowo, plik z dialogiem narazie zostawię(może akurat komuś się przyda) chyba że pierwotni autorzy będą chcieli aby go usunąć. jeszcze raz dziękuję i przepraszam za opuszczenie tematu na tak długo. pozdrawiam Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sminer Opublikowano 21 Listopada 2011 Udostępnij Opublikowano 21 Listopada 2011 Mozesz zrobic tez cos takiego GML pytanie = show_message_ext('Witaj','Siemka','Witaj jestem Mariusz','Nara'); switch (pytanie) { case 1: { pytanie2 = show_message_ext('Co u Cb?','Dobrze','Njapierw powiedz co u Cb','A po co ci to??'); } { case 2: { pytanie3 = show_message_ext('Ja jestem Adam, co u Cb slychac??','Dobrze','Njapierw powiedz co u Cb','A po co ci to??'); } } { case 3: { spier***** } } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
sagi Opublikowano 22 Listopada 2011 Autor Udostępnij Opublikowano 22 Listopada 2011 też pomyślałem o wykorzystaniu tego okienka, ale już zrozumiałem działanie tamtego skryptu więc zostane przy nim, po za tym mam już go użytego w 6 room'ach więc nie chciałbym teraz wszystkiego zmieniać, ale dziękuję za Twoją odpowiedź. pozdrawiam 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ę