| |
| P_GUARD |
| ******* |
| |
| |
| NAME |
| ==== |
| |
| P_GUARD "guard" |
| |
| |
| DEFINIERT IN |
| ============ |
| |
| /sys/guard.h |
| |
| |
| BESCHREIBUNG |
| ============ |
| |
| Diese Property gibt an, ob ein NPC aus einem Raum entfernt werden darf |
| oder nicht. Abgefragt werden muss dies von den Items oder Spells, die |
| den NPC zu einer Bewegung zwingen wollen. Es wird nicht automatisch |
| darauf geachtet! |
| |
| Entscheidend hierbei ist ein in der Property enthaltene (ganzzahliger) |
| Zahlenwert zwischen 0 und 100, der hierbei den Grad der |
| 'Bewachungsstaerke' eines NPCs angibt. Bei 0 laesst sich das Lebewesen |
| immer zu einer Bewegung ueberreden, bei 100 ueberhaupt nicht. Dazwischen |
| gibt es die Wahrscheinlichkeit dafuer an. |
| |
| |
| BEMERKUNGEN |
| =========== |
| |
| - alle von /std/npc abgeleiteten NPCs haben standardmaessig P_GUARD |
| auf 100 gesetzt, sind also nicht fortfuehrbar |
| - bei der Erzeugung von NPCs mit P_GUARD < 100 AddItem() mit dem |
| Parameter REFRESH_MOVE_HOME verwenden, damit sie bei einem Raumreset |
| gegebenenfalls an ihren Ausgangsort zurueckkehren. |
| - gildenspezifische weitere Abfragen auf Level oAe bitte bei Gilden- |
| magiern erfragen |
| |
| |
| BEISPIELE |
| ========= |
| |
| // ein Test |
| if(random(100)<=liv->QueryProp(P_GUARD)) |
| cannotMoveNPC(); // NPC darf nicht bewegt werden! |
| else |
| moveNPC(); // NPC darf bewegt werden |
| |
| // ein wegfuehrbarer NPC |
| void create() { |
| ::create(); |
| ... |
| SetProp(P_GUARD,50); |
| ... |
| } |
| // mit 50% Wahrscheinlichkeit (pro Versuch) laesst sich der NPC nun |
| // fortfuehren |
| |
| |
| SIEHE AUCH |
| ========== |
| |
| AddItem() |
| |
| 13.April 2004 Gloinson |