blob: 7e122fd76f6eb17a52c5a5025b7556620f589f4d [file] [log] [blame]
Zesstra953f9972017-02-18 15:37:36 +01001consume()
2*********
3
MG Mud User88f12472016-06-24 23:31:02 +02004public varargs int consume(mapping cinfo, int testonly)
5
MG Mud User88f12472016-06-24 23:31:02 +02006
Zesstra953f9972017-02-18 15:37:36 +01007FUNKTION
8========
MG Mud User88f12472016-06-24 23:31:02 +02009
Zesstra953f9972017-02-18 15:37:36 +010010 public varargs int consume(mapping cinfo, int testonly);
MG Mud User88f12472016-06-24 23:31:02 +020011
Zesstra953f9972017-02-18 15:37:36 +010012 Aenderung der Gesundheit eines Lebewesens durch etwas Konsumierbares.
MG Mud User88f12472016-06-24 23:31:02 +020013
Zesstra953f9972017-02-18 15:37:36 +010014
15DEFINIERT IN
16============
17
18 /std/living/life.c
19
20
21ARGUMENTE
22=========
23
24 cinfo
Arathornb6667492020-01-08 21:48:54 +010025 Mapping mit Informationen ueber die Gesundheitsaenderung. Folgende
26 Schluessel koennen verwendet werden:
27 H_EFFECTS - Mapping der zu aendernden Properties mit dem Umfang der
28 Aenderung, erlaubte Properties siehe H_ALLOWED_EFFECTS
29 (P_HP, P_SP, P_POISON).
30 H_CONDITIONS - Mapping der zu pruefenden Properties mit dem Umfang der
31 Aenderung, erlaubte Properties siehe
32 H_ALLOWED_CONDITIONS (P_FOOD, P_DRINK, P_ALCOHOL)
33 H_DISTRIBUTION - Verteilung der Aenderung fuer P_HP, P_SP
34 HD_INSTANT: sofortige Heilung
35 HD_STANDARD: 5 pro Heartbeat
36 1 - 50: angebene Zahl pro Heartbeat
37 Aenderungen koennen sowohl positiv als auch negativ sein.
38
Zesstra953f9972017-02-18 15:37:36 +010039 testonly
Arathornb6667492020-01-08 21:48:54 +010040 Gibt an, ob nur die Bedingungen abgetestet werden sollen, oder
41 auch die Wirkung eintreten soll.
Zesstra953f9972017-02-18 15:37:36 +010042
43
44RUECKGABEWERT
45=============
46
MG Mud User88f12472016-06-24 23:31:02 +020047 1 erfolgreich konsumiert
48 0 keine oder falsche Aenderungsdaten in cinfo (nicht benutzbar)
Arathornb6667492020-01-08 21:48:54 +010049 <0 Bedingung fuer konsumieren nicht erfuellt.
50 Der Rueckgabewert ist dann ein Bitset aus:
MG Mud User88f12472016-06-24 23:31:02 +020051 HC_MAX_FOOD_REACHED - Kann nichts mehr essen
52 HC_MAX_DRINK_REACHED - Kann nichts mehr trinken
53 HC_MAX_ALCOHOL_REACHED - Kann nichts mehr saufen
Arathornb6667492020-01-08 21:48:54 +010054 HC_HOOK_CANCELLATION - durch H_HOOK_CONSUME abgebrochen
55
56 Hinweis: Wenn eine der Bedingungen nicht erfuellt ist, wird gar keine
57 Heilung ausgefuehrt, aber es sind stets alle Fehlercodes im
58 Rueckgabewert eingetragen.
MG Mud User88f12472016-06-24 23:31:02 +020059
MG Mud User88f12472016-06-24 23:31:02 +020060
Zesstra953f9972017-02-18 15:37:36 +010061BESCHREIBUNG
62============
MG Mud User88f12472016-06-24 23:31:02 +020063
Zesstra953f9972017-02-18 15:37:36 +010064 Die Funktion stellt eine Moeglichkeit zur Verfuegung, die Aenderung
65 der Gesundheit eines Lebewesens beim Konsumieren von irgendetwas (z.B in
66 einer Kneipe, durch eine Heilstellte oder tragbare Tanke, ...) zentral zu
67 erledigen. Sie vereint in sich die Pruefung auf Durchfuerbarkeit der
68 Aenderung und Anwendung der Aenderung.
MG Mud User88f12472016-06-24 23:31:02 +020069
Arathornb6667492020-01-08 21:48:54 +010070 Das erste Argument gibt die Eigenschaften der Aenderung an, der zweite
71 ob ausschliesslich die Pruefung auf Anwendbarkeit erfolgen soll.
MG Mud User88f12472016-06-24 23:31:02 +020072
MG Mud User88f12472016-06-24 23:31:02 +020073
Zesstra953f9972017-02-18 15:37:36 +010074BEMERKUNGEN
75===========
MG Mud User88f12472016-06-24 23:31:02 +020076
Arathornb6667492020-01-08 21:48:54 +010077 Hierbei bitte beachten, dass Tanken/Entanken sowie Heilungen ggf. von
Zesstra953f9972017-02-18 15:37:36 +010078 der (Heilungs-)Balance genehmigt werden muessen!
MG Mud User88f12472016-06-24 23:31:02 +020079
Arathornb6667492020-01-08 21:48:54 +010080 Historischer Code enthaelt u.U. auch eine einfache Angabe der
81 betroffenen Properties als Argument enthalten. Dies in neuem Code
82 nicht mehr machen, dort ein Mapping wie oben beschrieben nutzen.
83
84 H_ALLOWED_CONDITIONS und H_ALLOWED_EFFECTS sind in /sys/living/life.h
85 definiert.
86
MG Mud User88f12472016-06-24 23:31:02 +020087
Zesstra953f9972017-02-18 15:37:36 +010088BEISPIELE
89=========
MG Mud User88f12472016-06-24 23:31:02 +020090
Zesstra953f9972017-02-18 15:37:36 +010091 Heilung um 100 KP, 50 LP, aber nur wenn 30 P_FOOD gegessen werden kann:
92
Arathornb6667492020-01-08 21:48:54 +010093 consume( ([H_EFFECTS: ([P_HP:50, P_SP:100]),
Zesstra953f9972017-02-18 15:37:36 +010094 H_CONDITIONS: ([P_FOOD:30]) ]) );
95
96 Heilung um 100 KP und Vergiftung um 2, wenn 15 Alkohol getrunken werden
97 koennen. Die SP werden zeitverzoegert mit 10 pro Heartbeat zugefuehrt.
98
Arathornb6667492020-01-08 21:48:54 +010099 consume( ([H_EFFECTS: ([P_SP: 100, P_POISON: 2]),
100 H_CONDITIONS: ([P_ALCOHOL: 15]),
101 H_DISTRIBUTION: 10]) );
Zesstra953f9972017-02-18 15:37:36 +0100102
103
104SIEHE AUCH
105==========
106
107 Aehnlich: drink_alcohol, eat_food, drink_soft
108 Heilung: heal_self, restore_spell_points, restore_hit_points,
109 buffer_hp, buffer_sp
110 Timing: check_and_update_timed_key
111 Enttanken: defuel_drink, defuel_food
112 Props: P_DRINK, P_FOOD, P_ALCOHOL, P_SP, P_HP,
113 P_DEFUEL_TIME_DRINK
114 Konzepte: heilung, enttanken, food
115
116
117LETZTE AeNDERUNG
118================
119
120 29.05.2015, Boing