| |
| 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 <properties.h> |
| object owner; |
| void create() |
| { ::create(); |
| SetProp(P_NAME,"Daemon"); |
| ... |
| } |
| // nach Clonen des Daemons folgende Funktion mit Beschwoerer als |
| // Parameter aufrufen |
| 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 |
| 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(), DefendOther(), Kill(), IsEnemy(), |
| P_DEFENDERS, /std/living/combat.c, /sys/new_skills.h |
| |
| Last modified: Thu Jul 29 18:48:45 1999 by Patryn |