MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 1 | |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame] | 2 | defuel_food() |
| 3 | ************* |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 4 | |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 5 | |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame] | 6 | FUNKTION |
| 7 | ======== |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 8 | |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame] | 9 | int defuel_food(); |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 10 | |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 11 | |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame] | 12 | DEFINIERT IN |
| 13 | ============ |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 14 | |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame] | 15 | /std/living/life.c |
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 | ARGUMENTE |
| 19 | ========= |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 20 | |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame] | 21 | Keine. |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 22 | |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 23 | |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame] | 24 | BESCHREIBUNG |
| 25 | ============ |
| 26 | |
| 27 | Enttankt den Spieler automatisch um einen gewissen Essens-Wert, |
| 28 | sofern der Spieler ueber einer bestimmten Enttank-Grenze liegt und seit |
| 29 | seinem letzten Enttanken eine gewisse Zeit vergangen ist. |
| 30 | Alle diese Werte sind rassenabhaengig. |
| 31 | |
| 32 | Es ist also NICHT moeglich, Einfluss auf die Menge des Enttankens |
| 33 | zu nehmen. Das ist hier so gewollt. |
| 34 | |
| 35 | Hat der Spieler mindestens |
| 36 | * P_DEFUEL_LIMIT_FOOD in P_FOOD |
| 37 | kann er alle |
| 38 | * P_DEFUEL_TIME_FOOD |
| 39 | um |
| 40 | * (x=P_DRINK*P_DEFUEL_AMOUNT_FOOD/2) + random(x) |
| 41 | (also um (50 bis 100 * P_FOOD) Prozent) |
| 42 | enttanken. |
| 43 | |
| 44 | |
| 45 | RUECKGABEWERTE |
| 46 | ============== |
| 47 | |
| 48 | DEFUEL_TOO_SOON: -2, wenn Enttankintervallzeiten zu kurz. |
| 49 | DEFUEL_TOO_LOW: -1, wenn Enttankgrenze noch nicht erreicht. |
| 50 | NO_DEFUEL: 0, wenn Enttanken nicht noetig war (Spieler war leer) |
| 51 | >0, wenn Erfolg (enttankte Wert wird zurueckgegeben). |
| 52 | |
| 53 | (Konstanten kommen aus /sys/defuel.h) |
| 54 | |
| 55 | |
| 56 | BEMERKUNG |
| 57 | ========= |
| 58 | |
| 59 | Bitte defuel_food() benutzen und nicht P_FOOD oder P_MAX_FOOD des |
| 60 | Spielers manipulieren! |
| 61 | |
| 62 | Achtung: Nur Toiletten sollten diese Funktion im Spieler aufrufen! |
| 63 | |
| 64 | |
| 65 | BEISPIEL |
| 66 | ======== |
| 67 | |
| 68 | int action_enttanken() { |
| 69 | string msg; |
| 70 | int val = this_player()->defuel_food(); |
| 71 | |
| 72 | switch (val) { |
| 73 | case DEFUEL_TOO_SOON: |
| 74 | msg = "Du warst doch erst vor kurzem auf Toilette..."; |
| 75 | break; |
| 76 | case DEFUEL_TOO_LOW: |
| 77 | msg = "Du versuchst Dich zu entleeren, aber irgendwie will " |
| 78 | "das nicht so recht klappen."; |
| 79 | break; |
| 80 | case NO_DEFUEL: |
| 81 | msg = "Du hast seit langem nichts gegessen, wie willst Du dann " |
| 82 | "was loswerden koennen?"; |
| 83 | break; |
| 84 | default: |
| 85 | string qualifier; |
| 86 | int fuzzypercent = (90+random(20)) * |
| 87 | val/this_player()->QueryProp(P_MAX_FOOD); |
| 88 | switch(fuzzypercent) { |
| 89 | case 0..50: qualifier = "etwas"; break; |
| 90 | case 51..75: qualifier = "enorm"; break; |
| 91 | default: qualifier = "unglaublich"; break; |
| 92 | } |
| 93 | msg = "Du entleerst Dich "+qualifier"+. Puh, das tat gut!"; |
| 94 | break; |
| 95 | } |
| 96 | tell_object(this_player(), break_string(msg, 78)); |
| 97 | return 1; |
| 98 | } |
| 99 | |
| 100 | |
| 101 | SIEHE AUCH |
| 102 | ========== |
| 103 | |
| 104 | Aehnlich: defuel_drink |
| 105 | Tanken: consume, drink_alcohol, drink_soft, eat_food |
| 106 | Heilung: heal_self, restore_spell_points, restore_hit_points, |
| 107 | buffer_hp, buffer_sp |
| 108 | Timing: check_and_update_timed_key |
| 109 | Props: P_DRINK, P_FOOD, P_ALCOHOL, P_SP, P_HP, |
| 110 | P_DEFUEL_TIME_FOOD, P_DEFUEL_TIME_DRINK |
| 111 | Konzepte: heilung, enttanken, food |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 112 | |
| 113 | 9. August 2015 Gloinson |