Start Info Community Spielen
 
 

Morgengrauner Dokumentation

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

InformDefend()
**************


FUNKTION
========

   void InformDefend(object enemy);


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

   /std/living/combat.c


ARGUMENTE
=========

   enemy
      Der Feind, der ein zu verteidigendes Lebewesen angegriffen hat.


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

   Es ist moeglich, dass Objekte ueber Angriffe auf Lebewesen
   informiert werden, sofern diese Objekte bei dem angegriffenen
   Lebewesen mittels AddDefender() angemeldet wurden und sich der
   selben Umgebung befinden. Zumeist wird es sich bei den Objekten
   natuerlich ebenfalls um andere Lebewesen handeln, die das
   Lebewesen, bei dem sie angemeldet sind, verteidigen sollen. Bei
   einem Angriff auf das Lebewesen werden alle Objekte per Aufruf von
   InformDefend() darueber informiert, wobei der Angreifer als
   Parameter uebergeben wird. Standardmaessig ist diese Funktion in
   Lebewesen bereits definiert, wobei der Skill SK_INFORM_DEFEND,
   sofern vorhanden, aufgerufen wird.


BEISPIEL
========

   Sehr beliebt sind in Gilden NPCs, die den Beschwoerer begleiten und
   verteidigen, z.B. beschworene Daemonen:

   inherit "/std/npc";

   #include 

   object owner;

   protected void create()
   {
     ::create();
     SetProp(P_NAME,"Daemon");
     ...
   }

   // nach Clonen des Daemons folgende Funktion mit Beschwoerer als
   // Parameter aufrufen

   void Identify(object caster)
   {
     if(!objectp(caster))
       call_out(#'remove,0);
     owner=caster;
     owner->AddDefender(this_object());
   }

   // folgende Funktion wird automatisch aufgerufen, wenn der
   // Beschwoerer angegriffen wird

   public void InformDefend(object enemy)
   {
     if(!IsEnemy(enemy)&&enemy!=owner)
       Kill(enemy);
   }

   Soll der Daemon sich auch in ein Team einordnen, in welchem sich der
   Beschwoerer eventuell befindet, so ist zusaetzlich AssocMember() in
   diesem Beschwoerer aufzurufen, wobei der Daemon als Parameter
   uebergeben wird.


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


AddDefender(), RemoveDefender(), QueryDefenders(), QueryPresentDefenders(), QueryNearDefenders(), DefendOther(), *../props/P_DEFENDER*, /std/living/combat.c

Letzte Aenderung: 28.10.2022, Bugfix


zurück zur Übersicht

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