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