Zrobić pytania jest stosunkowo prosto. Ja zrobiłem zmienną global.answer którą ustalam na -1 przed zadaniem pytania i potem tworzę obiekt podobny do tego z tekstem, z tym, że posiada on 3 zmienne: pytanie, odpowiedź a i odpowiedź b. Obiekt zachowuje się trochę jak menu - strzałkami wybierasz odpowiedź, i gdy naciśniesz zatwierdzenie (enter czy tam spacja czy co tam chcesz), do zmienna global.answer ustala się na 0 lub 1 (odpowiedź 1 lub 2, albo tak lub nie). Teraz jak to działa:
W farmerze franie mam takie skrypty:
add_text('tresc'); dodaje do kolejki kolejną wiadomość
add_query('tresc','odp_a','odp_b'); zadaje pytanie
no_text(); zwraca true, jeżeli kolejka z tekstami jest pusta i nie ma obiektu ani wyświetlającego tekst, ani zadającego pytanie
Cały myk polega na tym, że w create daję zmienną step i ustalam ją na 0
w step daję tak:
if step=0
{
add_text('sdfdfs');
add_test('sadasdasd');
add_text('sasasasaa');
step=1;
}
else if step=1 and no_text()
{
add_query('Czy masz długie wąsy?','Nie mam','A jak! Do kolan!');
step=2;
}
else if step=2 and no_text()
{
if global.answer==0 {step=10;} else {step=20;}
}
else if step=10
{
...
Po kolei: najpierw dodajemy 3 teksty i zmieniamy step na 1. W step=1 kod sprawdza, czy kolejka jest już pusta i czy nie istnieje obiekt od tekstu. Jeżeli nie, to wywołuje zadanie pytania i zmienia step na 2. Po tym jak 3 tekst zostanie zdjęty z kolejki, jest ona pusta, dlatego właśnie dodatkowe sprawdzanie czy istnieje obiekt wyświetlający tekst. W step=2 czekamy aż nie będzie obiektu zadającego pytanie i wtedy przechodzimy do kroku 10 jeżeli wybrano odpowiedź pierwszą albo 20 jak drugą.
Jak widać, nie jest to takie trudne, ale siedziałem nad wymyśleniem tego i zabezpieczaniem, przed ewentualnymi błędami, spory czas.