P_RESTRICTIONS

NAME

P_RESTRICTIONS                                "restrictions"

DEFINIERT IN

/sys/combat.h
(Die SR_*-Parameter sind in /sys/new_skills.h definiert.)

BESCHREIBUNG

Enthaelt ein Mapping mit den zu pruefenden Einschraenkungen.

In dieser Property lassen sich Restriktionen setzen, die vor dem
Zuecken einer Waffe / Anziehen einer Ruestung oder Kleidung geprueft
werden und dies gegebenfalls verhindern, ohne gleich auf eine evtl.
vorhandene WieldFunc / WearFunc zuzugreifen.

Die Auswertung erfolgt ueber den Aufruf von check_restrictions()
in /std/restriction_checker.c per call_other().

Die im Mapping verwendbaren Eintraege finden sich in der Manpage
zu check_restrictions().

Die Funktionalitaet ist identisch mit Ausnahme von SR_FUN. Bei
Verwendung von SR_FUN im Mapping wird die Funktion, wenn sie als
Funktionsname angegeben wird, immer am aufrufenden Objekt gerufen.
Soll die Funktion an einem anderen Objekt gerufen werden, ist eine
der beiden alternativen Formen (Closure oder Array) zu verwenden,
um den Funktionsnamen anzugeben.

BEMERKUNGEN

Diese Property eignet sich hervorragend dafuer, einige Grundbedingungen
fuer das Nutzen der Waffe / Ruestung / Kleidung zu stellen, ohne gleich
eine Wield- oder WearFunc setzen und auswerten zu muessen.

Denkbar waere der Einsatz bei hochwertigen Waffen / Ruestungen / Kleidung,
z.B. aus der Para-Welt oder solchen, die sich nah am Limit der geltenden
Grenzwerte fuer P_WC / P_AC bewegen oder sogar (nach Genehmigung durch
die Balance) darueber.

BEISPIEL

Mindeststufe 25: SetProp(P_RESTRICTIONS,([P_LEVEL:25]));
Keine Menschen:  SetProp(P_RESTRICTIONS,([SR_EXCLUDE_RACE:({"Mensch"})]));
Alignment >499:  SetProp(P_RESTRICTIONS,([SR_GOOD:500]));

Komplexeres Beispiel

Quest "Diamond Club" bestanden, magiereigene Property P_AUSGANG_GEFUNDEN
muss gesetzt sein, Stufe 10, nicht taub, max. 45 Food:
SetProp(P_RESTRICTIONS, ([ P_LEVEL: 10, P_DEAF: 1, P_FOOD: 45,
  SR_PROP: ([P_AUSGANG_GEFUNDEN:1]), SR_QUEST:({"Diamond Club"}) ]));

SIEHE AUCH

check_restrictions(L), execute_anything(L)
WieldFunc(L), WearFunc(L), RemoveFunc(L), UnwieldFunc(L),
P_WIELD_FUNC, P_WEAR_FUNC, P_REMOVE_FUNC, P_UNWIELD_FUNC
/std/armour/wear.c, /std/weapon/combat.c, clothing, armours, weapon

LETZTE AeNDERUNG

03. Januar 2014, Arathorn