Zesstra | 1862697 | 2017-01-31 10:38:27 +0100 | [diff] [blame] | 1 | P_RESTRICTIONS |
| 2 | ============== |
| 3 | |
| 4 | NAME |
| 5 | ---- |
| 6 | :: |
| 7 | |
| 8 | P_RESTRICTIONS "restrictions" |
| 9 | |
| 10 | DEFINIERT IN |
| 11 | ------------ |
| 12 | :: |
| 13 | |
| 14 | /sys/combat.h |
| 15 | (Die SR_*-Parameter sind in /sys/new_skills.h definiert.) |
| 16 | |
| 17 | BESCHREIBUNG |
| 18 | ------------ |
| 19 | :: |
| 20 | |
Zesstra | e0146a5 | 2019-01-07 21:15:12 +0100 | [diff] [blame^] | 21 | Enthaelt ein Mapping mit den zu pruefenden Einschraenkungen. |
Zesstra | 1862697 | 2017-01-31 10:38:27 +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 | e0146a5 | 2019-01-07 21:15:12 +0100 | [diff] [blame^] | 29 | in /std/restriction_checker.c per call_other(). |
Zesstra | 1862697 | 2017-01-31 10:38:27 +0100 | [diff] [blame] | 30 | |
Zesstra | e0146a5 | 2019-01-07 21:15:12 +0100 | [diff] [blame^] | 31 | Die im Mapping verwendbaren Eintraege finden sich in der Manpage |
| 32 | zu check_restrictions(). |
| 33 | |
| 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 | 1862697 | 2017-01-31 10:38:27 +0100 | [diff] [blame] | 40 | |
| 41 | BEMERKUNGEN |
| 42 | ----------- |
| 43 | :: |
| 44 | |
| 45 | Diese Property eignet sich hervorragend dafuer, einige Grundbedingungen |
Zesstra | e0146a5 | 2019-01-07 21:15:12 +0100 | [diff] [blame^] | 46 | fuer das Nutzen der Waffe / Ruestung / Kleidung zu stellen, ohne gleich |
Zesstra | 1862697 | 2017-01-31 10:38:27 +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 | BEISPIEL |
| 55 | -------- |
| 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 | |
Zesstra | e0146a5 | 2019-01-07 21:15:12 +0100 | [diff] [blame^] | 69 | |
Zesstra | 1862697 | 2017-01-31 10:38:27 +0100 | [diff] [blame] | 70 | SIEHE AUCH |
| 71 | ---------- |
| 72 | :: |
| 73 | |
Zesstra | e0146a5 | 2019-01-07 21:15:12 +0100 | [diff] [blame^] | 74 | check_restrictions(L), execute_anything(L) |
Zesstra | 1862697 | 2017-01-31 10:38:27 +0100 | [diff] [blame] | 75 | 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 | LETZTE AeNDERUNG |
| 80 | ---------------- |
| 81 | :: |
| 82 | |
Zesstra | e0146a5 | 2019-01-07 21:15:12 +0100 | [diff] [blame^] | 83 | 03. Januar 2014, Arathorn |
Zesstra | 1862697 | 2017-01-31 10:38:27 +0100 | [diff] [blame] | 84 | |