Automatisch erzeugte Manpages.
Damit nicht jeder sphinx auf dem Rechner haben muss,
behalten wir bis auf weiteres die aus den .rst
erzeugten Manpoages auch im Repo.
Change-Id: Id556c0d11cf5f79659d8350952ce1c014d81ea44
diff --git a/doc/props/obsolete/P_BALANCED_WEAPON b/doc/props/obsolete/P_BALANCED_WEAPON
index e785f2c..83a2fc4 100644
--- a/doc/props/obsolete/P_BALANCED_WEAPON
+++ b/doc/props/obsolete/P_BALANCED_WEAPON
@@ -1,35 +1,59 @@
-********************* UNGENUTZTE PROPERTY *****************************
-* Diese Property wird von der Mudlib NICHT ausgewertet und kann *
-* als veraltet gelten. *
-* Momentan ist auch keine Gilde bekannt, die mehr macht, als sie *
-* auszugeben. *
-***********************************************************************
-NAME:
- P_BALANCED_WEAPON "balanced_weapon"
-DEFINIERT IN:
- /sys/weapon.h
+P_BALANCED_WEAPON
+*****************
-BESCHREIBUNG:
- Die Property gibt an, ob eine Waffe ausbalanciert ist oder nicht.
- Die beiden moeglichen Werte sind logischerweise:
+********************* UNGENUTZTE PROPERTY
+***************************** * Diese Property wird von der Mudlib
+NICHT ausgewertet und kann * * als veraltet gelten.
+* * Momentan ist auch keine Gilde bekannt, die mehr macht, als sie
+* * auszugeben.
+* *******************************************************************
+****
- WP_BALANCED balanciert
- WP_UNBALANCED unbalanciert
- Die WP_* sind ebenfalls in <weapon.h> definiert.
+NAME
+====
-BEISPIELE:
- a) Eine ausbalancierte Waffe ist z.B. ein Kampfstab.
+ P_BALANCED_WEAPON "balanced_weapon"
- SetProp(P_BALANCED_WEAPON,WP_BALANCED);
- b) Eine nicht ausbalancierte Waffe ist z.B. eine Keule.
+DEFINIERT IN
+============
- SetProp(P_BALANCED_WEAPON,WP_UNBALANCED);
+ /sys/weapon.h
-SIEHE AUCH:
- P_TECHNIQUE, /std/weapon/combat.c
-LETZTE AeNDERUNG:
+BESCHREIBUNG
+============
+
+ Die Property gibt an, ob eine Waffe ausbalanciert ist oder nicht.
+ Die beiden moeglichen Werte sind logischerweise:
+
+ WP_BALANCED balanciert
+ WP_UNBALANCED unbalanciert
+
+ Die WP_* sind ebenfalls in <weapon.h> definiert.
+
+
+BEISPIELE
+=========
+
+ a) Eine ausbalancierte Waffe ist z.B. ein Kampfstab.
+
+ SetProp(P_BALANCED_WEAPON,WP_BALANCED);
+
+ b) Eine nicht ausbalancierte Waffe ist z.B. eine Keule.
+
+ SetProp(P_BALANCED_WEAPON,WP_UNBALANCED);
+
+
+SIEHE AUCH
+==========
+
+ P_TECHNIQUE, /std/weapon/combat.c
+
+
+LETZTE AeNDERUNG
+================
+
15.02.2009, Zesstra
diff --git a/doc/props/obsolete/P_DEFAULT_INFO b/doc/props/obsolete/P_DEFAULT_INFO
index 814928c..9a16169 100644
--- a/doc/props/obsolete/P_DEFAULT_INFO
+++ b/doc/props/obsolete/P_DEFAULT_INFO
@@ -1,28 +1,50 @@
-********************* VERALTETE PROPERTY ******************************
-* Diese Property ist veraltet. Bitte nicht mehr in neuem Code nutzen. *
-***********************************************************************
-NAME:
- P_DEFAULT_INFO "default_info"
+P_DEFAULT_INFO
+**************
-DEFINIERT IN:
- /sys/properties.h
+********************* VERALTETE PROPERTY
+****************************** * Diese Property ist veraltet. Bitte
+nicht mehr in neuem Code nutzen. * **********************************
+*************************************
-BESCHREIBUNG:
- Default-Antwort eines Npc, wenn er auf das Schluesselwort durch den
- Spieler kein AddInfo parat hat.
-BEMERKUNG:
- Diese Property sollte nicht mehr benutzt werden. Stattdessen bitte
- AddInfo(DEFAULT_INFO,...) verwenden.
- Dem in dieser Prop angegeben String wird immer der Name des Npc
- vorausgestellt. Will man dies verhindern, muss man sie ueberschreiben.
+NAME
+====
-BEISPIEL:
- SetProp(P_DEFAULT_INFO,"bohrt gelangweilt in der Nase.\n");
+ P_DEFAULT_INFO "default_info"
-SIEHE AUCH:
- AddInfo
-----------------------------------------------------------------------------
+DEFINIERT IN
+============
+
+ /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+ Default-Antwort eines Npc, wenn er auf das Schluesselwort durch den
+ Spieler kein AddInfo parat hat.
+
+
+BEMERKUNG
+=========
+
+ Diese Property sollte nicht mehr benutzt werden. Stattdessen bitte
+ AddInfo(DEFAULT_INFO,...) verwenden.
+ Dem in dieser Prop angegeben String wird immer der Name des Npc
+ vorausgestellt. Will man dies verhindern, muss man sie ueberschreiben.
+
+
+BEISPIEL
+========
+
+ SetProp(P_DEFAULT_INFO,"bohrt gelangweilt in der Nase.\n");
+
+
+SIEHE AUCH
+==========
+
+ AddInfo
+
17.08.2010, Zesstra
diff --git a/doc/props/obsolete/P_EXTRA_LOOK b/doc/props/obsolete/P_EXTRA_LOOK
deleted file mode 100644
index 3777a25..0000000
--- a/doc/props/obsolete/P_EXTRA_LOOK
+++ /dev/null
@@ -1,35 +0,0 @@
-********************* VERALTETE PROPERTY ******************************
-* Diese Property ist veraltet. Bitte benutzt sie NICHT mehr, sondern *
-* stattdessden AddExtraLook(). *
-***********************************************************************
-
-NAME:
- P_EXTRA_LOOK "extralook"
-
-DEFINIERT IN:
- /sys/living/description.h
-
-BESCHREIBUNG:
- Diese Property enthaelt einen String. Sie wird entweder in Lebewesen
- direkt oder in Objekten gesetzt wird, die im Besitz von Lebewesen
- sein koennen.
- Diese Strings erscheinen dann zusaetzlich in der Langbeschreibung
- des Lebewesens bzw. des Besitzers (wenn das Objekt sich direkt im
- Lebewesen befindet, jedoch nicht in einem Behaelter im Lebewesen).
- Fuer den Zeilenumbruch muss man selbst sorgen.
-
-BEISPIEL:
- Ein Spieler hat eine Pfeife im Mund. In dieser Pfeife setzt man z.B.
- in der Funktion zum Pfeife Rauchen folgendes:
- SetProp(P_EXTRA_LOOK,break_string(
- this_player()->Name(WER)+" ist ganz umnebelt.",78);
-
-BEMERKUNG:
- BITTE NICHT MEHR BENUTZEN!
-
-SIEHE AUCH:
- long(), /std/living/description.c, /std/player/base.c
- AddExtraLook(), RemoveExtraLook()
-
-----------------------------------------------------------------------------
-13.05.2007, Zesstra
diff --git a/doc/props/obsolete/P_LAST_KILLER b/doc/props/obsolete/P_LAST_KILLER
index 27eea8f..199a878 100644
--- a/doc/props/obsolete/P_LAST_KILLER
+++ b/doc/props/obsolete/P_LAST_KILLER
@@ -1,20 +1,37 @@
-********************* VERALTETE PROPERTY ******************************
-* Diese Property ist veraltet und wird bald aus der Mudlib entfernt. *
-***********************************************************************
-NAME:
- P_LAST_KILLER "last_killer"
+P_LAST_KILLER
+*************
-DEFINIERT IN:
- /sys/player.h
+********************* VERALTETE PROPERTY
+****************************** * Diese Property ist veraltet und wird
+bald aus der Mudlib entfernt. * ************************************
+***********************************
-BESCHREIBUNG:
- Letzter Moerdes des Wesens.
- Diese Property wurde nur in Spielern gesetzt und auch dann nicht immer.
- Bitte stattdessen P_KILLER abfragen, welche in NPC und Spielern gesetzt
- wird.
-SIEHE AUCH:
- P_KILLER, die()
+NAME
+====
+
+ P_LAST_KILLER "last_killer"
+
+
+DEFINIERT IN
+============
+
+ /sys/player.h
+
+
+BESCHREIBUNG
+============
+
+ Letzter Moerdes des Wesens.
+ Diese Property wurde nur in Spielern gesetzt und auch dann nicht immer.
+ Bitte stattdessen P_KILLER abfragen, welche in NPC und Spielern gesetzt
+ wird.
+
+
+SIEHE AUCH
+==========
+
+ P_KILLER, die()
05.09.2008, Zesstra
diff --git a/doc/props/obsolete/P_LAST_PEACE_TIME b/doc/props/obsolete/P_LAST_PEACE_TIME
index 762233e..f8aea49 100644
--- a/doc/props/obsolete/P_LAST_PEACE_TIME
+++ b/doc/props/obsolete/P_LAST_PEACE_TIME
@@ -1,27 +1,41 @@
-********************* VERALTETE PROPERTY ******************************
-* Diese Property ist veraltet und wird bald aus der Mudlib entfernt. *
-***********************************************************************
-PROPERTY
- P_LAST_PEACE_TIME "last_peace_time"
+P_LAST_PEACE_TIME
+*****************
+
+********************* VERALTETE PROPERTY
+****************************** * Diese Property ist veraltet und wird
+bald aus der Mudlib entfernt. * ************************************
+***********************************
+
+
+PROPERTY
+========
+
+ P_LAST_PEACE_TIME "last_peace_time"
+
DEFINIERT IN
+============
- /std/living/combat.c
+ /std/living/combat.c
+
BESCHREIBUNG
+============
- Diese Property gibt an, wann zuletzt versucht wurde, einen NPC zu
- befrieden. Bitte nach Moeglichkeit nur lesend verwenden. Des weiteren
- wird sie nur im ueblichen Verhalten von QueryPacify gesetzt, und nur
- dann, wenn P_ACCEPT_PEACE nicht gesetzt ist.
+ Diese Property gibt an, wann zuletzt versucht wurde, einen NPC zu
+ befrieden. Bitte nach Moeglichkeit nur lesend verwenden. Des weiteren
+ wird sie nur im ueblichen Verhalten von QueryPacify gesetzt, und nur
+ dann, wenn P_ACCEPT_PEACE nicht gesetzt ist.
+
SIEHE AUCH
+==========
- QueryPacify, P_ACCEPT_PEACE
+ QueryPacify, P_ACCEPT_PEACE
+
LETZTE AENDERUNG
+================
- 2004-03-17, 14:30 von Humni
-
-
+ 2004-03-17, 14:30 von Humni
diff --git a/doc/props/obsolete/P_LOG_FILE b/doc/props/obsolete/P_LOG_FILE
index 1eafe40..ed57133 100644
--- a/doc/props/obsolete/P_LOG_FILE
+++ b/doc/props/obsolete/P_LOG_FILE
@@ -1,45 +1,69 @@
-********************* VERALTETE PROPERTY ******************************
-* Diese Property wird nicht mehr ausgewertet. *
-***********************************************************************
-NAME:
- P_LOG_FILE "log_file"
-DEFINIERT IN:
- /sys/thing/properties.h
+P_LOG_FILE
+**********
-BESCHREIBUNG:
- Enthaelt einen String auf einen Filenamen.
+********************* VERALTETE PROPERTY
+****************************** * Diese Property wird nicht mehr
+ausgewertet. * ******************************
+*****************************************
- Werden zu dem Objekt (Raum, Monster, ...) Fehlermeldungen abgesetzt,
- werden diese in das angegebene File umgeleitet. Die Eintragung in
- die per Default fuer Fehlermeldungen vorgesehenen Dateien erfolgt
- nicht.
-BEMERKUNGEN:
- P_LOG_FILE wird ausgewertet wie log_file().
+NAME
+====
- Das heisst, es wird AUF JEDEN FALL nach /log geschrieben!
+ P_LOG_FILE "log_file"
- Direkt in /log kann NICHT geschrieben werden, es muss also ein
- Unterverzeichnis mit Eurem Magiernamen vorhanden sein.
-BEISPIELE:
- SetProp(P_LOG_FILE,"tilly_log"); // FALSCH, es wuerde versucht,
- das File /log/tilly_log
- anzulegen
- SetProp(P_LOG_FILE,"/log/tilly_log"); // FALSCH, es wuerde versucht,
- das File /log/log/tilly_log
- anzulegen
- SetProp(P_LOG_FILE,"/d/ebene/tilly_log"); // FALSCH, s.o.
+DEFINIERT IN
+============
- SetProp(P_LOG_FILE,"tilly/tilly_log"); // RICHTIG!
+ /sys/thing/properties.h
- Im letzten Beispiel werden alle Eintraege in das File tilly_log ge-
- schrieben, das sich im Verzeichnis /log/tilly/ befindet.
- Das Unterverzeichnis /tilly in /log muss zuvor angelegt werden.
+BESCHREIBUNG
+============
-SIEHE AUCH:
- P_LOG_INFO, write_file(), log_file(),
+ Enthaelt einen String auf einen Filenamen.
+
+ Werden zu dem Objekt (Raum, Monster, ...) Fehlermeldungen abgesetzt,
+ werden diese in das angegebene File umgeleitet. Die Eintragung in
+ die per Default fuer Fehlermeldungen vorgesehenen Dateien erfolgt
+ nicht.
+
+
+BEMERKUNGEN
+===========
+
+ P_LOG_FILE wird ausgewertet wie log_file().
+
+ Das heisst, es wird AUF JEDEN FALL nach /log geschrieben!
+
+ Direkt in /log kann NICHT geschrieben werden, es muss also ein
+ Unterverzeichnis mit Eurem Magiernamen vorhanden sein.
+
+
+BEISPIELE
+=========
+
+ SetProp(P_LOG_FILE,"tilly_log"); // FALSCH, es wuerde versucht,
+ das File /log/tilly_log
+ anzulegen
+ SetProp(P_LOG_FILE,"/log/tilly_log"); // FALSCH, es wuerde versucht,
+ das File /log/log/tilly_log
+ anzulegen
+ SetProp(P_LOG_FILE,"/d/ebene/tilly_log"); // FALSCH, s.o.
+
+ SetProp(P_LOG_FILE,"tilly/tilly_log"); // RICHTIG!
+
+ Im letzten Beispiel werden alle Eintraege in das File tilly_log ge-
+ schrieben, das sich im Verzeichnis /log/tilly/ befindet.
+
+ Das Unterverzeichnis /tilly in /log muss zuvor angelegt werden.
+
+
+SIEHE AUCH
+==========
+
+ P_LOG_INFO, write_file(), log_file(),
Letzte Aenderung: 13.09.04 Tilly@MorgenGrauen
diff --git a/doc/props/obsolete/P_NEXT_SPELL_TIME b/doc/props/obsolete/P_NEXT_SPELL_TIME
index 4742456..300a766 100644
--- a/doc/props/obsolete/P_NEXT_SPELL_TIME
+++ b/doc/props/obsolete/P_NEXT_SPELL_TIME
@@ -1,30 +1,49 @@
-********************* VERALTETE PROPERTY ******************************
-* Diese Property ist veraltet. Bitte nicht mehr in neuem Code nutzen. *
-***********************************************************************
-NAME:
- P_NEXT_SPELL_TIME "next_spell"
+P_NEXT_SPELL_TIME
+*****************
-DEFINIERT IN:
- /sys/new_skills.h
+********************* VERALTETE PROPERTY
+****************************** * Diese Property ist veraltet. Bitte
+nicht mehr in neuem Code nutzen. * **********************************
+*************************************
-BESCHREIBUNG:
- Wann kann das naechste Mal gezaubert werden?
- Dies ist eine globale Spruchermuedung/-Sperre.
- Flexiblere Sperren koennen mittels SetSpellFatigue/CheckSpellFatigue()
- verwaltet werden.
- Diese Property ist keine echte Property, sondern liefert nur das
- Ergebnis von von CheckSpellFatigue() zurueck bzw. ruft beim Setzen
- SetSpellFatigue(<spruchsperre>, 0) auf.
- Diese Prop sollte _nicht_ mittels Query- oder Setmethoden manupuliert
- werden, da sonst Inkonsistenzen zum Ergebnis von CheckSpellFatigue()
- auftreten.
+NAME
+====
-SIEHE AUCH:
- SetSpellFatigue(L), CheckSpellFatigue(L)
- spruchermuedung
+ P_NEXT_SPELL_TIME "next_spell"
-ZULETZT GEAeNDERT:
+
+DEFINIERT IN
+============
+
+ /sys/new_skills.h
+
+
+BESCHREIBUNG
+============
+
+ Wann kann das naechste Mal gezaubert werden?
+ Dies ist eine globale Spruchermuedung/-Sperre.
+ Flexiblere Sperren koennen mittels SetSpellFatigue/CheckSpellFatigue()
+ verwaltet werden.
+
+ Diese Property ist keine echte Property, sondern liefert nur das
+ Ergebnis von von CheckSpellFatigue() zurueck bzw. ruft beim Setzen
+ SetSpellFatigue(<spruchsperre>, 0) auf.
+ Diese Prop sollte _nicht_ mittels Query- oder Setmethoden manupuliert
+ werden, da sonst Inkonsistenzen zum Ergebnis von CheckSpellFatigue()
+ auftreten.
+
+
+SIEHE AUCH
+==========
+
+ SetSpellFatigue(L), CheckSpellFatigue(L)
+ spruchermuedung
+
+
+ZULETZT GEAeNDERT
+=================
+
14.03.2010, Zesstra
-
diff --git a/doc/props/obsolete/P_READ_MSG b/doc/props/obsolete/P_READ_MSG
index 5c79fdc..2331508 100644
--- a/doc/props/obsolete/P_READ_MSG
+++ b/doc/props/obsolete/P_READ_MSG
@@ -1,32 +1,56 @@
-********************* VERALTETE PROPERTY ******************************
-* Diese Property ist veraltet. Bitte nicht mehr in neuem Code nutzen. *
-***********************************************************************
-NAME:
- P_READ_MSG "read_msg"
-DEFINIERT IN:
- /sys/properties.h
+P_READ_MSG
+**********
-BESCHREIBUNG:
- Diese Property ist veraltet. Ihre Funktion wird von
- AddReadDetail(SENSE_DEFAULT, ...) uebernommen.
-
- Hier koennen Informationen gespeichert werden, die beim Lesen
- des Objektes ausgegeben werden.
-
- Fuer das Identifizieren des zu lesenden Objektes wird der gleiche
- Mechanismus benutzt wie fuer lesbare und andere Details.
+********************* VERALTETE PROPERTY
+****************************** * Diese Property ist veraltet. Bitte
+nicht mehr in neuem Code nutzen. * **********************************
+*************************************
- Die Benutzung von process_string() ist in dieser Prop nicht mehr erlaubt.
-BEISPIEL:
- AddId(({"rolle", "schriftrolle"}));
- SetProp(P_READ_MSG,
- "Du oeffnest die Rolle und liest: LOREM IPSUM ...\n");
-
-SIEHE AUCH:
- Details: AddReadDetail(), RemoveReadDetail(), P_READ_DETAILS
- Sonstiges: break_string()
+NAME
+====
+
+ P_READ_MSG "read_msg"
+
+
+DEFINIERT IN
+============
+
+ /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+ Diese Property ist veraltet. Ihre Funktion wird von
+ AddReadDetail(SENSE_DEFAULT, ...) uebernommen.
+
+
+
+ Hier koennen Informationen gespeichert werden, die beim Lesen
+ des Objektes ausgegeben werden.
+
+
+
+ Fuer das Identifizieren des zu lesenden Objektes wird der gleiche
+ Mechanismus benutzt wie fuer lesbare und andere Details.
+
+ Die Benutzung von process_string() ist in dieser Prop nicht mehr erlaubt.
+
+
+BEISPIEL
+========
+
+ AddId(({"rolle", "schriftrolle"}));
+ SetProp(P_READ_MSG,
+ "Du oeffnest die Rolle und liest: LOREM IPSUM ...\n");
+
+
+SIEHE AUCH
+==========
+
+ Details: AddReadDetail(), RemoveReadDetail(), P_READ_DETAILS
+ Sonstiges: break_string()
09.12.2012, Zesstra
-
diff --git a/doc/props/obsolete/P_TECHNIQUE b/doc/props/obsolete/P_TECHNIQUE
index 1657027..a556ce6 100644
--- a/doc/props/obsolete/P_TECHNIQUE
+++ b/doc/props/obsolete/P_TECHNIQUE
@@ -1,44 +1,70 @@
-********************* UNGENUTZTE PROPERTY *****************************
-* Diese Property wird von der Mudlib NICHT ausgewertet und kann *
-* als veraltet gelten. *
-* Momentan ist auch keine Gilde bekannt, die mehr macht, als sie *
-* auszugeben. *
-***********************************************************************
-NAME:
- P_TECHNIQUE "technique"
-DEFINIERT IN:
- /sys/weapon.h
+P_TECHNIQUE
+***********
-BESCHREIBUNG:
- Die Technik(en), mit denen eine Waffe im Kampf eingesetzt werden
- kann. Folgende Techniken stehen zur Verfuegung:
+********************* UNGENUTZTE PROPERTY
+***************************** * Diese Property wird von der Mudlib
+NICHT ausgewertet und kann * * als veraltet gelten.
+* * Momentan ist auch keine Gilde bekannt, die mehr macht, als sie
+* * auszugeben.
+* *******************************************************************
+****
- TQ_STROKE Streichtechnik
- TQ_THRASH Schlagtechnik
- TQ_THRUST Stosstechnik
- TQ_WHIP Peitschtechnik
- Die Techniken sind ebenfalls in <weapon.h> definiert und auf der
- man-page 'techniken' naeher erlaeutert.
+NAME
+====
-BEMERKUNGEN:
- Man kann einer Waffe eine oder mehrere Techniken zuweisen.
+ P_TECHNIQUE "technique"
-BEISPIELE:
- a) Eine Waffe, die nur mit einer Peitschtechnik eingesetzt wird,
- also typischerweise eine Peitsche, aber auch ein Morgenstern:
- SetProp(P_TECHNIQUE,TQ_WHIP);
+DEFINIERT IN
+============
- b) Eine Waffe, die sowohl mit der Schlag- als auch der Stosstechnik
- eingesetzt wird, also z.B. eine Hellebarde:
+ /sys/weapon.h
- SetProp(P_TECHNIQUE,({TQ_THRASH,TQ_THRUST}));
-SIEHE AUCH:
- techniken, P_BALANCED_WEAPON, /std/weapon/combat.c
+BESCHREIBUNG
+============
-LETZTE AeNDERUNG:
+ Die Technik(en), mit denen eine Waffe im Kampf eingesetzt werden
+ kann. Folgende Techniken stehen zur Verfuegung:
+
+ TQ_STROKE Streichtechnik
+ TQ_THRASH Schlagtechnik
+ TQ_THRUST Stosstechnik
+ TQ_WHIP Peitschtechnik
+
+ Die Techniken sind ebenfalls in <weapon.h> definiert und auf der
+ man-page 'techniken' naeher erlaeutert.
+
+
+BEMERKUNGEN
+===========
+
+ Man kann einer Waffe eine oder mehrere Techniken zuweisen.
+
+
+BEISPIELE
+=========
+
+ a) Eine Waffe, die nur mit einer Peitschtechnik eingesetzt wird,
+ also typischerweise eine Peitsche, aber auch ein Morgenstern:
+
+ SetProp(P_TECHNIQUE,TQ_WHIP);
+
+ b) Eine Waffe, die sowohl mit der Schlag- als auch der Stosstechnik
+ eingesetzt wird, also z.B. eine Hellebarde:
+
+ SetProp(P_TECHNIQUE,({TQ_THRASH,TQ_THRUST}));
+
+
+SIEHE AUCH
+==========
+
+ techniken, P_BALANCED_WEAPON, /std/weapon/combat.c
+
+
+LETZTE AeNDERUNG
+================
+
15.02.2009, Zesstra
-
diff --git a/doc/props/obsolete/P_TMP_ATTACK_HOOK b/doc/props/obsolete/P_TMP_ATTACK_HOOK
index bdc8152..6bd5130 100644
--- a/doc/props/obsolete/P_TMP_ATTACK_HOOK
+++ b/doc/props/obsolete/P_TMP_ATTACK_HOOK
@@ -1,73 +1,95 @@
-********************* VERALTETE PROPERTY ******************************
-* Diese Property ist veraltet. Bitte nicht mehr in neuem Code nutzen. *
-***********************************************************************
+
P_TMP_ATTACK_HOOK
+*****************
-NAME:
- P_TMP_ATTACK_HOOK "attack_hook"
+********************* VERALTETE PROPERTY
+****************************** * Diese Property ist veraltet. Bitte
+nicht mehr in neuem Code nutzen. * **********************************
+************************************* P_TMP_ATTACK_HOOK
-DEFINIERT IN:
- /sys/new_skills.h
-BESCHREIBUNG:
- Mittels dieser Property koennen die Attacken eines Livings ggf.
- abgebrochen werden noch bevor Waffen oder Skills zum ausgewertet
- wurden.
+NAME
+====
- Es wird an dem Living die Property als mindestens 3-elementiges Array:
- ({zeitpunkt, objekt, methode, ...})
- gesetzt und die Methode 'methode' wird dann waehrend des Attack() des
- Lebewesens in 'objekt' aufgerufen, solange time()<'zeitpunkt'.
+ P_TMP_ATTACK_HOOK "attack_hook"
- Der Methode wird als Parameter der Gegner uebergeben.
- Gibt die Methode 0 als Rueckgabewert zurueck, wird die Attacke sofort
- kommentarlos abgebrochen.
+DEFINIERT IN
+============
-BEMERKUNGEN:
- - Bitte das neuere Hooksystem (s. Manpage std/hooks) benutzen.
- - falls die Zeit abgelaufen oder das Objekt zerstoert ist, wird die
- Property auf 0 gesetzt
- - vor dem Setzen immer auf die Existenz eines gueltigen Hooks
- pruefen, einfaches Ueberschreiben fuehrt einerseits zu Fehlern
- im Code anderer und ist andererseits unfair gegenueber ihnen
+ /sys/new_skills.h
-BEISPIELE:
- *** der Spieler erhaelt eine Verwundung, die ihn manchmal behindert ***
- if(!pointerp(tmp=TP->QueryProp(P_TMP_ATTACK_HOOK)) ||
- sizeof(tmp)<3 || tmp[0]<=time()) {
- TP->SetProp(P_TMP_ATTACK_HOOK,
- ({time()+3600, this_object(), "test_hurt"}));
- ...
- // die entsprechende Methode, die bei jedem Angriff ueber Attack()
- // gerufen wird ...
- int test_hurt(object enemy) {
+BESCHREIBUNG
+============
- // mit 10% Chance generell und 20% Chance bei groesseren Gegnern
- // bricht der Angriff ab ... previous_object() ist natuerlich
- // der Angreifer
- if(!random(10) ||
- (enemy->QueryProp(P_SIZE)>previous_object()->QueryProp(P_SIZE) &&
- !random(5)) {
+ Mittels dieser Property koennen die Attacken eines Livings ggf.
+ abgebrochen werden noch bevor Waffen oder Skills zum ausgewertet
+ wurden.
- tell_object(previous_object(),
- "Deine Wunde schmerzt dich zu sehr um anzugreifen.\n");
- tell_room(environment(previous_object()),
- previous_object()->Name(WER,1)+" zuckt vor Schmerzen zusammen.\n",
- ({previous_object()}));
- return 0;
- }
+ Es wird an dem Living die Property als mindestens 3-elementiges Array:
+ ({zeitpunkt, objekt, methode, ...})
+ gesetzt und die Methode 'methode' wird dann waehrend des Attack() des
+ Lebewesens in 'objekt' aufgerufen, solange time()<'zeitpunkt'.
- // ansonsten geht der Angriff weiter
- return 1;
+ Der Methode wird als Parameter der Gegner uebergeben.
+
+ Gibt die Methode 0 als Rueckgabewert zurueck, wird die Attacke sofort
+ kommentarlos abgebrochen.
+
+
+BEMERKUNGEN
+===========
+
+ - Bitte das neuere Hooksystem (s. Manpage std/hooks) benutzen.
+ - falls die Zeit abgelaufen oder das Objekt zerstoert ist, wird die
+ Property auf 0 gesetzt
+ - vor dem Setzen immer auf die Existenz eines gueltigen Hooks
+ pruefen, einfaches Ueberschreiben fuehrt einerseits zu Fehlern
+ im Code anderer und ist andererseits unfair gegenueber ihnen
+
+
+BEISPIELE
+=========
+
+ *** der Spieler erhaelt eine Verwundung, die ihn manchmal behindert ***
+ if(!pointerp(tmp=TP->QueryProp(P_TMP_ATTACK_HOOK)) ||
+ sizeof(tmp)<3 || tmp[0]<=time()) {
+ TP->SetProp(P_TMP_ATTACK_HOOK,
+ ({time()+3600, this_object(), "test_hurt"}));
+ ...
+
+ // die entsprechende Methode, die bei jedem Angriff ueber Attack()
+ // gerufen wird ...
+ int test_hurt(object enemy) {
+
+ // mit 10% Chance generell und 20% Chance bei groesseren Gegnern
+ // bricht der Angriff ab ... previous_object() ist natuerlich
+ // der Angreifer
+ if(!random(10) ||
+ (enemy->QueryProp(P_SIZE)>previous_object()->QueryProp(P_SIZE) &&
+ !random(5)) {
+
+ tell_object(previous_object(),
+ "Deine Wunde schmerzt dich zu sehr um anzugreifen.\n");
+ tell_room(environment(previous_object()),
+ previous_object()->Name(WER,1)+" zuckt vor Schmerzen zusammen.\n",
+ ({previous_object()}));
+ return 0;
}
-SIEHE AUCH:
- Angriff: Attack(L)
- Schutz: Defend(L)
- Verwandt: InternalModifyAttack(L), P_TMP_ATTACK_MOD
- Hooks: P_TMP_DIE_HOOK, P_TMP_MOVE_HOOK, P_TMP_DEFEND_HOOK
- neue Hooks: std/hooks
+ // ansonsten geht der Angriff weiter
+ return 1;
+ }
+
+
+SIEHE AUCH
+==========
+
+ Angriff: Attack(L)
+ Schutz: Defend(L)
+ Verwandt: InternalModifyAttack(L), P_TMP_ATTACK_MOD
+ Hooks: P_TMP_DIE_HOOK, P_TMP_MOVE_HOOK, P_TMP_DEFEND_HOOK
+ neue Hooks: std/hooks
08.12.2008, Zesstra
diff --git a/doc/props/obsolete/P_TMP_ATTACK_MOD b/doc/props/obsolete/P_TMP_ATTACK_MOD
index 3491c0c..df10409 100644
--- a/doc/props/obsolete/P_TMP_ATTACK_MOD
+++ b/doc/props/obsolete/P_TMP_ATTACK_MOD
@@ -1,112 +1,134 @@
-********************* VERALTETE PROPERTY ******************************
-* Diese Property ist veraltet. Bitte nicht mehr in neuem Code nutzen. *
-***********************************************************************
+
P_TMP_ATTACK_MOD
+****************
-NAME:
- P_TMP_ATTACK_MOD "attack_mod"
+********************* VERALTETE PROPERTY
+****************************** * Diese Property ist veraltet. Bitte
+nicht mehr in neuem Code nutzen. * **********************************
+************************************* P_TMP_ATTACK_MOD
-DEFINIERT IN:
- /sys/new_skills.h
-BESCHREIBUNG:
- Mittels dieser Property koennen die Attacken eines Livings temporaer
- veraendert werden.
+NAME
+====
- Es wird an dem Living die Property als mindestens 3-elementiges Array
- ({zeitpunkt, objekt, methode, ...})
- gesetzt und die Methode 'methode' wird dann waehrend des Attack() des
- Lebewesens in 'objekt' aufgerufen, solange time()<'zeitpunkt'.
+ P_TMP_ATTACK_MOD "attack_mod"
- Der Methode wird beim Aufruf ein Kopie des Mappings uebergeben, in dem
- die bisherigen Werte des Angriffes vermerkt sind.
- Aufbau von Mapping 'ainfo':
- ([ SI_ENEMY : object Angreifer, (-> Defend)
- SI_SPELL : 0/1/array Spellparameter, (-> Defend)
- P_WEAPON : - oder Waffe,
- SI_SKILLDAMAGE_MSG: string Angriffsmeldungsende an Raum,
- SI_SKILLDAMAGE_MSG2: string Angriffsmeldungsende an Kaempfende,
- SI_SKILLDAMAGE: int Schaden in Zehntel HP (Skills bis auf Rasse
- drin!) (-> Defend),
- SI_SKILLDAMAGE_TYPE: string/string* Schadenstypen, (-> Defend)
- P_WEAPON_TYPE: string Waffentyp (combat.h),
- P_WC: - oder int WC der Waffe/Hand,
- P_NR_HANDS: - oder int Hands der Waffe/Hand,
- ]);
- Gibt die Methode:
- - 0 oder kein Mapping zurueck, fuehrt das zum Abbruch der Attacke
- -> da inzwischen Waffen abgefragt wurden, koennen schon Meldungen
- von diesen ausgegeben worden sein
- - ein leeres Mapping ( ([]) ) zurueck, fuehrt das zu keiner Modifikation
- - ein Mapping mit veraenderten Werten zurueck, werden diese in das
- Angriffsmapping kopiert
- Die geaenderten Werte werden teilweise von SkillResTransfer() in
- den eigentlichen Angriff uebernommen.
+DEFINIERT IN
+============
-BEMERKUNGEN:
- - falls die Zeit abgelaufen oder das Objekt zerstoert ist, wird die
- Property auf 0 gesetzt
- - vor dem Setzen immer auf die Existenz eines gueltigen Modifiers
- pruefen, einfaches Ueberschreiben fuehrt einerseits zu Fehlern
- im Code anderer und ist andererseits unfair gegenueber ihnen
+ /sys/new_skills.h
-BEISPIELE:
- *** ein besonder heisser Segen modifiziert die Attacken des Spielers ***
- int action_segen() {
- ...
- mixed *tmp;
- // pruefen, ob nicht ein anderer Modifier existiert
- if(!pointerp(tmp=TP->QueryProp(P_TMP_ATTACK_MOD)) ||
- sizeof(tmp)<3 || tmp[0]<=time()) {
+BESCHREIBUNG
+============
- object wield;
- wield=TP->QueryProp(P_WEAPON);
+ Mittels dieser Property koennen die Attacken eines Livings temporaer
+ veraendert werden.
- write(break_string(
- "Der Priester der Flamme weiht "+
- (wield?wield->name(WEN,1):"deine Haende")+".", 78));
+ Es wird an dem Living die Property als mindestens 3-elementiges Array
+ ({zeitpunkt, objekt, methode, ...})
+ gesetzt und die Methode 'methode' wird dann waehrend des Attack() des
+ Lebewesens in 'objekt' aufgerufen, solange time()<'zeitpunkt'.
- // setzen des Modifiers .. 30-40 Sekunden gueltig
- TP->SetProp(P_TMP_ATTACK_MOD,
- ({time()+30+random(10), this_object(), "modfun"}));
- } else ...
- ...
- return 1;
- }
+ Der Methode wird beim Aufruf ein Kopie des Mappings uebergeben, in dem
+ die bisherigen Werte des Angriffes vermerkt sind.
+ Aufbau von Mapping 'ainfo':
+ ([ SI_ENEMY : object Angreifer, (-> Defend)
+ SI_SPELL : 0/1/array Spellparameter, (-> Defend)
+ P_WEAPON : - oder Waffe,
+ SI_SKILLDAMAGE_MSG: string Angriffsmeldungsende an Raum,
+ SI_SKILLDAMAGE_MSG2: string Angriffsmeldungsende an Kaempfende,
+ SI_SKILLDAMAGE: int Schaden in Zehntel HP (Skills bis auf Rasse
+ drin!) (-> Defend),
+ SI_SKILLDAMAGE_TYPE: string/string* Schadenstypen, (-> Defend)
+ P_WEAPON_TYPE: string Waffentyp (combat.h),
+ P_WC: - oder int WC der Waffe/Hand,
+ P_NR_HANDS: - oder int Hands der Waffe/Hand,
+ ]);
- // die eigentlich Methode, die waehrend des Angriffs gerufen wird
- mapping modfun(mapping ainfo) {
- mapping ret;
+ Gibt die Methode:
+ - 0 oder kein Mapping zurueck, fuehrt das zum Abbruch der Attacke
+ -> da inzwischen Waffen abgefragt wurden, koennen schon Meldungen
+ von diesen ausgegeben worden sein
+ - ein leeres Mapping ( ([]) ) zurueck, fuehrt das zu keiner Modifikation
+ - ein Mapping mit veraenderten Werten zurueck, werden diese in das
+ Angriffsmapping kopiert
+ Die geaenderten Werte werden teilweise von SkillResTransfer() in
+ den eigentlichen Angriff uebernommen.
- // Returnwert ist immer ein Mapping, damit die Attacke weitergeht
- ret=m_allocate(0,1);
- // magische Waffen oder Sprueche werden nicht verbessert
- if(ainfo[P_WEAPON_TYPE]!=WT_MAGIC) {
- // sonst Verbesserungen ... Feuer addieren ...
- ret[SI_SKILLDAMAGE_TYPE]=(ainfo[SI_SKILLDAMAGE_TYPE]||({}))+
- ({DT_FIRE});
- // ... und bei Waffe Meldungen anpassen
- if(ainfo[P_WEAPON]) {
- ret[SI_SKILLDAMAGE_MSG]=
- " mit sengendem "+ainfo[P_WEAPON]->name(RAW);
- ret[SI_SKILLDAMAGE_MSG2]=
- " mit sengendem "+ainfo[P_WEAPON]->name(RAW);
- }
+BEMERKUNGEN
+===========
+
+ - falls die Zeit abgelaufen oder das Objekt zerstoert ist, wird die
+ Property auf 0 gesetzt
+ - vor dem Setzen immer auf die Existenz eines gueltigen Modifiers
+ pruefen, einfaches Ueberschreiben fuehrt einerseits zu Fehlern
+ im Code anderer und ist andererseits unfair gegenueber ihnen
+
+
+BEISPIELE
+=========
+
+ *** ein besonder heisser Segen modifiziert die Attacken des Spielers ***
+ int action_segen() {
+ ...
+ mixed *tmp;
+
+ // pruefen, ob nicht ein anderer Modifier existiert
+ if(!pointerp(tmp=TP->QueryProp(P_TMP_ATTACK_MOD)) ||
+ sizeof(tmp)<3 || tmp[0]<=time()) {
+
+ object wield;
+ wield=TP->QueryProp(P_WEAPON);
+
+ write(break_string(
+ "Der Priester der Flamme weiht "+
+ (wield?wield->name(WEN,1):"deine Haende")+".", 78));
+
+ // setzen des Modifiers .. 30-40 Sekunden gueltig
+ TP->SetProp(P_TMP_ATTACK_MOD,
+ ({time()+30+random(10), this_object(), "modfun"}));
+ } else ...
+ ...
+ return 1;
+ }
+
+ // die eigentlich Methode, die waehrend des Angriffs gerufen wird
+ mapping modfun(mapping ainfo) {
+ mapping ret;
+
+ // Returnwert ist immer ein Mapping, damit die Attacke weitergeht
+ ret=m_allocate(0,1);
+
+ // magische Waffen oder Sprueche werden nicht verbessert
+ if(ainfo[P_WEAPON_TYPE]!=WT_MAGIC) {
+ // sonst Verbesserungen ... Feuer addieren ...
+ ret[SI_SKILLDAMAGE_TYPE]=(ainfo[SI_SKILLDAMAGE_TYPE]||({}))+
+ ({DT_FIRE});
+ // ... und bei Waffe Meldungen anpassen
+ if(ainfo[P_WEAPON]) {
+ ret[SI_SKILLDAMAGE_MSG]=
+ " mit sengendem "+ainfo[P_WEAPON]->name(RAW);
+ ret[SI_SKILLDAMAGE_MSG2]=
+ " mit sengendem "+ainfo[P_WEAPON]->name(RAW);
}
-
- return ret;
}
-SIEHE AUCH:
- Angriff: Attack(L)
- Schutz: Defend(L)
- Verwandt: InternalModifyAttack(L)
- P_TMP_ATTACK_HOOK
- P_TMP_DEFEND_HOOK
- Sonstiges: SkillResTransfer(L)
- Hooks: P_TMP_DIE_HOOK, P_TMP_MOVE_HOOK
+ return ret;
+ }
+
+
+SIEHE AUCH
+==========
+
+ Angriff: Attack(L)
+ Schutz: Defend(L)
+ Verwandt: InternalModifyAttack(L)
+ P_TMP_ATTACK_HOOK
+ P_TMP_DEFEND_HOOK
+ Sonstiges: SkillResTransfer(L)
+ Hooks: P_TMP_DIE_HOOK, P_TMP_MOVE_HOOK
10.Feb 2005 Gloinson
diff --git a/doc/props/obsolete/P_TMP_DEFEND_HOOK b/doc/props/obsolete/P_TMP_DEFEND_HOOK
index 986e63a..f29d342 100644
--- a/doc/props/obsolete/P_TMP_DEFEND_HOOK
+++ b/doc/props/obsolete/P_TMP_DEFEND_HOOK
@@ -1,110 +1,131 @@
-********************* VERALTETE PROPERTY ******************************
-* Diese Property ist veraltet. Bitte nicht mehr in neuem Code nutzen. *
-***********************************************************************
+
P_TMP_DEFEND_HOOK
+*****************
-NAME:
- P_TMP_DEFEND_HOOK "defend_hook"
+********************* VERALTETE PROPERTY
+****************************** * Diese Property ist veraltet. Bitte
+nicht mehr in neuem Code nutzen. * **********************************
+************************************* P_TMP_DEFEND_HOOK
-DEFINIERT IN:
- /sys/new_skills.h
-BESCHREIBUNG:
- Mittels dieser Property koennen die Abwehren eines Livings temporaer
- veraendert werden.
+NAME
+====
- Es wird an dem Living die Property als mindestens 3-elementiges Array
- ({zeitpunkt, objekt, methode, ...})
- gesetzt und die Methode 'methode' wird dann waehrend des Defend() des
- Lebewesens in 'objekt' aufgerufen, solange time()<'zeitpunkt'.
+ P_TMP_DEFEND_HOOK "defend_hook"
- Der Methode werden die Parameter der Defend() uebergeben:
- int dam, mixed dam_type, mixed spell, object enemy
- - spell ist definitiv ein Mapping - ein an Defend() uebergebener
- int-Wert wurde aequivalent umgesetzt.
- - dam_type ist definitiv ein Array von Schadenswerten oder einem Wert
- Zudem findet der Aufruf der Methode nach dem Abarbeiten der P_DEFENDERS
- statt, diese koennen also weitere Modifikationen vorgenommen haben.
+DEFINIERT IN
+============
- Gibt die Funktion:
- - 0 zurueck, wird Defend() abgebrochen (und damit der Schaden voellig
- abgefangen) - nur noch die Flucht wird geprueft
- - ein 3-elementiges Array ({schaden, schadenstypen, spell}) zurueck,
- werden diese Werte in der Defend() an Stelle der uebergebenen Werte
- verwendet
- - weder noch zurueck, wird das Ergebnis ignoriert und die Defend laeuft
- regulaer weiter
+ /sys/new_skills.h
-BEMERKUNGEN:
- - Bitte das neuere Hooksystem (s. Manpage std/hooks) benutzen.
- - falls die Zeit abgelaufen oder das Objekt zerstoert ist, wird die
- Property auf 0 gesetzt
- - vor dem Setzen immer auf die Existenz eines gueltigen Hooks
- pruefen, einfaches Ueberschreiben fuehrt einerseits zu Fehlern
- im Code anderer und ist andererseits unfair gegenueber ihnen
-BEISPIEL:
- *** ein gruener Schutzzauber ***
- // Setzen der Prop
- ...
- tmp=TP->QueryProp(P_TMP_DEFEND_HOOK);
+BESCHREIBUNG
+============
- // ein etwas ausfuehrlicher Check, ob wir ueberschreiben koennen,
- // Existenz && Gueltigkeit
- if(pointerp(tmp) && sizeof(tmp) && intp(tmp[0]) && (time()<tmp[0]))
- write("Der Zauber klappt nicht!\n");
- else {
- // der Zauber gilt eine Stunde
- TP->SetProp(P_TMP_DEFEND_HOOK,({time()+3600,TO,"abwehrfun");
- write("Ein Zauber legt sich auf dich.\n");
- }
- ...
+ Mittels dieser Property koennen die Abwehren eines Livings temporaer
+ veraendert werden.
- // die gerufene Methode
- mixed abwehrfun(int dam, string* dam_type, mapping spell, object en) {
- // keine rekursiven Schaeden abfangen ... mindestens ein magischer
- // muss auch dabei sein
- if((!mappingp(spell) || !spell[SP_RECURSIVE]) &&
- sizeof(filter(dam_type,MAGICAL_DAMAGE_TYPES))) {
+ Es wird an dem Living die Property als mindestens 3-elementiges Array
+ ({zeitpunkt, objekt, methode, ...})
+ gesetzt und die Methode 'methode' wird dann waehrend des Defend() des
+ Lebewesens in 'objekt' aufgerufen, solange time()<'zeitpunkt'.
- // mit 10% Whkeit schuetzt der Zauber total
- if(!random(10)) {
- tell_object(previous_object(),
- "Dein Zauber gleisst rund um dich gruen auf.\n");
- tell_room(environment(previous_object()), break_string(
- previous_object()->Name(WESSEN)+" Haut gleisst rund um "+
- previous_object()->QueryPronoun(WEN)+" gruen auf.",78),
- ({previous_object()}));
+ Der Methode werden die Parameter der Defend() uebergeben:
+ int dam, mixed dam_type, mixed spell, object enemy
+ - spell ist definitiv ein Mapping - ein an Defend() uebergebener
+ int-Wert wurde aequivalent umgesetzt.
+ - dam_type ist definitiv ein Array von Schadenswerten oder einem Wert
- // manchmal geht der Zauber dabei endgueltig kaputt
- if(!random(10)) previous_object()->SetProp(P_TMP_DEFEND_HOOK, 0);
+ Zudem findet der Aufruf der Methode nach dem Abarbeiten der P_DEFENDERS
+ statt, diese koennen also weitere Modifikationen vorgenommen haben.
- return 0; // volles Abfangen des Angriffs
- }
+ Gibt die Funktion:
+ - 0 zurueck, wird Defend() abgebrochen (und damit der Schaden voellig
+ abgefangen) - nur noch die Flucht wird geprueft
+ - ein 3-elementiges Array ({schaden, schadenstypen, spell}) zurueck,
+ werden diese Werte in der Defend() an Stelle der uebergebenen Werte
+ verwendet
+ - weder noch zurueck, wird das Ergebnis ignoriert und die Defend laeuft
+ regulaer weiter
- // der Zauber schuetzt auf jeden Fall immer ein bischen
- tell_object(previous_object(),
- "Dein Zauber flackert rund um dich gruen auf.\n");
- tell_room(environment(previous_object()), break_string(
- previous_object()->Name(WESSEN)+" Haut flackert rund um "+
- previous_object()->QueryPronoun(WEN)+" gruen auf.",78),
- ({previous_object()}));
- dam=(7+random(2))*dam/10; // Schaden reduzieren
- return(({dam, dam_type, spell}));
- }
+BEMERKUNGEN
+===========
- // der Zauber schuetzt dann gar nicht ...
- return 1;
+ - Bitte das neuere Hooksystem (s. Manpage std/hooks) benutzen.
+ - falls die Zeit abgelaufen oder das Objekt zerstoert ist, wird die
+ Property auf 0 gesetzt
+ - vor dem Setzen immer auf die Existenz eines gueltigen Hooks
+ pruefen, einfaches Ueberschreiben fuehrt einerseits zu Fehlern
+ im Code anderer und ist andererseits unfair gegenueber ihnen
+
+
+BEISPIEL
+========
+
+ *** ein gruener Schutzzauber ***
+ // Setzen der Prop
+ ...
+ tmp=TP->QueryProp(P_TMP_DEFEND_HOOK);
+
+ // ein etwas ausfuehrlicher Check, ob wir ueberschreiben koennen,
+ // Existenz && Gueltigkeit
+ if(pointerp(tmp) && sizeof(tmp) && intp(tmp[0]) && (time()<tmp[0]))
+ write("Der Zauber klappt nicht!\n");
+ else {
+ // der Zauber gilt eine Stunde
+ TP->SetProp(P_TMP_DEFEND_HOOK,({time()+3600,TO,"abwehrfun");
+ write("Ein Zauber legt sich auf dich.\n");
+ }
+ ...
+
+ // die gerufene Methode
+ mixed abwehrfun(int dam, string* dam_type, mapping spell, object en) {
+ // keine rekursiven Schaeden abfangen ... mindestens ein magischer
+ // muss auch dabei sein
+ if((!mappingp(spell) || !spell[SP_RECURSIVE]) &&
+ sizeof(filter(dam_type,MAGICAL_DAMAGE_TYPES))) {
+
+ // mit 10% Whkeit schuetzt der Zauber total
+ if(!random(10)) {
+ tell_object(previous_object(),
+ "Dein Zauber gleisst rund um dich gruen auf.\n");
+ tell_room(environment(previous_object()), break_string(
+ previous_object()->Name(WESSEN)+" Haut gleisst rund um "+
+ previous_object()->QueryPronoun(WEN)+" gruen auf.",78),
+ ({previous_object()}));
+
+ // manchmal geht der Zauber dabei endgueltig kaputt
+ if(!random(10)) previous_object()->SetProp(P_TMP_DEFEND_HOOK, 0);
+
+ return 0; // volles Abfangen des Angriffs
}
-SIEHE AUCH:
- Angriff: Attack(L)
- Schutz: Defend(L)
- Verwandt: InternalModifyDefend(L), P_TMP_ATTACK_MOD
- Hooks: P_TMP_DIE_HOOK, P_TMP_MOVE_HOOK, P_TMP_ATTACK_HOOK
- neue Hooks: std/hooks
+ // der Zauber schuetzt auf jeden Fall immer ein bischen
+ tell_object(previous_object(),
+ "Dein Zauber flackert rund um dich gruen auf.\n");
+ tell_room(environment(previous_object()), break_string(
+ previous_object()->Name(WESSEN)+" Haut flackert rund um "+
+ previous_object()->QueryPronoun(WEN)+" gruen auf.",78),
+ ({previous_object()}));
+ dam=(7+random(2))*dam/10; // Schaden reduzieren
+
+ return(({dam, dam_type, spell}));
+ }
+
+ // der Zauber schuetzt dann gar nicht ...
+ return 1;
+ }
+
+
+SIEHE AUCH
+==========
+
+ Angriff: Attack(L)
+ Schutz: Defend(L)
+ Verwandt: InternalModifyDefend(L), P_TMP_ATTACK_MOD
+ Hooks: P_TMP_DIE_HOOK, P_TMP_MOVE_HOOK, P_TMP_ATTACK_HOOK
+ neue Hooks: std/hooks
08.12.2008, Zesstra
-
diff --git a/doc/props/obsolete/P_TMP_DIE_HOOK b/doc/props/obsolete/P_TMP_DIE_HOOK
index cd18917..f4008cb 100644
--- a/doc/props/obsolete/P_TMP_DIE_HOOK
+++ b/doc/props/obsolete/P_TMP_DIE_HOOK
@@ -1,70 +1,91 @@
-********************* VERALTETE PROPERTY ******************************
-* Diese Property ist veraltet. Bitte nicht mehr in neuem Code nutzen. *
-***********************************************************************
+
P_TMP_DIE_HOOK
+**************
-NAME:
- P_TMP_DIE_HOOK "die_hook"
+********************* VERALTETE PROPERTY
+****************************** * Diese Property ist veraltet. Bitte
+nicht mehr in neuem Code nutzen. * **********************************
+************************************* P_TMP_DIE_HOOK
-DEFINIERT IN:
- /sys/new_skills.h
-BESCHREIBUNG:
- Mittels dieser Property kann der Tod eines Livings abgewendet werden.
+NAME
+====
- Es wird an dem Living die Property als mindestens 3-elementiges Array
- ({zeitpunkt, objekt, methode, ...})
- gesetzt und die Methode 'methode' wird dann waehrend des die() des
- Lebewesens in 'objekt' aufgerufen, solange time()<'zeitpunkt'.
- Bei Geistern wird der Hook nicht gerufen.
+ P_TMP_DIE_HOOK "die_hook"
- Der Methode wird ein int uebergeben, ob das Living Opfer von Gift
- (P_POISON) war.
- Gibt die Funktion einen Wert != 0 zurueck, wird die() sofort abgebrochen
- und das Living stirbt nicht.
+DEFINIERT IN
+============
-BEMERKUNGEN:
- - Bitte das neuere Hooksystem (s. Manpage std/hooks) benutzen.
- - falls die Zeit abgelaufen oder das Objekt zerstoert ist, wird die
- Property auf 0 gesetzt
- - vor dem Setzen immer auf die Existenz eines gueltigen Hooks
- pruefen, einfaches Ueberschreiben fuehrt einerseits zu Fehlern
- im Code anderer und ist andererseits unfair gegenueber ihnen
+ /sys/new_skills.h
-BEISPIELE:
- *** ein besonderer Giftschutz .. wirkt beim Tod ***
- // pruefen, ob nicht ein anderer Modifier existiert
- if(!pointerp(tmp=TP->QueryProp(P_TMP_DIE_HOOK)) ||
- sizeof(tmp)<3 || tmp[0]<=time()) {
- TP->SetProp(P_TMP_DIE_HOOK,
- ({time()+120+random(10), this_object(), "prevent_die"}));
- // die gerufene Methode
- int prevent_die(int poison) {
- int ret;
+BESCHREIBUNG
+============
- if(poison) {
- tell_object(previous_object(),
- "Ein Zauber reinigt im Moment des Todes dein Blut!\n");
- tell_object(environment(previous_object()),
- previous_object()->Name(WER,1)+" wird von Lichtern umhuellt.\n",
- ({previous_object()}));
+ Mittels dieser Property kann der Tod eines Livings abgewendet werden.
- ret=1;
- }
+ Es wird an dem Living die Property als mindestens 3-elementiges Array
+ ({zeitpunkt, objekt, methode, ...})
+ gesetzt und die Methode 'methode' wird dann waehrend des die() des
+ Lebewesens in 'objekt' aufgerufen, solange time()<'zeitpunkt'.
+ Bei Geistern wird der Hook nicht gerufen.
- // wir helfen nur einmal ... und ein Tod vernichtet die Hilfe auch
- previous_object()->SetProp(P_TMP_DIE_HOOK, 0);
+ Der Methode wird ein int uebergeben, ob das Living Opfer von Gift
+ (P_POISON) war.
- return ret;
+ Gibt die Funktion einen Wert != 0 zurueck, wird die() sofort abgebrochen
+ und das Living stirbt nicht.
+
+
+BEMERKUNGEN
+===========
+
+ - Bitte das neuere Hooksystem (s. Manpage std/hooks) benutzen.
+ - falls die Zeit abgelaufen oder das Objekt zerstoert ist, wird die
+ Property auf 0 gesetzt
+ - vor dem Setzen immer auf die Existenz eines gueltigen Hooks
+ pruefen, einfaches Ueberschreiben fuehrt einerseits zu Fehlern
+ im Code anderer und ist andererseits unfair gegenueber ihnen
+
+
+BEISPIELE
+=========
+
+ *** ein besonderer Giftschutz .. wirkt beim Tod ***
+ // pruefen, ob nicht ein anderer Modifier existiert
+ if(!pointerp(tmp=TP->QueryProp(P_TMP_DIE_HOOK)) ||
+ sizeof(tmp)<3 || tmp[0]<=time()) {
+ TP->SetProp(P_TMP_DIE_HOOK,
+ ({time()+120+random(10), this_object(), "prevent_die"}));
+
+ // die gerufene Methode
+ int prevent_die(int poison) {
+ int ret;
+
+ if(poison) {
+ tell_object(previous_object(),
+ "Ein Zauber reinigt im Moment des Todes dein Blut!\n");
+ tell_object(environment(previous_object()),
+ previous_object()->Name(WER,1)+" wird von Lichtern umhuellt.\n",
+ ({previous_object()}));
+
+ ret=1;
}
-SIEHE AUCH:
- Tod: die(L)
- Sonstiges: P_POISON, P_KILLS, P_GHOST
- Hooks: P_TMP_MOVE_HOOK, P_TMP_ATTACK_HOOK, P_TMP_DEFEND_HOOK
- neue Hooks: std/hooks
+ // wir helfen nur einmal ... und ein Tod vernichtet die Hilfe auch
+ previous_object()->SetProp(P_TMP_DIE_HOOK, 0);
+
+ return ret;
+ }
+
+
+SIEHE AUCH
+==========
+
+ Tod: die(L)
+ Sonstiges: P_POISON, P_KILLS, P_GHOST
+ Hooks: P_TMP_MOVE_HOOK, P_TMP_ATTACK_HOOK, P_TMP_DEFEND_HOOK
+ neue Hooks: std/hooks
08.12.2008, Zesstra
-
diff --git a/doc/props/obsolete/P_TMP_MOVE_HOOK b/doc/props/obsolete/P_TMP_MOVE_HOOK
index c28a067..8f1aa77 100644
--- a/doc/props/obsolete/P_TMP_MOVE_HOOK
+++ b/doc/props/obsolete/P_TMP_MOVE_HOOK
@@ -1,42 +1,65 @@
-********************* VERALTETE PROPERTY ******************************
-* Diese Property ist veraltet. Bitte nicht mehr in neuem Code nutzen. *
-***********************************************************************
-NAME:
- P_TMP_MOVE_HOOK "move_hook"
-DEFINIERT IN:
- /sys/new_skills.h
+P_TMP_MOVE_HOOK
+***************
-BESCHREIBUNG:
- Mindestens 3-elementiges Array ({zeitpunkt, objekt, funktion, ...}).
- Die Funktion wird im 'objekt' mit den gleichen Parametern wie move()
- nach der Abfrage auf P_NO_TPORT aufgerufen, wenn der 'zeitpunkt'
- noch nicht ueberschritten ist. Wenn die Funktion etwas anderes als ein
- 5-elementiges Array ({dest, methods, direction, textout, textin})
- oder -1 zurueckgibt, wird move() normal ausgefuehrt, ansonsten werden die
- 5 move-Parameter durch die Array-Eintraege ersetzt bzw. wird bei einem
- Rueckgabewert von -1 das move() abgebrochen. In letzterem Fall ist
- die Funktion dafuer verantwortlich, eine entspr. Meldung an den
- Spieler auszugeben!
+********************* VERALTETE PROPERTY
+****************************** * Diese Property ist veraltet. Bitte
+nicht mehr in neuem Code nutzen. * **********************************
+*************************************
-HINWEIS:
- Falls man einem Spieler einen Move-Hook setzt, ist es ratsam, im
- Move-Hook zu pruefen, ob das Spielerobjekt nach Abarbeitung der Hook-
- Funktion noch lebt. Ansonsten wird ein doppeltes move() ausgefuehrt:
- in den Todesraum und direkt wieder zurueck zur Leiche.
-BEMERKUNGEN:
- - Bitte das neuere Hooksystem (s. Manpage std/hooks) benutzen.
- - falls die Zeit abgelaufen oder das Objekt zerstoert ist, wird die
- Property auf 0 gesetzt
- - vor dem Setzen immer auf die Existenz eines gueltigen Hooks
- pruefen, einfaches Ueberschreiben fuehrt einerseits zu Fehlern
- im Code anderer und ist andererseits unfair gegenueber ihnen
+NAME
+====
-SIEHE AUCH:
- Bewegung: move(L), NotifyMove(), PreventMove()
- Hooks: P_TMP_DIE_HOOK, P_TMP_DEFEND_HOOK, P_TMP_ATTACK_HOOK
- neue Hooks: std/hooks
+ P_TMP_MOVE_HOOK "move_hook"
-----------------------------------------------------------------------------
+
+DEFINIERT IN
+============
+
+ /sys/new_skills.h
+
+
+BESCHREIBUNG
+============
+
+ Mindestens 3-elementiges Array ({zeitpunkt, objekt, funktion, ...}).
+ Die Funktion wird im 'objekt' mit den gleichen Parametern wie move()
+ nach der Abfrage auf P_NO_TPORT aufgerufen, wenn der 'zeitpunkt'
+ noch nicht ueberschritten ist. Wenn die Funktion etwas anderes als ein
+ 5-elementiges Array ({dest, methods, direction, textout, textin})
+ oder -1 zurueckgibt, wird move() normal ausgefuehrt, ansonsten werden die
+ 5 move-Parameter durch die Array-Eintraege ersetzt bzw. wird bei einem
+ Rueckgabewert von -1 das move() abgebrochen. In letzterem Fall ist
+ die Funktion dafuer verantwortlich, eine entspr. Meldung an den
+ Spieler auszugeben!
+
+
+HINWEIS
+=======
+
+ Falls man einem Spieler einen Move-Hook setzt, ist es ratsam, im
+ Move-Hook zu pruefen, ob das Spielerobjekt nach Abarbeitung der Hook-
+ Funktion noch lebt. Ansonsten wird ein doppeltes move() ausgefuehrt:
+ in den Todesraum und direkt wieder zurueck zur Leiche.
+
+
+BEMERKUNGEN
+===========
+
+ - Bitte das neuere Hooksystem (s. Manpage std/hooks) benutzen.
+ - falls die Zeit abgelaufen oder das Objekt zerstoert ist, wird die
+ Property auf 0 gesetzt
+ - vor dem Setzen immer auf die Existenz eines gueltigen Hooks
+ pruefen, einfaches Ueberschreiben fuehrt einerseits zu Fehlern
+ im Code anderer und ist andererseits unfair gegenueber ihnen
+
+
+SIEHE AUCH
+==========
+
+ Bewegung: move(L), NotifyMove(), PreventMove()
+ Hooks: P_TMP_DIE_HOOK, P_TMP_DEFEND_HOOK, P_TMP_ATTACK_HOOK
+ neue Hooks: std/hooks
+
08.12.2008, Zesstra