f·010418·1

Entwicklung Comm-Events

18. Apr 2001, 19:47:12
Feature
DoneFiona
Siehe auch:f·010418·2,  f·010321·2,  f·010207,  f·010418·3,  b·000919,  f·010515,  f·010518,  b·010115,  f·010227·2

HR Image

Umstellen der Kommunikation komplett auf Events. Dabei Vereinheitlichung
von Npcs und Spielern sowie der Bedienung der Verben, Verwaltung der
Adverbien usw.

Moeglichkeiten der Ereignisbeeinflussung:

 o Adverbien einfuegen bzw fest vorgeben
 o Lautaeusserungen verhindern
   - komplett nur Meldung an Spieler
   - Meldung an Spieler und andere Anwesende
 o Sprachtexte modifizieren
 o Reaktionen auf Gespraeche allgemein

Das Ereignis ET_COMM (#include <living/comm.h>):
 E_COMM_VERB
 E_COMM_FLAGS
                C_LEADING_VIC      Opferreferenz mit '>' erlaubt
                C_VIC_NEEDED       Opferreferenz benoetigt
                C_VIC_ALLOWED      Opferreferenz erlaubt
                C_DOTTED_ADV       Adjektiv mit ":: " erlaubt
                C_ADV_ALLOWED      Adjektiv erlaubt
                C_SVIC_ALLOWED     Spezialopfer zB "." erlaubt
                C_REMOTE_VIC       Opfer in der Ferne erlaubt
                C_ALLOW_ALL        'alle' als Opfer erlaubt
                C_ALLOW_INTER      Intermudopfer erlaubt
                C_NO_OTHER_TXT     Keinen Text an andere anhaengen

                C_ME_WIZ           Aktor ist Magier
                C_IS_REMOTE        Ereignis ist nicht raumbasiert
                C_IS_INTER         Intermudopfer
                C_ME_GHOST         Aktor ist Geist
                C_ALL              Opfer ist 'alle'
                C_FROM_INTER       Das Ereignis stammt aus dem Intermud

 E_ACTOR
 E_COMM_VICTIM
 E_COMM_TEXT     ({ C_TEXT_ADVERB,
                    C_TEXT_SELF, C_TEXT_OTHER,
                    C_PRE_SELF,  C_PRE_VICT,  C_PRE_OTHER })

Funktionen:
===========

* varargs int Message(string msg, string myverb)
  Funktion muss erhalten bleiben, da ggf von Objekten benutzt (pruefen!).
  Fuer ein besseres Ignore-System braucht man jedoch mehr Infos als nur
  myverb. Und zwar sind der Name des Aktors, der Name der Aktion sowie
  ggf der generelle Name zu uebergeben. Letzterer fuer generische Sachen
  wie 'ignoriere herzquest' oder so.
  Das 2. Argument sollte also in ein Array aus 3 Strings gewandelt werden.

* static int check_deaf(object ob)
  Wird das wirklich benutzt? Sollte durch cannothear ersetzt werden!

* public int AddCommHook(object ob, mixed fun, int meth)
* public int RemoveCommHook(object ob)
  Sollte wegfallen, wird es benutzt? Dann Ummapper schreiben.

Verben:
=======

  sag[e]                [adv::]    <text>               "sage"
  sag[e]       > <wem>  [adv::]    <text>               "sage"
  '                     [adv::]    <text>               "sage"
  >              <wem>  [adv::]    <text>               "sage"
  ruf[e]                [adv::]    <text>               "rufe
  ruf[e]       > <wem>  [adv::]    <text>               "rufe
  mruf[e]               [adv::]    <text>               "mrufe
  erzaehl[e]     <wem>  [adv::]    <text>  (wem [.*])   "erzaehle"
  teil[e]        <wem>  [adv]  mit <text>  (wem [.*])   "erzaehle"
  teil[e]        <wem> mit [adv::] <text>  (wem [.*])   "erzaehle"
  erzaehl[e] ?                                          <kein Event>
  teil[e] ? mit                                         <kein Event>
  fluester[e] zu <wem>  [adv::]    <text>               "fluestere"
  fluester[e]    <wem>  [adv]   zu <text>               "fluestere"
  fluester[e]  > <wem>  [adv::]    <text>               "fluestere"
  fluester[e]           [adv::]    <text>               "fluestere"
  antworte       [wem]  [adv::]    <text>               "antworte"
  frag[e]        [wen]  [adv::]    <text>               "frage"

  gespraech  -> wird zu 'sage' oder 'erzaehle' je nach Situation

  emote                                                 "emote"
  :                                                     "emote"
  gemote                                                "gemote"
  ;                                                     "gemote"
  illusion                                              "illusion"
  .                                                     "illusion"

  kobold
  ignoriere
  oropax

Das '>' muss immer direkt vor dem Namen stehen, also '>fiona'.

Start » Magierhandbuch » Todo » f·010418·1 Letzte Generierung: 06.12.2002, 12:54
Email an: mud@wl.mud.de
Valid HTML 4.01!