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