Lekcja 2 - Zmienne i instrukcje warunkowe w EUO.
Dzisiaj na tapecie będ± instrukcje warunkowe, zmienne i proste skrypty z tym związane. Proszę również o przyjrzenie się drzewu zmiennych po prawej stronie okna EUO.
W EasyUO występuje wiele typów zmiennych przeważnie używa się tylko dwóch. Zmienne zaczynaj±ce się od znaku # są to zmienne zdefiniowane przez EasyUO i właśnie je mamy w tym drzewku z prawej strony. Drugi typ to zmienne utworzone przez użytkownika, zaczynają się one od znaku %.
A czym są ów zmienne? Są to tak jakby pojemniki przechowujące dla nas pewną liczbę lub wyraz którą bedziemy potrzebowali gdzieś w skrypcie. Każdy z tych pojemników ma swoją nazwę. I tak dla przykładu zmienna (pojemnik) w której jest przechowywana aktualna ilość hp postaci ma nazwę #HITS i przez taką właśnie nazwę będziemy się do niej odwoływali w skrypcie. No dobrze teoria była teraz poprzyjmy praktyką.
event SysMessage Moje staty: #STR , / , #DEX / #INT
halt
Zmienne do niczego nie mogą przylegać (widać po zmianie ich koloru w oknie EUO) dlatego jak chcemy wyświetlić zawartość jakiejś zmiennej bez odstępów należy użyć znaku specjalnego ',' (przecinek) który połączy oba ciągi znaków. Uwaga! kropka tez jest znakiem specjalnym, ale nim zajmiemy się kiedy indziej.
Jeżeli chcemy zmodyfikować zmienną, lub ją stworzyć trzeba użyć komendy set zmienna tekst. Szybki przykładzik który sami będziecie musieli przeanalizować i wyciągnąć z niego wnioski.
set %ala 3
event SysMessage Zmienna % , ala przechowuje: %ala ;wyswietli 3
set %ala 3 + 1
event SysMessage Zmienna % , ala przechowuje: %ala ;wyswietli 4
set %ala %ala + 2
event SysMessage Zmienna % , ala przechowuje: %ala ;wyswietli 6 (wczesniej w ala bylo 4)
set %sila #STR
event SysMessage Zmienna % , sila przechowuje: %sila ;wyswietli twoja sile
set %sila #STR + 2
event SysMessage Zmienna % , sila przechowuje: %sila ;wyswietli twoja sile zwiekszona o 2
set %tekst ala_ma_kota ;JEDNO SLOWO
event SysMessage Zmienna % , tekst przechowuje: %tekst ;wyswietli tekst
halt
Teraz gdy w miarę potrafimy posługiwać się zmiennymi, czas na instrukcje warunkowe, a konkretnie instrukcje if warunek { komendy } else { komendy }. Szybki przykładzik, a zarazem użyteczny skrypt na automatyczne leczenie jeśli zejdzie życie poniżej danego pułapu.
set %hp 30 ;jeżeli poniżej 30hp to ma leczyć
if #HITS < %hp
{
event SysMessage Malo zycia zaczynam leczenie
event macro 58 ;bandage self
wait 3s
}
Co robi skrypt? Zapisuje do zmiennej %hp daną wartość życia przy której skrypt ma rozpocz±ć leczenie. Następnie porównuje aktualną ilość HP z tą przez nas podaną i jeżeli ta pierwsza jest mniejsza (inne operatory do porównywania można znaleźć tutaj:
dokumentacja: Operatory porównawcze) to wchodzi w nawias klamrowy, wykonuje z niego polecenia, a następnie wychodzi z niego i wykonuje resztę poleceń dalej (w naszym przypadku nie ma innych poleceń, nie ma też halt więc przeskoczy do początku skryptu). Jeśli ilość HP jest większa niż w zmiennej %hp wtedy skrypt zignoruje komendy w nawiasie klamrowym (ominie je i będzie chciał odrazu wykonywać komendy za nawiasem).
else { } nie trzeba używać jak nie jest potrzebne, a używane jest jako odwrotność
jeżeli warunek to { wykonaj coś } w innym przypadku { wykonaj coś innego }. Na koniec tylko pokażę gdzie można by umieścić else.
set %hp 30 ;jeżeli poniżej 30hp to ma leczyć
if #HITS < %hp
{
event SysMessage Malo zycia zaczynam leczenie
event macro 58 ;bandage self
wait 3s
}
else
{
;jakieś komendy
}
Na dzisiaj koniec. Spróbujcie sami napisać jakieś skrypty z if'em. Np. mag mógłby napisać skrypt, który sam będzie blessował go (pomyślcie jak to napisać).