Start Info Community Spielen
 
 

Morgengrauner Dokumentation

Dateipfad: /home/mud/mudlib/doc//lfun/TestIgnore

TestIgnore()
************


FUNKTION
========

   public int TestIgnore(string|string* arg)


DEFINIERT IN
============

   /std/player/comm.c


ARGUMENTE
=========

   arg
       String oder Array von Strings, die getestet werden sollen,
       Format jeweils: [spieler].aktion[.qualifizierer]


RUeCKGABEWERT
=============

   0, wenn arg nicht ignoriert wird
   MSG_IGNORED, wenn (min. ein Element von) arg ignoriert wird


BESCHREIBUNG
============

   Es wird geprueft, ob der Spieler irgendeinen Eintrag auf seiner Liste
   hat, der dazu fuehrt, dass  ignoriert wird. Hierbei kommen je nach
   den Angaben in  folgende Regeln zum Tragen:
   1) spieler
      Wird der Spieler ignoriert?
   2) .aktion
      Ignoriert der Spieler .aktion, d.h. die Aktion komplett (OHNE
      Qualifizierer)?
   3) spieler.aktion
      Ignoriert der Spieler spieler, .aktion oder spieler.aktion?
   4) spieler.aktion.qualifizierer
      Ignoriert der Spieler spieler, .aktion, spieler.aktion oder
      spieler.aktion.qualifizierer?
   5) .aktion.qualifizierer
      Ignoriert der Spieler .aktion oder .aktion.qualifizierer?

   Da TestIgnore() damit durchaus etwas aufwendiger sein kann, sollte
   man dies nicht unnoetig oft aufrufen. (Braucht man das Ergebnis z.B.
   kurz spaeter nochmal, koennte man das Ergebnis speichern.) Wird der
   Qualifizierer nicht gebraucht, sollte man ihn weglassen.


BEISPIEL
========

   if (!this_player()->TestIgnore("andy"))
     tell_object(this_player(), "Andy teilt Dir mit: Hallo!\n");

   // Beispiel fuer eine Ignore-Check fuer Aktion (kratzen) fuer einen
   // Spieler (this_player()) an einem anderen Spieler (target)
   if (!target->TestIgnore( ({getuid(this_player()) + ".kratze",
                                 getuid(this_player()) + ".kratz"}) ))
   {
     tell_object(target, this_player()->Name()+" kratzt dich.\n");
     tell_object(this_player(), "Du kratzt "+target->Name()+".\n");
   }
   else
     tell_object(this_player(), target->Name()+" ignoriert dich.\n");

   // allumfassender Ignorier-Check in einer Gilde (Klerus) auf
   // eine Aktion (kurieren) fuer einen bestimmten Spieler (den caster)
   // an einem zu kurierenden Spieler (target)
   if (target->TestIgnore(getuid(caster)+".kuriere.klerus"))
     tell_object(caster, break_string(
       target->Name()+" ignoriert deinen Versuch.", 78));


SIEHE AUCH
==========


P_IGNORE, AddIgnore, RemoveIgnore, TestIgnoreSimple, /std/player/comm.c

26.04.2014 Zesstra


zurück zur Übersicht

YOUTUBE | FACEBOOK | TWITTER | DISCORD | FEEDBACK | IMPRESSUM | DATENSCHUTZ 1992–2023 © MorgenGrauen.