Przejdź do treści
Logo

kuling.pl

  • Główna
  • Arkdisk
  • Forum
  • Kontakt

Jesteś tutaj

Start » Forum » MudMaster » Skrypty

Bardzo podstawowe zasady skryptowania

published by R. on czw., 2004-07-29 17:16

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.

Forum: 
Skrypty
  • 802 odsłony

Bardzo podstawowe zasady skryptowania

Adres Submitted by R. on pt., 2004-07-30 11:39.

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.

Archiwum

  • Kwiecień 2012 (1)
  • Marzec 2012 (1)
  • luty 2012 (1)
  • Styczeń 2012 (7)
  • Grudzień 2011 (2)
  • Listopad 2011 (2)
  • Październik 2011 (2)
  • Wrzesień 2011 (3)
  • Sierpień 2011 (2)
  • Lipiec 2011 (3)
  • Czerwiec 2011 (1)
  • Kwiecień 2011 (4)
  • luty 2011 (1)
  • Styczeń 2011 (2)
  • Listopad 2010 (6)
  • Październik 2010 (5)
  • Sierpień 2010 (10)
  • Lipiec 2010 (3)
  • Czerwiec 2010 (2)
  • Maj 2010 (1)
  • Kwiecień 2010 (2)
  • luty 2010 (4)
  • Styczeń 2010 (5)
  • Grudzień 2009 (5)
  • Listopad 2009 (1)
  • Październik 2009 (4)
  • Wrzesień 2009 (6)
  • Sierpień 2009 (11)
  • Lipiec 2009 (23)
  • Czerwiec 2009 (14)
  • Maj 2009 (23)
  • Kwiecień 2009 (22)
  • Marzec 2009 (14)
  • luty 2009 (20)
  • Styczeń 2009 (14)
  • Grudzień 2008 (17)
  • Listopad 2008 (12)
  • Październik 2008 (10)
  • Wrzesień 2008 (4)
  • Lipiec 2008 (2)
  • Czerwiec 2008 (5)
  • Maj 2008 (5)
  • Kwiecień 2008 (9)
  • Marzec 2008 (9)
  • luty 2008 (30)
  • Styczeń 2008 (22)
  • Grudzień 2007 (15)
  • Listopad 2007 (19)
  • Październik 2007 (10)
  • Wrzesień 2007 (22)
  • Sierpień 2007 (21)
  • Lipiec 2007 (29)
  • Czerwiec 2007 (53)
  • Maj 2007 (61)
  • Kwiecień 2007 (14)
  • Marzec 2007 (5)
  • luty 2007 (4)
  • Styczeń 2007 (16)
  • Grudzień 2006 (69)
  • Listopad 2006 (15)
  • Wrzesień 2006 (25)
  • Sierpień 2006 (20)
  • Lipiec 2006 (10)
  • Czerwiec 2006 (10)
  • Maj 2006 (35)
  • Kwiecień 2006 (5)
  • Marzec 2006 (15)
  • luty 2006 (5)
  • Grudzień 2005 (10)
  • Listopad 2005 (15)
  • Sierpień 2005 (10)
  • Lipiec 2005 (20)
  • Czerwiec 2005 (30)
  • Maj 2005 (30)
  • Kwiecień 2005 (34)
  • Marzec 2005 (14)
  • luty 2005 (10)
  • Grudzień 2004 (30)
  • Listopad 2004 (48)
  • Październik 2004 (25)
  • Sierpień 2004 (18)
  • Lipiec 2004 (30)

Kategorie

  • Angielski (1)
    • FCE (0)
  • Dom (4)
    • Akwarium (3)
    • Kot (2)
  • Gry (11)
    • Counter Strike (8)
  • Informatyka (15)
    • Hardware (15)
      • Mój komputer (14)
    • Linux (0)
    • Programowanie (175)
      • C++ (134)
        • Concurrency (66)
        • Exceptions (14)
        • Templates (21)
      • Narzędzia (10)
        • Visual Studio 2003 (21)
        • Visual Studio 2005 (45)
        • Visual Studio 2008 (33)
        • Visual Studio 2010 (13)
      • PHP (9)
    • Windows (18)
  • Internet (10)
    • Drupal (18)
    • Linki (29)
  • Miejsca (2)
    • Poznań (3)
    • Sieradz (1)
    • Wrocław (12)
    • Zgorzelec (0)
  • Pieniądze (122)
    • Giełda (47)
    • Inwestowanie (66)
    • Mieszkanie (69)
  • Rodzina (14)
    • Magda (1)
  • Rozrywka (66)

Logowanie

  • Utwórz nowe konto
  • Prześlij nowe hasło
Theme provided by Danetsoft under GPL license from Danang Probo Sayekti