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