Start Info Community Spielen
 
 

Morgengrauner Dokumentation

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

FindGroup()
***********


FUNKTION
========

   object*FindGroup(object pl,int who);


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

   /std/spellbook.c


ARGUMENTE
=========

   pl
     Lebewesen, von welchem die Freunde oder Feinde in der Umgebung
     gefunden werden sollen.
   who
     Flag, welches anzeigt, ob Freunde oder Feinde gefunden werden
     sollen (Konstanten definiert in '/sys/new_skills.h'):
       FG_ENEMIES - (Wert -1) Feinde sollen gefunden werden
       FG_FRIENDS - (Wert  1) Freunde sollen gefunden werden
       FG_ALL     - (Wert  0) alle Lebewesen sollen gefunden werden


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

   Array mit gefundenen Lebewesen


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

   Bei Spells, die sich auf mehrere Gegner auswirken oder bei denen man
   per Hand ein Opfer auswaehlen moechte, laesst sich mittels der
   Funktion FindGroup() eine Liste von Lebewesen ermitteln, welche in
   der Umgebung von  zu finden sind.
   Je nachdem, was man denn genau vorhat, kann man sich von der
   Funktion freundlich oder feindlich gesinnte Lebewesen heraussuchen
   lassen.
   Will man die freundlich gesinnten Lebewesen ermitteln, so uebergibt
   man in  die Konstante FG_FRIENDS, bei feindlich gesinnten die
   Konstante FG_ENEMIES, und wenn man alle Lebewesen bekommen moechte
   schliesslich FG_ALL.
   Bei der Auswahl gelten folgende Regeln:
     (1) Lebewesen, mit denen  im Kampf ist, sind grundsaetzlich
         feindlich gesinnt.
     (2) Teammitglieder von  sind grundsaetzlich freundlich
         gesinnt.
     (3) Spieler sind gegenueber Spielern freundlich gesinnt, NPCs
         gegenueber NPCs. NPCs kann man hierbei mit Hilfe der Property
         P_FRIEND den Spielern zuordnen.
     (4) Daraus folgt natuerlich, dass Spieler und NPCs grundsaetzlich
         eine feindliche Einstellung gegenueber haben, sofern die NPCs
         nicht die Property P_FRIEND gesetzt haben
          (was standardmaessig natuerlich nicht der Fall ist).
     (5) Netztote werden nicht erkannt.
     (6) Magier werden nicht erkannt, wenn sie unsichtbar sind.
     (7) Ein Magier wird als feindlich gesinnt nur dann erkannt, wenn
          mit ihm im Kampf ist.
     (6) Sucht man feindlich gesinnte Lebewesen, so werden die, welche
         eine von den Properties P_NO_ATTACK oder P_NO_GLOBAL_ATTACK
         gesetzt haben, nicht erkannt.
   Die Property P_FRIEND sollte man in NPCs setzen, die dem Spieler
   hilfreich beiseite stehen, z.B. vom Spieler beschworene HilfsNPCs.


BEISPIELE
=========

   Wenn man einen Feuerball nach jemandem wirft, so trifft dieser unter
   Umstaenden auch andere, wenn er gross genug ist. Man nimmt hierbei
   an, dass sich die freundlich gesinnten Lebewesen des Gegners auch
   naeher bei ihm befinden als die feindlich gesinnten:
     victim->Defend(500,DT_FIRE,([SP_SHOW_DAMAGE:1]),caster);
     victimList=FindGroup(victim,FG_FRIENDS);
     map_objects(victimList,
                     "Defend",
                     100,
                     DT_FIRE,
                     ([SP_SHOW_DAMAGE:1]),
                     caster);
   Hiermit trifft man also auch die Freunde von .


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


FindGroupN(), FindGroupP(), P_FRIEND, P_NO_GLOBAL_ATTACK

Last modified: Mon Jan 28 21:45:00 2002 by Tiamak


zurück zur Übersicht

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