Jesteś tutaj
Bardzo podstawowe zasady skryptowania
Hej.
Postaram sie tutaj omowic pare najwazniejszych i najprzydatniejszych polecen, ktorych uzywa sie, tworzac skrypty.
I. Aliasy - alias jest - zazwyczaj krotka i intuicyjna - komenda uzywana jako subtutyt jednego, lub paru polecen wysylanych do muda badz wykorzystywanych w srodowisku lokalnym.
/alias {badz_chamem} {pierdnij;beknij;zbeltaj sie}
Gdy zastosujemy taka definicje i wpiszemy 'badz_chamem' podczas gry, nasza postac pierdnie, beknie i zbelta sie w jednej chwili.
2. Actiony - action to grupa polecen wylowywanych po hasle-spuscie nadchodzacym z muda.
/action {Kuling usmiecha sie do ciebie.} {zarumien sie}
Teraz, gdy Kuling sie do nas usmiechnie, nasza postac obleje sie rumiencem.
Dodatkowo, w tekscie wywolujacym dzialania mozna stosowac znaczek ^ (gdy mamy na mysli tylko poczatek linii).
3. Makra - makro to przypisanie pod okreslony przycisk na klawiaturze grupy polecen.
/macro {f1} {usmiechnij sie}
Teraz po nacisnieciu F1 nasza postac usmiechnie sie.
4. Podswietlenia - proste kolorowanie okreslonego slowa.
/highlight {mutant} {red, back magenta} {}
Gdy z muda przyjdzie slowo 'mutant', klient pokoloruje je na czerwono z fioletowo-rozowym tlem.
5. Substytuty - zamienianie przychodzacego z muda slowo na inne.
/substitute {ogr} {ogier}
Gdy nadejdzie haslo 'Gruby wielgachny ogr przybywa', my zobaczymy 'Gruby wielgachny ogier przybywa'.
6. Zmienne - zmienne to podstawowe nosniki pojedynczych informacji w naszym jezyku skryptowym. Moga one przybierac rozne typy tekstowe i liczbowe.
/var {vTekst} {Jestem glupi.}
/alias {#tekst} {'$vTekst}
Po wpisaniu #tekst nasza postac wypowie wartosc zmiennej vTekst. Gdy odwolujemy sie do wczesniej zdefiniowanej zmiennej stawiamy znaczek dolara ($) przed jej nazwa, a gdy tworzymy ja dynamicznie - na potrzebe jednorazowego aliasa - znaczek procenta (%):
/action {Kuling mowi: %0} {'Kuling powiedzial: $0}
Postac powtorzy zdanie za Kulingiem.
7. Bloki warunkowe if - ify sprawdzaja jakis warunek i w przypadku jego poprawnosci/niepoprawnosci stosuja zdefiniowane dzialania.
/alias {#opcje} {/if {$vOpcje=0} {/var {vOpcje} {1}} {/var {vOpcje} {0}}}
Teraz, gdy wpiszemy #opcje, a zmienna vOpcje bedzie rowna 0, ustawimy ja na 1, a gdy 1 - na 0.
8. Funkcje - funkcje to predefiniowane na poziomie kompilatora procedury, przypisujace swoj wynik pod podana zmienna. Takich funkcji w MudMasterze jest naprawde bardzo duzo, a help do nich znalezc mozna miedzy innymi na stronie arkdisku. Pokaze tylko przyklad --
/var {vWynik} {0}
/alias {dodaj 2 i 2} {/math $vWynik {2+2};/showme {$vWynik}}
Po wpisaniu 'dodaj 2 i 2', na ekranie wyswietli sie nam '4' jako skutek akcji wykonanych przez funkcje /math.
9. Procedury - procedury sa bardzo podobne do funkcji z ta znaczaca roznica, ze swoich wynikow nie wpisuja do zmiennej --
/alias {dodaj 2 i 2} {/showme {@Math(2+2)}}
Rezultat wpisania 'dodaj 2 i 2' tym razem bedzie identyczny jak w przykladzie powyzszym, tyle ze wynik bezposrednio zostanie umiejscowiony w /showme bez angazowania zmiennych.
---
PS. Chcialbym zaznaczyc, ze jest to zdrowa alfa. Mam zamiar dodac jeszcze petle, listy, tabele (z wykorzystaniem qarra) i podstawy zabawy z okienkami. Czekam na opinie i/lub propozycje na nastepne punkty.
- 802 odsłony

Bardzo podstawowe zasady skryptowania
10. Petla loop jest bardzo fajnym i przejrzystym rozwiazaniem, jezeli musimy wykonac pare(-nascie/-dziesiat) takich samych czynnosci rozniacych sie jedynie wartoscia liczbowa parametru.
/loop {1,10} {'$LoopCount}
Przy takim zastosowaniu petli, nasza postac policzy na glos od jeden do dziesieciu. Owe '1,10' to przedzial liczbowy, a zmienna LoopCount przybiera wartosc odpowiadajaca numerowi powtorzenia komendy. Mozna tez liczyc od dziesieciu do jednego:
/loop {10,1} {'Zostalo Ci jeszcze $LoopCount sekund zycia, punk! :-)}
11. Petla while jest petla wykonujaca zdefiniowany zbior komend tak dlugo, jak podany warunek jest prawdziwy.
/var {vNumer} {0}
/while {$vNumer<10} {/showme {Jestem madry};/math {$vNumer} {$vNumer+1}}
Teraz skrypt bedzie wypisywal na ekranie 'Jestem madry' i dodawal jeden do vNumer tak dlugo, jak ta zmienna bedzie mniejsza niz 10.
12. Gag jest sposobem na ignorowanie okreslonych wiadomosci przychodzacych z muda, lub ich obrobka bez angazowania trybu wyswietlania.
/gag {Kuling mowi: %0}
Teraz nie zobaczymy ani jednej wypowiedzi Kulinga. Jest to pewna forma kill-file'a :) Oczywiscie cala rzecz moze miec zastosowania bardziej praktyczne - np. chcemy wyciagnac z 'odmien %0' celownik odmienianego obiektu; uznajemy jednak, ze gracz nie musi miec spamowany ekran tabelami z odmiana, wiec robimy gaga na 'Mianownik: %0' i inne przypadki; gracz nie widzi tej odmiany, ale informacje z niej wciaz moga byc pobierane przez inne skrypty.
13. Tablice sa nosnikami informacji przydatnymi, gdy chcemy - dajmy na to - do jednej wartosci przypisac druga. Co to znaczy? Pokaze to na przykladzie - mamy licznik zabitych; zabijamy istote; bierzemy jej nazwe (np. 'krasnolud'); dopisujemy do tablicy; do niej przypisujemy liczbe ile razy ja juz zabilismy - na razie 1; zabijamy ja ponownie; nie dopisujemy jej nazwy, a jedynie wspomniana wczesniej liczbe powiekszamy o 1. Tablica ma swoje wiersze (w naszym przypadku liczba wszystkich kreatur, ktore zabilismy) i kolumny (liczba rzeczy, ktore chcemy przypisac do pierwszej wartosci - w naszym przypadku dwie).
/array {LicznikZabitych} {10,2}
Tworzy sie tablica o nazwie LicznikZabitych z dziesioma wierszami (tyle trupow chcemy trzymac w pamieci) i dwiema kolumnami (jedna na nazwe kreatury, druga na liczbe zabic). Tak to wyglada:
Nazwa Licznik
Krasnolud 1
Mandrek 10
Kuling 2
Rythin 666
Elf 15
Mutant 4
A teraz zabilismy krasnoluda i chcemy sobie zwiekszyc liczniczek na dwa fragi :)
/assign {LicznikZabitych} {1,2} {2}
1 to wiersz, pierwsze 2 to kolumna, a drugie 2 licznik.