blob: 48926d8929339081981e42b33347f63ed09b6a0e [file] [log] [blame]
Zesstra953f9972017-02-18 15:37:36 +01001
2consume()
3*********
4
MG Mud User88f12472016-06-24 23:31:02 +02005public varargs int consume(mapping cinfo, int testonly)
6
MG Mud User88f12472016-06-24 23:31:02 +02007
Zesstra953f9972017-02-18 15:37:36 +01008FUNKTION
9========
MG Mud User88f12472016-06-24 23:31:02 +020010
Zesstra953f9972017-02-18 15:37:36 +010011 public varargs int consume(mapping cinfo, int testonly);
MG Mud User88f12472016-06-24 23:31:02 +020012
Zesstra953f9972017-02-18 15:37:36 +010013 Aenderung der Gesundheit eines Lebewesens durch etwas Konsumierbares.
MG Mud User88f12472016-06-24 23:31:02 +020014
Zesstra953f9972017-02-18 15:37:36 +010015
16DEFINIERT IN
17============
18
19 /std/living/life.c
20
21
22ARGUMENTE
23=========
24
25 cinfo
Arathornb6667492020-01-08 21:48:54 +010026 Mapping mit Informationen ueber die Gesundheitsaenderung. Folgende
27 Schluessel koennen verwendet werden:
28 H_EFFECTS - Mapping der zu aendernden Properties mit dem Umfang der
29 Aenderung, erlaubte Properties siehe H_ALLOWED_EFFECTS
30 (P_HP, P_SP, P_POISON).
31 H_CONDITIONS - Mapping der zu pruefenden Properties mit dem Umfang der
32 Aenderung, erlaubte Properties siehe
33 H_ALLOWED_CONDITIONS (P_FOOD, P_DRINK, P_ALCOHOL)
34 H_DISTRIBUTION - Verteilung der Aenderung fuer P_HP, P_SP
35 HD_INSTANT: sofortige Heilung
36 HD_STANDARD: 5 pro Heartbeat
37 1 - 50: angebene Zahl pro Heartbeat
38 Aenderungen koennen sowohl positiv als auch negativ sein.
39
Zesstra953f9972017-02-18 15:37:36 +010040 testonly
Arathornb6667492020-01-08 21:48:54 +010041 Gibt an, ob nur die Bedingungen abgetestet werden sollen, oder
42 auch die Wirkung eintreten soll.
Zesstra953f9972017-02-18 15:37:36 +010043
44
45RUECKGABEWERT
46=============
47
MG Mud User88f12472016-06-24 23:31:02 +020048 1 erfolgreich konsumiert
49 0 keine oder falsche Aenderungsdaten in cinfo (nicht benutzbar)
Arathornb6667492020-01-08 21:48:54 +010050 <0 Bedingung fuer konsumieren nicht erfuellt.
51 Der Rueckgabewert ist dann ein Bitset aus:
MG Mud User88f12472016-06-24 23:31:02 +020052 HC_MAX_FOOD_REACHED - Kann nichts mehr essen
53 HC_MAX_DRINK_REACHED - Kann nichts mehr trinken
54 HC_MAX_ALCOHOL_REACHED - Kann nichts mehr saufen
Arathornb6667492020-01-08 21:48:54 +010055 HC_HOOK_CANCELLATION - durch H_HOOK_CONSUME abgebrochen
56
57 Hinweis: Wenn eine der Bedingungen nicht erfuellt ist, wird gar keine
58 Heilung ausgefuehrt, aber es sind stets alle Fehlercodes im
59 Rueckgabewert eingetragen.
MG Mud User88f12472016-06-24 23:31:02 +020060
MG Mud User88f12472016-06-24 23:31:02 +020061
Zesstra953f9972017-02-18 15:37:36 +010062BESCHREIBUNG
63============
MG Mud User88f12472016-06-24 23:31:02 +020064
Zesstra953f9972017-02-18 15:37:36 +010065 Die Funktion stellt eine Moeglichkeit zur Verfuegung, die Aenderung
66 der Gesundheit eines Lebewesens beim Konsumieren von irgendetwas (z.B in
67 einer Kneipe, durch eine Heilstellte oder tragbare Tanke, ...) zentral zu
68 erledigen. Sie vereint in sich die Pruefung auf Durchfuerbarkeit der
69 Aenderung und Anwendung der Aenderung.
MG Mud User88f12472016-06-24 23:31:02 +020070
Arathornb6667492020-01-08 21:48:54 +010071 Das erste Argument gibt die Eigenschaften der Aenderung an, der zweite
72 ob ausschliesslich die Pruefung auf Anwendbarkeit erfolgen soll.
MG Mud User88f12472016-06-24 23:31:02 +020073
MG Mud User88f12472016-06-24 23:31:02 +020074
Zesstra953f9972017-02-18 15:37:36 +010075BEMERKUNGEN
76===========
MG Mud User88f12472016-06-24 23:31:02 +020077
Arathornb6667492020-01-08 21:48:54 +010078 Hierbei bitte beachten, dass Tanken/Entanken sowie Heilungen ggf. von
Zesstra953f9972017-02-18 15:37:36 +010079 der (Heilungs-)Balance genehmigt werden muessen!
MG Mud User88f12472016-06-24 23:31:02 +020080
Arathornb6667492020-01-08 21:48:54 +010081 Historischer Code enthaelt u.U. auch eine einfache Angabe der
82 betroffenen Properties als Argument enthalten. Dies in neuem Code
83 nicht mehr machen, dort ein Mapping wie oben beschrieben nutzen.
84
85 H_ALLOWED_CONDITIONS und H_ALLOWED_EFFECTS sind in /sys/living/life.h
86 definiert.
87
MG Mud User88f12472016-06-24 23:31:02 +020088
Zesstra953f9972017-02-18 15:37:36 +010089BEISPIELE
90=========
MG Mud User88f12472016-06-24 23:31:02 +020091
Zesstra953f9972017-02-18 15:37:36 +010092 Heilung um 100 KP, 50 LP, aber nur wenn 30 P_FOOD gegessen werden kann:
93
Arathornb6667492020-01-08 21:48:54 +010094 consume( ([H_EFFECTS: ([P_HP:50, P_SP:100]),
Zesstra953f9972017-02-18 15:37:36 +010095 H_CONDITIONS: ([P_FOOD:30]) ]) );
96
97 Heilung um 100 KP und Vergiftung um 2, wenn 15 Alkohol getrunken werden
98 koennen. Die SP werden zeitverzoegert mit 10 pro Heartbeat zugefuehrt.
99
Arathornb6667492020-01-08 21:48:54 +0100100 consume( ([H_EFFECTS: ([P_SP: 100, P_POISON: 2]),
101 H_CONDITIONS: ([P_ALCOHOL: 15]),
102 H_DISTRIBUTION: 10]) );
Zesstra953f9972017-02-18 15:37:36 +0100103
104
105SIEHE AUCH
106==========
107
108 Aehnlich: drink_alcohol, eat_food, drink_soft
109 Heilung: heal_self, restore_spell_points, restore_hit_points,
110 buffer_hp, buffer_sp
111 Timing: check_and_update_timed_key
112 Enttanken: defuel_drink, defuel_food
113 Props: P_DRINK, P_FOOD, P_ALCOHOL, P_SP, P_HP,
114 P_DEFUEL_TIME_DRINK
115 Konzepte: heilung, enttanken, food
116
117
118LETZTE AeNDERUNG
119================
120
121 29.05.2015, Boing