blob: 012ff0a3784df8b07062a2c6f8ae01fff1bb083e [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001
Zesstra953f9972017-02-18 15:37:36 +01002P_RESTRICTIONS
3**************
MG Mud User88f12472016-06-24 23:31:02 +02004
5
Zesstra953f9972017-02-18 15:37:36 +01006NAME
7====
MG Mud User88f12472016-06-24 23:31:02 +02008
Zesstra953f9972017-02-18 15:37:36 +01009 P_RESTRICTIONS "restrictions"
MG Mud User88f12472016-06-24 23:31:02 +020010
MG Mud User88f12472016-06-24 23:31:02 +020011
Zesstra953f9972017-02-18 15:37:36 +010012DEFINIERT IN
13============
MG Mud User88f12472016-06-24 23:31:02 +020014
Zesstra953f9972017-02-18 15:37:36 +010015 /sys/combat.h
16 (Die SR_*-Parameter sind in /sys/new_skills.h definiert.)
MG Mud User88f12472016-06-24 23:31:02 +020017
MG Mud User88f12472016-06-24 23:31:02 +020018
Zesstra953f9972017-02-18 15:37:36 +010019BESCHREIBUNG
20============
MG Mud User88f12472016-06-24 23:31:02 +020021
Zesstra077cbc62019-01-07 21:16:39 +010022 Enthaelt ein Mapping mit den zu pruefenden Einschraenkungen.
Zesstra953f9972017-02-18 15:37:36 +010023
24 In dieser Property lassen sich Restriktionen setzen, die vor dem
25 Zuecken einer Waffe / Anziehen einer Ruestung oder Kleidung geprueft
26 werden und dies gegebenfalls verhindern, ohne gleich auf eine evtl.
27 vorhandene WieldFunc / WearFunc zuzugreifen.
28
29 Die Auswertung erfolgt ueber den Aufruf von check_restrictions()
Zesstra077cbc62019-01-07 21:16:39 +010030 in /std/restriction_checker.c per call_other().
Zesstra953f9972017-02-18 15:37:36 +010031
Zesstra077cbc62019-01-07 21:16:39 +010032 Die im Mapping verwendbaren Eintraege finden sich in der Manpage
33 zu check_restrictions().
Zesstra953f9972017-02-18 15:37:36 +010034
Zesstra077cbc62019-01-07 21:16:39 +010035 Die Funktionalitaet ist identisch mit Ausnahme von SR_FUN. Bei
36 Verwendung von SR_FUN im Mapping wird die Funktion, wenn sie als
37 Funktionsname angegeben wird, immer am aufrufenden Objekt gerufen.
38 Soll die Funktion an einem anderen Objekt gerufen werden, ist eine
39 der beiden alternativen Formen (Closure oder Array) zu verwenden,
40 um den Funktionsnamen anzugeben.
Zesstra953f9972017-02-18 15:37:36 +010041
42
43BEMERKUNGEN
44===========
45
46 Diese Property eignet sich hervorragend dafuer, einige Grundbedingungen
Zesstra077cbc62019-01-07 21:16:39 +010047 fuer das Nutzen der Waffe / Ruestung / Kleidung zu stellen, ohne gleich
Zesstra953f9972017-02-18 15:37:36 +010048 eine Wield- oder WearFunc setzen und auswerten zu muessen.
49
50 Denkbar waere der Einsatz bei hochwertigen Waffen / Ruestungen / Kleidung,
51 z.B. aus der Para-Welt oder solchen, die sich nah am Limit der geltenden
52 Grenzwerte fuer P_WC / P_AC bewegen oder sogar (nach Genehmigung durch
53 die Balance) darueber.
54
55
56BEISPIEL
57========
58
59 Mindeststufe 25: SetProp(P_RESTRICTIONS,([P_LEVEL:25]));
60 Keine Menschen: SetProp(P_RESTRICTIONS,([SR_EXCLUDE_RACE:({"Mensch"})]));
61 Alignment >499: SetProp(P_RESTRICTIONS,([SR_GOOD:500]));
62
63 Komplexeres Beispiel
64
65 Quest "Diamond Club" bestanden, magiereigene Property P_AUSGANG_GEFUNDEN
66 muss gesetzt sein, Stufe 10, nicht taub, max. 45 Food:
67 SetProp(P_RESTRICTIONS, ([ P_LEVEL: 10, P_DEAF: 1, P_FOOD: 45,
68 SR_PROP: ([P_AUSGANG_GEFUNDEN:1]), SR_QUEST:({"Diamond Club"}) ]));
69
70
71SIEHE AUCH
72==========
73
Zesstra077cbc62019-01-07 21:16:39 +010074 check_restrictions(L), execute_anything(L)
Zesstra953f9972017-02-18 15:37:36 +010075 WieldFunc(L), WearFunc(L), RemoveFunc(L), UnwieldFunc(L),
76 P_WIELD_FUNC, P_WEAR_FUNC, P_REMOVE_FUNC, P_UNWIELD_FUNC
77 /std/armour/wear.c, /std/weapon/combat.c, clothing, armours, weapon
78
79
80LETZTE AeNDERUNG
81================
82
Zesstra077cbc62019-01-07 21:16:39 +010083 03. Januar 2014, Arathorn