Start Info Community Spielen
 
 

Morgengrauner Dokumentation

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

RegisterHelperNPC()
*******************


FUNKTION
========

   public int RegisterHelperNPC(object npc, int flags);


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

   /std/player/combat.c
   /sys/living/combat.h


ARGUMENTE
=========

   object npc
     Objekt des helfenden NPC, der angemeldet werden soll.

   int flags
     ver-oder-te Konstanten, die die Art des Helfer-NPC beschreiben (s.u.)


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

   Mit dieser Funktion wird ein einem Spieler helfender NPC im Spieler
   angemeldet. Hierdurch kann spaeter herausgefunden werden, welche NPC
   einem Spieler helfen und ggf. den von diesen verursachten Schaden im
   Kampf dem Spieler zuzurechnen.

   Die Flags sind eine der folgenden Konstanten oder eine beliebige durch
   ver-oder-ung gebildete Kombination.

   Momentan gibt es 2 Klassen von Helfer-NPC:
   + GUILD_HELPER: der Helfer-NPC ist ein Gilden-NPC
   + MISC_HELPER:  der Helfer-NPC ist irgendein NPC, der nicht zu einer Gilde
                   gehoert.

   Zusaetzlich zu den Klassen gibt es noch weitere Flags, die etwas ueber
   den Helfer-NPC sagen:

   + EXCLUSIVE_HELPER: dieser Helfer-NPC duldet keinen weiteren NPC der
                       gleichen Klasse.
   + ACTIVE_HELPER: ist dieses Flag gesetzt, ist der NPC mehr als nur reiner
                    Schlagfaenger.

   Wird EXCLUSIVE_HELPER gesetzt und es ist in der gleichen Klasse schon ein
   NPC angemeldet, schlaegt die Registrierung fehl.
   Ist in der gleichen Klasse bereits ein NPC mit EXCLUSIVE_HELPER
   angemeldet, schlaegt die Registierung ebenfalls fehl, auch wenn der neue
   NPC kein EXCLUSIVE_HELPER setzt.


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

   1, wenn die Registrierung erfolgreich war.
   0 sonst. In diesem Fall darf der NPC dem Spieler NICHT helfen, weder
     passiv (Schlagfaenger), noch aktiv.


BEMERKUNGEN
===========

   Diese Funktion setzt bei der Erfolg die Property P_HELPER_NPC in 
   auf passende Werte.
   Bitte auf gar keinen Fall die numerischen Werte der Konstanten fuer
    nutzen, diese koennen sich jederzeit aendern.


BEISPIELE
=========

   1. Ein nicht-exklusiver Gilden-NPC, der dem Spieler folgt.
   if (spieler->RegisterHelperNPC(this_object(), GUILD_HELPER) == 1) {
     move(environment(spieler), M_GO);
     spieler->AddPursuer(this_object());
     // meldung ausgebene...
   }

   2a. Ein exklusiver Nicht-Gilden-NPC
   if (spieler->RegisterHelperNPC(this_object(),
                                  MISC_HELPER|EXCLUSIVE_HELPER) == 1) {
     move(environment(spieler), M_GO);
   }

   2b. Ein nicht-exklusiver Nicht-Gilde-NPC, der nach 2a. kommt.
   if (spieler->RegisterHelperNPC(this_object(), MISC_HELPER) == 1) {
     // ... wenn der NPC aus 2a noch existiert, trifft dies hier nie zu.
   }

   3. Ein exklusiver NPC, der weitere Gilden- und sonstige NPC ausschliesst
      (Solche Kombination bitte mit der Gilden-Balance abstimmen.)
   if (spieler->RegisterHelperNPC(this_object(),
                          MISC_HELPER|GUILD_HELPER|EXCLUSIVE_HELPER) == 1) {
     move(environment(spieler), M_GO);
   }

   4. Die Registrierung ohne Klasse schlaegt fehl, z.B.:
     spieler->RegisterHelperNPC(this_object(), 0);
     spieler->RegisterHelperNPC(this_object(), EXCLUSIVE_HELPER);


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


UnregisterHelperNPC() P_HELPER_NPC


zurück zur Übersicht

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