Tytuł: Warunki, oraz ich rodzaje w zdarzeniu.
Opracował: Reptile
Email:
reptile@o2.pl
Słowo wstępne od autora
Warunki to swego rodzaju systemy sprawdzające założenia twórcy. Jest to jedno z poleceń, które można wykorzystać przy tworzeniu różnego rodzaju
questów, łamigłówek, mini gierek. Niestety, tworzenie warunków zazwyczaj wiąże się to z dodatkową pracą, określeniem dwóch ścieżek:
co się stanie, jeżeli warunek się spełni, oraz co się stanie, jeżeli warunek się nie spełni.
~Reptile
Opanowanie warunków jest proste, a przy tym bardzo przydatne, gdyż otwiera szereg możliwości w tworzeniu gry. Można tworzyć wiele ciekawych questów, zagadek,
skomplikowanych zadań, w połączeniu z przełącznikami i ze zmiennymi.
Czym jest warunek? Najprościej można powiedzieć, że to jest pewien mechanizm, który sprawdza czy konkretne czynniki są spełnione.
Definiowanie, czym jest warunek, może kazać się nieco skomplikowane, ale w codziennym życiu mamy pełno przykładów
(zazwyczaj warunek raczej kojarzy się nie za przyjemnie, ale postarajmy się wyobrazić sobie nieco przyjemniejszą sytuację).
W programie można wyróżnić kilka warunków, najwięcej jest ich przy tworzeniu zdarzenia:
1)
Warunek zdarzenia - aby zdarzenie pojawiło się na mapie, muszą zaistnieć pewne czynniki (warunki). Jeżeli nic nie jest zaznaczone,
to zdarzenie ZAWSZE będzie pokazane na mapie, ale można zrobić zdarzenie, jak np. specjalna skrzynka, która będzie widoczna, jeżeli
bohater będzie miał specjalny przedmiot do wykrywania skarbów. Bez tego przedmiotu bohater nie znajdzie skrzynki (bo się nie wyświetli).
2)
Warunek startu (zdarzenia) - metoda uruchomienia zdarzenia, domyślnie ustawiona jest na Naciśnięcie przycisku. Więcej na ten temat można
znaleźć w rozdziale
Stawianie zdarzeń w kompendium.
3)
Ustaw warunek (w poleceniach zdarzenia) - opcja sprawdzająca założenia, czy bohater wykonał zadanie, czy ten określony przez nas współczynnik
jest spełniony czy też nie. Jeżeli jest spełniony, to trzeba w programie ustalić, co się dzieje dalej. Jeżeli nie jest spełniony,
to w zasadzie też trzeba ustalić, co się stanie w takim przypadku.
4)
Warunek podczas walki - praktycznie to samo, co wyżej, tyle że odnosi się to do walki (Baza danych >> horda). Można ustalić warunek
taki, że np. minęło 5 tur i walka się kończy.
Dokładniej chciałbym omówić trzeci przypadek, gdzie ustala się warunki, gdyż pierwsze dwa są w zasadzie proste to opanowania.
Może jakiś przykład z życia wzięty, może być ten (nieco zmodyfikowany) z kursu o zmiennych:
- Mamo, czy mogę wyjść z kolegami?
- Dobrze, pod warunkiem, że nazbierasz 5 jabłek.
Chyba większość osób się zetknęła z takimi samymi (albo podobnymi) sytuacjami.
Czyli [chcemy coś osiągnąć], ale żeby to osiągnąć, to [musimy coś zrobić].
W powyższym przykładzie chcemy otrzymać pozwolenie, aby spokojnie wyjść z kolegami (ba, chcemy wyjść z domu!).
To pozwolenie otrzymamy, jeżeli nazbieramy 5 jabłek. Zatem zbieramy 5 jabłek i możemy wyjść, brzmi prosto, jednak trochę jest z tym zabawy.
Jak to wygląda w programie? Pozwólcie, że opiszę krok po kroku, co należy zrobić.
1)Mama (czy inna osoba), która najpierw daje nam zadanie, najlepiej zrobić jakieś zdarzenie autostart, w którym
jest ta cała historyjka (zapytanie o pozwolenie - nie, bo masz pozbierać najpierw jabłka). Przełącznik, aby wyłączyć zdarzenie autostart.
2)Drzwi, abym mógł wyjść z domu. Musimy założyć, że są jakieś
przednie drzwi prowadzące do wyjścia z domu,
no i jakieś
boczne prowadzące do ogródka, gdzie są jabłka (bo tak będzie prościej). Zatem drzwi przednie powinny sprawdzać
czy mamy pozwolenie aby wyjść (np. czy przełącznik: pozwolenie -jest ON). Warunek pozwolenie jest ON, no to teleport
na inną mapę i cieszymy się życiem. W innym wypadku (czyli jeżeli pozwolenie jest OFF) można dać tekst
od mamy
Chopie złoty, pieronie, miałeś mi przynieść te jabłka.. Tym sposobem zablokujemy wyjście do momentu wypełnienia zadania.
3)Zdarzenia, jak powinny wyglądać jabłka:
- wiadomość: o znalazłem jabłko
- zmień zmienną: np.0001:Jabłka, dodaj, wartość: 1
- usuń zdarzenie.
Takich zdarzeń wypada zrobić 5, tak jak to było pokazane przy zmiennych.
4) Powrót do zdarzenia mamy (czy tej innej osoby), co ma dać pozwolenie.
To jest w zasadzie kilka poleceń.
Najpierw należy dać polecenie USTAW WARUNEK. Pytanie, co chcemy sprawdzić? Ano, czy bohater posiada 5 jabłek.
Ten przykład opiera się na zmiennej, dlatego sprawdzamy czy zmienna JABŁKO = 5, oraz wypada zaznaczyć opcję inny warunek, jeżeli się nie spełni.
Można zobaczyć, że program w zdarzeniu nam zrobi pewne wcięcie, gdzie w jednym pokazuje,
co ma się stać, jeżeli warunek się spełni (czyli bohater będzie miał te 5 jabłek), oraz inne (czyli jeżeli bohater będzie miał mniej jabłek lub wcale).
W zasadzie to już nie powinno być problemu, gdyż jeżeli warunek się spełni, to wystarczy dać polecenia:
-Wiadomość typu: O, dziękuję za śliczne jabłuszka
-zmień przełącznik pozwolenie-ustaw na ON
A pod warunkiem (pod tym
inne), wystarczy dać polecenie, wiadomość typu:
- wiadomość: ale najpierw pozbieraj jabłka.
Koniec, problem załatwiony.
Sumując - polecenie USTAW WARUNEK sprawdza, czy pewnego rodzaju kryteria
(jakie chcemy) są spełnione. Można sprawdzić, czy np. bohater ma jakąś ilość pieniędzy?
Albo czy ma konkretne przedmioty (w posiadaniu, albo założone na sobie), czy konkretny bohater
jest w drużynie. Warunków możliwych do ustalenia jest dość sporo, wystarczy przeszukać polecenia
dostępne na innych zakładkach. Ciekawe są warunki typu: gracz nacisnął przycisk np. góra. Co wtenczas się stanie?
Należy jednak pamiętać, że podczas warunku mamy zawsze dwa razy więcej roboty, gdyż trzeba ustalić,
co się dzieje jeżeli warunek się spełni, i co się dzieje, jeżeli nie zostanie spełniony.
Klopotliwe pytania:
1. Chcę zrobić tak, że bohater potrzebuje drewna, aby zbudować tratwę. Jak to zrobić?
Tak samo, jak to zostało podane w przykładzie z jabłkami. Zamiast jabłek dajesz po prostu drewno. Podejdziesz do kogoś, ten sprawdzi, czy masz
odpowiednie materiały, no i zrobi ci tratwę. Ale powiedzmy, że nie rozumiesz zmiennych (jak funkcjonują). Czy można to wykonać
bez zmiennych? Tak, można. Zamiast polecenia ZMIEŃ ZMIENNĄ dajesz ZMIEŃ PRZEDMIOT, gdzie dodajesz bohaterowi do
plecaka znaleziony przedmiot (w tym przykładzie będzie to drewno). Koleś, który ma zrobić dla bohatera tratwę,
sprawdza w warunku czy gracz posiada PRZEDMIOT, drewno. Jeżeli je ma, to mu buduje i już.
2. Mam warunek spełniony, ale on nie działa. Co jest grane?!
W zasadzie, TOBIE się zdaje, że jest spełniony, program to widzi nieco inaczej, dlatego jest jak jest. Jest możliwość
jakiegoś błędu, owszem, ale zazwyczaj problem leży po stronie użytkownika. Jeżeli masz w warunku zaznaczone
ustaw inne zdarzenie jeżeli warunek się nie spełni. Podejrzewam, że zostały w tym warunku użyte jakieś skomplikowane operacje,
w których po prostu twórca może się zgubić. Dla odnalezienia się możesz użyć polecenia wiadomości typu: WARUNEK SIĘ SPEŁNIŁ! Hura!,
a w tym innym dać też polecenie wiadomości typu: NIE, SORRY, YOUR PRINCESS IS IN ANOTHER CASTLE.
Oczywiście rozwiązanie takie jest do duszy, no ale jedna z tych wiadomości się wyświetli. Wydaje mi się, że
to dobry krok na rozpoczęcie wyszukiwania, w czym leży problem przy warunkach.