MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 1 | Version 2.0 des Sequencers von Don Rumata 2.7.93 |
| 2 | |
| 3 | Manchmal soll ein NPC (Monster) eine Serie von Taetigkeiten |
| 4 | hintereinander weg ausgefuerht werden. Dieses kann man |
| 5 | mit diesem Mudul relativ einfach realisieren. |
| 6 | |
| 7 | Folgende Ereignisse koennen eine Sequenz ausloesen: |
| 8 | |
| 9 | TellEvent: Es wird etwas in dem Raum, in dem der npc sich |
| 10 | befindet, gesagt. |
| 11 | GiveEvent: Es wird dem npc etwas gegeben. |
| 12 | |
| 13 | Weitere Ereignisse koennen durch den Befehl Load() selber |
| 14 | programmiert werden. |
| 15 | |
| 16 | Wie sieht ein Programm aus? |
| 17 | |
| 18 | Ein Programm ist eine Liste von Befehlen. |
| 19 | Jeder Befehl ist eine Liste, bestehend aus einem Kommando |
| 20 | und einer Zahl. |
| 21 | Das Kommendo wird aehnlich der Befehle, die ein Spieler ein- |
| 22 | gibt ausgefuehrt. |
| 23 | Vorsicht: NPCs koennen nur einen Teil der Befehle, die ein |
| 24 | Spieler kann, dafuer aber immer 'echo' und 'emote'. |
| 25 | Die Zahl gibt die Anzahl der Sekunden an, in der der naechste |
| 26 | Befehl ausgefuehrt wird. |
| 27 | |
| 28 | Folgende Funktionen sind im Modul implementiert: |
| 29 | |
| 30 | Vorbereiten von Funktionen, die eine Sequenz ausloesen: |
| 31 | |
| 32 | RegisterTell( funktion, programm ) |
| 33 | Wenn dem npc etwas gesagt wird, so wird die gesagte Meldung |
| 34 | an die Funktion uebergeben. Gibt die Funktionen nicht 0 |
| 35 | zurueck, wird das Programm gestartet. |
| 36 | |
| 37 | RegisterGive( funktion, programm ) |
| 38 | Wird dem npc etwas gegeben, so wird das Objekt an die |
| 39 | Funktion uebergeben. Gibt die Funktion nicht 0 zurueck, so |
| 40 | wird das Programm gestartet. |
| 41 | |
| 42 | Load( programm ) |
| 43 | Starte das angegebene Programm. |
| 44 | |
| 45 | Anederungen an bestehenden Std-Funktionen: |
| 46 | |
| 47 | give_notify() gibt eine 1 zurueck, wenn das Objekt akzeptiert |
| 48 | wurde. (Es muss - falls gewuenscht - dann von Hand zuruech- |
| 49 | gegeben werden. (give_obj(ob,this_player())) in dieser |
| 50 | Funktion. |
| 51 | |
| 52 | Mittels add_action() kann man im create() des NPCs eigene |
| 53 | Verben fuer den NPC einfuehren. |
| 54 | |
| 55 | Es kann immer nur eine Funktion (egal ob via Tell, Give oder Load) angemeldet |
| 56 | sein. Es kann immer nur ein Programm gleichzeitig laufen. |
| 57 | |
| 58 | Ideen und Bugreports an Rumata |