Automatische Updates
Change-Id: I0ab7d35f550c775bba908b34bdc8fc002e01c2ba
diff --git a/doc/lfun/AddDefender b/doc/lfun/AddDefender
index 5b33e14..f0e2c22 100644
--- a/doc/lfun/AddDefender
+++ b/doc/lfun/AddDefender
@@ -19,8 +19,8 @@
=========
friend
- Objekt (normal Lebewesen), welches zukuenftig ueber Angriffe
- informiert werden soll oder diese sogar abwehrt.
+ Objekt (normal Lebewesen), welches zukuenftig ueber Angriffe
+ informiert werden soll oder diese sogar abwehrt.
BESCHREIBUNG
@@ -33,18 +33,13 @@
Im Normalfall handelt es sich hierbei um andere Lebewesen, welche
als Verteidiger des angegriffenen Lebewesens auftreten: Daher der
Name der Funktion.
- Die Objekte sind in Form eines Arrays in der Property P_DEFENDERS
- abgespeichert und koennen dort abgerufen werden. Natuerlich kann
- man weitere Objekte direkt dort eintragen, jedoch sollte man die
- hierfuer bereitgestellte Funktionen AddDefender() verwenden.
- Zum Loeschen von Eintraegen im Array steht ebenfalls eine Funktion
- bereit: RemoveDefender().
SIEHE AUCH
==========
- RemoveDefender(), InformDefend(), DefendOther(),
- P_DEFENDERS, /std/living/combat.c
+ RemoveDefender(), QueryDefenders(), QueryPresentDefenders(),
+ QueryNearDefenders(), InformDefend(), DefendOther(),
+ *../props/P_DEFENDER*, /std/living/combat.c
-Last modified: Thu Jul 29 18:48:45 1999 by Patryn
+Letzte Aenderung: 28.10.2022, Bugfix
diff --git a/doc/lfun/DefendOther b/doc/lfun/DefendOther
index ea9f8e5..feefcc1 100644
--- a/doc/lfun/DefendOther
+++ b/doc/lfun/DefendOther
@@ -7,7 +7,7 @@
========
public <int|string*|mapping|object>* DefendOther(int dam,
- string* dam_type, int|mapping si_spell, object enemy)
+ string* dam_type, int|mapping si_spell, object enemy)
DEFINIERT IN
@@ -20,20 +20,20 @@
=========
int dam
- Der Schaden, der voraussichtlich beim zu verteidigenden Lebewesen
- verursacht werden soll.
+ Der Schaden, der voraussichtlich beim zu verteidigenden
+ Lebewesen verursacht werden soll.
string* dam_type
- Der Schadenstyp (oder die Schadenstypen), der beim zu
- verteidigenden Lebewesen verursacht werden sollen.
+ Der Schadenstyp (oder die Schadenstypen), der beim zu
+ verteidigenden Lebewesen verursacht werden sollen.
mapping si_spell
- Mapping mit zusaetzlichen Informationen zum Angriff
- Alte Objekte uebergeben manchmal einen Integer (0 fuer
- physikalischen Angriff, 1 fuer Zauber.
+ Mapping mit zusaetzlichen Informationen zum Angriff Alte Objekte
+ uebergeben manchmal einen Integer (0 fuer physikalischen
+ Angriff, 1 fuer Zauber.
object enemy
- Der Feind, der ein zu verteidigendes Lebewesen angegriffen hat.
+ Der Feind, der ein zu verteidigendes Lebewesen angegriffen hat.
RUeCKGABEWERT
@@ -51,11 +51,10 @@
Es ist moeglich, dass Objekte Angriffe auf Lebewesen abwehren oder
umwandeln, 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.
+ 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 koennen alle Objekte per Aufruf
von DefendOther() in einen Angriff eingreifen, wobei die
@@ -118,8 +117,9 @@
==========
Funktionen:
- AddDefender(), RemoveDefender(), InformDefend(), Kill(),
- IsEnemy(), Defend()
+ AddDefender(), RemoveDefender(), InformDefend(), DefendOther(),
+ Kill(), IsEnemy(), Defend(), QueryDefenders(),
+ QueryPresentDefenders(), QueryNearDefenders(),
Properties
P_DEFENDERS
diff --git a/doc/lfun/HRegisterToHook b/doc/lfun/HRegisterToHook
index 3a26017..7864d62 100644
--- a/doc/lfun/HRegisterToHook
+++ b/doc/lfun/HRegisterToHook
@@ -46,41 +46,25 @@
Registriert ein Objekt oder eine Closure als Hook-Konsument.
- Die Callback-Methode wird mit folgenden Argumenten gerufen:
-
- * object hooksource: das Objekt, in welchem das Ereignis
- ausgeloest wurde
-
- * int hookid: die ID des Hooks
-
- * mixed hookdata: die Daten des Hooks (siehe Doku zum jeweiligen
- Hook)
+ Die Callback-Methode wird mit folgenden Argumenten gerufen: -
+ object hooksource: das Objekt, in welchem das Ereignis ausgeloest
+ wurde - int hookid: die ID des Hooks - mixed hookdata: die Daten
+ des Hooks (siehe Doku zum jeweiligen Hook)
Fuer hookprio sind folgende Werte vorgesehen (Konstanten aus
- hook.h):
-
- * H_HOOK_LIBPRIO(x)
-
- * H_HOOK_GUILDPRIO(x) oder
-
- * H_HOOK_OTHERPRIO(x).
-
- x darf 0, 1 oder 2 sein (je niedriger, desto hoeher die
- Prioritaet).
+ hook.h): - H_HOOK_LIBPRIO(x) - H_HOOK_GUILDPRIO(x) oder -
+ H_HOOK_OTHERPRIO(x). x darf 0, 1 oder 2 sein (je niedriger, desto
+ hoeher die Prioritaet).
Fuer consumertype gibt es vier festgelegte Arten, die fuer alle
Hooks existieren koennen, aber nicht muessen (Konstanten aus
- hook.h):
+ hook.h): - H_LISTENER: Wird nur informiert - H_DATA_MODIFICATOR:
+ Kann Daten des Ereignisses aendern - H_HOOK_MODIFICATOR: Kann das
+ Ereignis zusaetzlich abbrechen - H_HOOK_SURVEYOR: Kann zusaetzlich
+ entscheiden, ob sich Objekte
- * H_LISTENER: Wird nur informiert
-
- * H_DATA_MODIFICATOR: Kann Daten des Ereignisses aendern
-
- * H_HOOK_MODIFICATOR: Kann das Ereignis zusaetzlich abbrechen
-
- * H_HOOK_SURVEYOR: Kann zusaetzlich entscheiden, ob sich Objekte
- registrieren, Daten modifizieren oder Ereignisse abbrechen
- koennen
+ registrieren, Daten modifizieren oder Ereignisse abbrechen
+ koennen
Die Methode *HConsumerTypeIsAllowed* gibt Aufschluss darueber,
welche Consumer-Typen tatsaechlich freigegeben sind.
@@ -89,22 +73,15 @@
RUECKGABEWERTE
==============
- 1 : Registrierung erfolgreich
+ 1 : Registrierung erfolgreich -1 : Hook unbekannt -2 : consumer
+ ist keine closure und es konnte kein Callback auf
- -1 : Hook unbekannt
-
- -2 : consumer ist keine closure und es konnte kein Callback auf
HookCallback im consumer erstellt werden.
- -3 : Consumer ist bereits registriert
-
- -4 : Consumer-Typ ist nicht erlaubt
-
- -5 : hookprio ist nicht erlaubt
-
- -6 : Surveyor hat Registrierung nicht erlaubt
-
- -7 : zuviele Hooks registriert / kein Hookeintrag frei
+ -3 : Consumer ist bereits registriert -4 : Consumer-Typ ist nicht
+ erlaubt -5 : hookprio ist nicht erlaubt -6 : Surveyor hat
+ Registrierung nicht erlaubt -7 : zuviele Hooks registriert / kein
+ Hookeintrag frei
SIEHE AUCH
diff --git a/doc/lfun/InformDefend b/doc/lfun/InformDefend
index d6a401e..7fa975d 100644
--- a/doc/lfun/InformDefend
+++ b/doc/lfun/InformDefend
@@ -19,7 +19,7 @@
=========
enemy
- Der Feind, der ein zu verteidigendes Lebewesen angegriffen hat.
+ Der Feind, der ein zu verteidigendes Lebewesen angegriffen hat.
BESCHREIBUNG
@@ -28,15 +28,14 @@
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.
+ 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
@@ -44,28 +43,40 @@
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");
- ...
- }
+
+ inherit "/std/npc";
+
+ #include <properties.h>
+
+ object owner;
+
+ protected 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());
- }
+
+ void 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);
- }
+
+ public 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
@@ -75,7 +86,8 @@
SIEHE AUCH
==========
- AddDefender(), RemoveDefender(), DefendOther(), Kill(), IsEnemy(),
- P_DEFENDERS, /std/living/combat.c, /sys/new_skills.h
+ AddDefender(), RemoveDefender(), QueryDefenders(),
+ QueryPresentDefenders(), QueryNearDefenders(), DefendOther(),
+ *../props/P_DEFENDER*, /std/living/combat.c
-Last modified: Thu Jul 29 18:48:45 1999 by Patryn
+Letzte Aenderung: 28.10.2022, Bugfix
diff --git a/doc/lfun/QueryDefenders b/doc/lfun/QueryDefenders
new file mode 100644
index 0000000..1c1bae8
--- /dev/null
+++ b/doc/lfun/QueryDefenders
@@ -0,0 +1,38 @@
+
+QueryDefenders()
+****************
+
+
+FUNKTION
+========
+
+ public object* QueryDefenders()
+
+
+DEFINIERT IN
+============
+
+ /std/living/combat.c
+
+
+RUECKGABEWERT
+=============
+
+ Object-Array mit den eingetragenen Defendern.
+
+
+BESCHREIBUNG
+============
+
+ Gibt eine um zerstoerte Objekte bereinigte Kopie von P_DEFENDERS
+ zurueck.
+
+
+SIEHE AUCH
+==========
+
+ AddDefender(), RemoveDefender(), QueryPresentDefenders(),
+ QueryNearDefenders(), InformDefend(), DefendOther(),
+ *../props/P_DEFENDER*, /std/living/combat.c
+
+Letzte Aenderung: 29.10.2022, Bugfix
diff --git a/doc/lfun/QueryNearDefenders b/doc/lfun/QueryNearDefenders
new file mode 100644
index 0000000..2526ebd
--- /dev/null
+++ b/doc/lfun/QueryNearDefenders
@@ -0,0 +1,48 @@
+
+QueryNearDefenders()
+********************
+
+
+FUNKTION
+========
+
+ public object* QueryNearDefenders(object* defenders)
+
+
+DEFINIERT IN
+============
+
+ /std/living/combat.c
+
+
+ARGUMENTE
+=========
+
+ object* defenders: Ein Object-Array mit Defendern, aus denen
+ ausgewaehlt
+ werden soll.
+
+
+RUeCKGABEWERT
+=============
+
+ Object-Array mit den nahen Verteidigern (s.u.).
+
+
+BESCHREIBUNG
+============
+
+ Gibt ein Object-Array mit den Defendern im Environment von
+ this_object() oder in this_object() zurueck, die in Reihe 1 stehen
+ oder in keinem Team sind. Wird <defenders> nicht uebergeben, wird
+ das Ergebnis von QueryDefenders() benutzt.
+
+
+SIEHE AUCH
+==========
+
+ AddDefender(), RemoveDefender(), QueryDefenders(),
+ QueryPresentDefenders(), InformDefend(), DefendOther(),
+ *../props/P_DEFENDER*, /std/living/combat.c
+
+Letzte Aenderung: 28.10.2022, Bugfix
diff --git a/doc/lfun/QueryPresentDefenders b/doc/lfun/QueryPresentDefenders
new file mode 100644
index 0000000..37e0d6c
--- /dev/null
+++ b/doc/lfun/QueryPresentDefenders
@@ -0,0 +1,48 @@
+
+QueryPresentDefenders()
+***********************
+
+
+FUNKTION
+========
+
+ public object* QueryPresentDefenders(object* defenders)
+
+
+DEFINIERT IN
+============
+
+ /std/living/combat.c
+
+
+ARGUMENTE
+=========
+
+ object* defenders: Ein Object-Array mit Defendern, aus denen
+ ausgewaehlt
+ werden soll.
+
+
+RUeCKGABEWERT
+=============
+
+ Object-Array mit den eingetragenen Defendern im gleichen
+ Environment oder in this_object().
+
+
+BESCHREIBUNG
+============
+
+ Gibt ein Object-Array mit den Defendern im Environment von
+ this_object() oder in this_object() zurueck. Wird <defenders> nicht
+ uebergeben, wird das Ergebnis von QueryDefenders() benutzt.
+
+
+SIEHE AUCH
+==========
+
+ AddDefender(), RemoveDefender(), QueryDefenders(),
+ QueryNearDefenders(), InformDefend(), DefendOther(),
+ *../props/P_DEFENDER*, /std/living/combat.c
+
+Letzte Aenderung: 28.10.2022, Bugfix
diff --git a/doc/lfun/RemoveDefender b/doc/lfun/RemoveDefender
index 1dec97a..a8b6863 100644
--- a/doc/lfun/RemoveDefender
+++ b/doc/lfun/RemoveDefender
@@ -19,8 +19,9 @@
=========
friend
- Objekt (normal Lebewesen), welches zukuenftig nicht mehr ueber
- Angriffe informiert werden soll und diese auch nicht mehr abwehrt.
+ Objekt (normal Lebewesen), welches zukuenftig nicht mehr ueber
+ Angriffe informiert werden soll und diese auch nicht mehr
+ abwehrt.
BESCHREIBUNG
@@ -35,18 +36,13 @@
Name der Funktion. Ausserdem besteht die Einschraenkung, dass diese
Objekte in der gleichen Umgebung sein muessen, wie das zu
verteidigende Lebewesen.
- Die Objekte sind in Form eines Arrays in der Property P_DEFENDERS
- abgespeichert und koennen dort abgerufen werden. Natuerlich kann
- man alte Objekte direkt dort loeschen, jedoch sollte man die
- hierfuer bereitgestellte Funktionen RemoveDefender() verwenden.
- Zum Hinzufuegen von Eintraegen im Array steht ebenfalls eine
- Funktion bereit: AddDefender().
SIEHE AUCH
==========
- AddDefender(), InformDefend(), DefendOther(),
- P_DEFENDERS, /std/living/combat.c
+ AddDefender(), QueryDefenders(), QueryPresentDefenders(),
+ QueryNearDefenders(), InformDefend(), DefendOther(),
+ *../props/P_DEFENDER*, /std/living/combat.c
-Last modified: Thu Jul 29 18:48:45 1999 by Patryn
+Letzte Aenderung: 28.10.2022, Bugfix
diff --git a/doc/lfun/SetChats b/doc/lfun/SetChats
index a74e69f..c4fe633 100644
--- a/doc/lfun/SetChats
+++ b/doc/lfun/SetChats
@@ -21,8 +21,9 @@
int chance
Prozentuale Wahrscheinlichkeit einer Ausgabe
- mixed strs
+ <string|closure|<string|closure|int>* >* strs
Array mit den verschiedenen Moeglichkeiten der Monsterchats
+ (optional)
BESCHREIBUNG
@@ -30,20 +31,24 @@
Der NPC gibt mit der Wahrscheinlichkeit <chance> pro Heartbeat
einen zufaellig gewaehlten Text aus dem Array <strs> in den Raum
- aus. Dabei wird per Default send_room() ohne erneutes Umbrechen mit
- den Messagetypen MT_LOOK|MT_LISTEN|MT_FEEL|MT_SMELL verwendet.
+ aus. Wird kein <strs> uebergeben, wird nur die Chat-Chance
+ geaendert und die bisherigen Chats werden beibehalten.
- Die einzelnen Arrayelemente koennen:
+ Per Default wird send_room() ohne erneutes Umbrechen mit den
+ Messagetypen MT_LOOK|MT_LISTEN|MT_FEEL|MT_SMELL zur Ausgabe
+ verwendet.
- * Strings sein
+ Die einzelnen Arrayelemente koennen sein:
- * Closures sein, deren Rueckgabe ausgegeben wird und die
+ * Strings
+
+ * Closures, deren Rueckgabe ausgegeben wird und die
zusaetzlich einen aenderbaren und in send_room() verwendeten
'msg_typ' per Referenz uebergeben bekommen
* Arrays mit der Struktur *({<string|closure msg >, <int
- msg_typ>})* sein, fuer die obige Regeln auf 'msg' angewendet
- werden und bei denen 'msg_typ' im send_room() verwendet wird
+ msg_typ>})*, fuer die obige Regeln auf 'msg' angewendet werden
+ und bei denen 'msg_typ' im send_room() verwendet wird
Fuer keine Ausgabe muss man einen Leerstring "" zurueckgeben oder
verwenden. In allen Funktionen ist this_player() das Monster