combat.h-Dateireferenz

Dieser Graph zeigt, welche Datei direkt oder indirekt diese Datei enthält:

gehe zum Quellcode dieser Datei

Funktionen

public int QueryPlAttacked (object pl)
 Hat dieser Spieler den Spieler pl angegriffen?.
public int RegisterHelperNPC (object npc, int flags)
 registriert den NPC als Helfer von diesem Spieler.
public int UnregisterHelperNPC (object npc)
 de-registriert den NPC als Helfer von diesem Spieler.

Dokumentation der Funktionen

public int QueryPlAttacked ( object  pl  ) 

Hat dieser Spieler den Spieler pl angegriffen?.

Parameter:
[in] pl object zu pruefender Spieler
Rückgabe:
int 1, falls dieser Spieler pl angegriffen hat.
Achtung:
Nebeneffekt: bereinigt den internen Speicher von UIDs von zerstoerten Spielern und solchen, die keine Feinde mehr sind.

Definiert in Zeile 109 der Datei combat.c.

Benutzt find_netdead(), find_player(), IsEnemy(), ME, ob() und plAttacked.

Wird benutzt von Kill().

00109                                       {
00110   object ob;
00111 
00112   if ( !objectp(pl) )
00113     return 0;
00114 
00115   foreach(string plname: plAttacked) {
00116     if ( !( ob=(find_player(plname)||find_netdead(plname)) )
00117         || ( !IsEnemy(ob) && !(ob->IsEnemy(ME)) ) )
00118       plAttacked -= ({plname}); // ja, das geht. ;-)
00119   }
00120   return (member( plAttacked, getuid(pl) ) >= 0);
00121 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

public int RegisterHelperNPC ( object  npc,
int  flags 
)

registriert den NPC als Helfer von diesem Spieler.

Parameter:
[in] npc object Helfer-NPC
[in] flags int Bitfeld von Flags
Rückgabe:
int 1, falls der Helfer-NPC registriert wurde und noch nicht registriert war.
Achtung:
Nutzt aus, dass QueryProp(P_HELPER_NPC) _keine_ Kopie des Mappings in der Prop liefert.

Definiert in Zeile 47 der Datei combat.c.

Benutzt CLASS_MASK, EXCLUSIVE_HELPER, P_HELPER_NPC und QueryProp().

00047                                                     {
00048   if (!objectp(npc))
00049     raise_error(sprintf( "Wrong argument 1 in RegisterHelperNPC(). "
00050           "Expected <object>, got %.100O\n", npc));
00051   if (!intp(flags) || flags < 1)
00052      raise_error(sprintf( "Wrong argument 2 in RegisterHelperNPC(). "
00053           "Expected positive <int>, got %O\n", flags));
00054   
00055   mapping helpers = QueryProp(P_HELPER_NPC);
00056   
00057   // schon registrierte sind witzlos.
00058   if (member(helpers, npc))
00059     return 0;
00060   
00061   // auf exklusive Helfer pruefen.
00062   foreach(object helper, int fl: helpers) {
00063     // flags identisch? Dann Klasse und Exklusivitaet identisch
00064     if (fl == flags)
00065       return 0;
00066     // oder einer von beiden exklusiv und beide in der gleichen Klasse?
00067     else if ( ((fl & EXCLUSIVE_HELPER) || (flags & EXCLUSIVE_HELPER))
00068               && ((fl & CLASS_MASK) == (flags & CLASS_MASK)) )
00069       return 0;
00070   }
00071   // scheint wohl ok zu sein. Registrieren und Prop im NPC setzen.
00072   helpers += ([ npc: flags ]);
00073   npc->SetProp(P_HELPER_NPC, ({ this_object(), flags }) );
00074   // momentan unnoetig, da helpers keine Kopie ist.
00075   // SetProp(P_HELPER_NPC, helpers);
00076 
00077   return 1;
00078 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

public int UnregisterHelperNPC ( object  npc  ) 

de-registriert den NPC als Helfer von diesem Spieler.

Parameter:
[in] npc object Helfer-NPC
Rückgabe:
int 1, falls der Helfer-NPC registriert war und entfernt wurde.
Achtung:
Nutzt aus, dass QueryProp(P_HELPER_NPC) _keine_ Kopie des Mappings in der Prop liefert.

Definiert in Zeile 87 der Datei combat.c.

Benutzt m_delete(), P_HELPER_NPC und QueryProp().

00087                                            {
00088   if (!objectp(npc))
00089     raise_error(sprintf("Wrong argument in UnregisterHelpernNPC(). "
00090           "Expected <object>, got %.100O\n", npc));
00091 
00092   mapping helpers = QueryProp(P_HELPER_NPC);
00093   if (member(helpers, npc)) {
00094     efun::m_delete(helpers, npc);
00095     // momentan unnoetig, da helpers keine Kopie ist.
00096     // SetProp(P_HELPER_NPC, helpers);
00097     npc->SetProp(P_HELPER_NPC, 0);
00098     return 1;
00099   }
00100   return 0;
00101 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

Erzeugt am Thu Jun 3 14:43:28 2010 für MorgenGrauen Mudlib von  doxygen 1.6.3