| FUNKTION: |
| object *PresentEnemies(); |
| |
| DEFINIERT IN: |
| /std/living/combat.c |
| |
| ARGUMENTE: |
| keine |
| |
| RUeCKGABEWERT: |
| anwesende Feinde |
| |
| BESCHREIBUNG: |
| Diese Funktion liefert genau die Feinde zurueck, die sich derzeit im |
| selben Raum befinden. Die Feinde unterliegen hierbei noch gewissen |
| Einschraenkungen: |
| (1) Sie duerfen als NPC nicht gestorben sein, das heisst, sie |
| muessen als Objekt noch existieren. |
| (2) Sie duerfen als Spieler nicht gestorben sein, das heisst, sie |
| duerfen keine Geister sein (Property P_GHOST nicht gesetzt). |
| (3) Sie muessen angreifbar sein, das heisst, die Property |
| P_NO_ATTACK darf nicht gesetzt sein. |
| Wird eine dieser Bedingungen verletzt, so wird der Gegner aus der |
| internen Gegnerliste entfernt. Zusaetzlich gilt: |
| Netztote werden nur als Gegner erkannt, wenn keine anderen Gegner |
| zur Verfuegung stehen. |
| |
| BEISPIEL: |
| Im Folgenden erblinden alle Gegner im Raum: |
| string blindThemAll() |
| { ob*livList; |
| if(!livList=PresentEnemies()) |
| return break_string( |
| "Mist...keiner da, der blind werden moechte.",77, |
| Name(WER)+" grummelt: "); |
| for(i=sizeof(livList);i--;) |
| { if(livList[i]->QueryProp(P_BLIND)) |
| { tell_object(this_object(),break_string( |
| livList[i]->Name(WER)+" ist schon blind.",77)); |
| continue; |
| } |
| tell_object(this_object(),break_string( |
| "Du kratzt "+livList[i]->name(WEM)+" die Augen aus.",77)); |
| tell_object(livList[i],break_string( |
| Name(WER)+" kratzt Dir die Augen aus!",77)); |
| tell_room(environment(this_object()),break_string( |
| Name(WER)+" kratzt "+livList[i]->name(WEM) |
| +" die Augen aus.",77),({this_object(),livList[i]})); |
| livList[i]->SetProp(P_BLIND,1); |
| } |
| return""; |
| } |
| Aufgerufen wird das ganze am Besten in einem Chat: |
| void create() |
| { ::create(); |
| ... |
| SetProp(P_CHAT_CHANCE,10); |
| SetChats(20,({break_string( |
| "Nicht angreifen, sonst wirst Du noch blind!",77, |
| Name(WER)+" bruellt: "), |
| "@@blindThemAll@@"})); |
| } |
| Natuerlich sind auch noch mehr Funktionen und Meldungen als Chats |
| moeglich: Die zwei im Beispiel sind im Normalfall etwas wenig. |
| |
| SIEHE AUCH: |
| SelectEnemy(), QueryEnemies(), IsEnemy(), P_GHOST, P_NO_ATTACK, |
| SetChats, P_CHAT_CHANCE |
| |
| ---------------------------------------------------------------------------- |
| Last modified: Thu May 27 15:01:48 1999 by Patryn |