MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame^] | 1 | SpellAttack() |
| 2 | |
| 3 | FUNKTION: |
| 4 | void SpellAttack(object enemy) |
| 5 | |
| 6 | ARGUMENTE: |
| 7 | enemy: Der Feind. |
| 8 | |
| 9 | BESCHREIBUNG: |
| 10 | Diese Funktion wird in jedem Heartbeat eines NPCs ausgefuehrt, |
| 11 | falls nicht P_DISABLE_ATTACK gesetzt ist (Paralyse). |
| 12 | Standardmaessig tut diese Funktion nichts, aber man kann sie |
| 13 | ueberschreiben, damit in jedem Heartbeat Angriffe mit Spells |
| 14 | ausgefuehrt werden. |
| 15 | |
| 16 | Man sollte hierbei ein random() einbauen, damit der NPC nicht |
| 17 | in jedem Heartbeat auch wirklich einen Angriff ausfuehrt. |
| 18 | Ausserdem sollte man auch fuer eventuelle Ausgaben sorgen. |
| 19 | |
| 20 | RUECKGABEWERT: |
| 21 | Keiner. |
| 22 | |
| 23 | BEMERKUNG: |
| 24 | Die AttackChats, die mittels SetAttackChats gesetzt werden |
| 25 | koennen, macht im Grunde nichts anderes, aber Chats sind halt |
| 26 | keine Angriffe. :-) |
| 27 | |
| 28 | BEISPIELE: |
| 29 | Im Grunde ist dieses simple Beispiel eine Nachbildung von |
| 30 | Attack-Chats und soll dementsprechend nur der Anschauung dienen. |
| 31 | |
| 32 | void SpellAttack(object enemy) |
| 33 | { |
| 34 | // mit 80% Wahrscheinlichkeit wird nichts gemacht. |
| 35 | switch(random(5)) |
| 36 | { |
| 37 | case 0: |
| 38 | write("Der Ork tritt Dir in den Hintern.\n"); |
| 39 | return; |
| 40 | case 1: |
| 41 | write("Der Ork bruellt: Lebend kommst Du hier nicht raus!\n"); |
| 42 | return; |
| 43 | case 2: |
| 44 | write("Der Ork blutet schon aus mehreren Wunden.\n"); |
| 45 | return; |
| 46 | case 3: |
| 47 | write(knirsch(enemy)); |
| 48 | return; |
| 49 | default: |
| 50 | return; |
| 51 | } |
| 52 | } |
| 53 | |
| 54 | string knirsch(object enemy) |
| 55 | { |
| 56 | if (objectp(enemy)) |
| 57 | helm = enemy->QueryArmourByType(AT_HELMET); |
| 58 | if (objectp(helm)) |
| 59 | { |
| 60 | helm->Damage(1); |
| 61 | return "Der Ork beschaedigt Deinen Helm!\n"; |
| 62 | } |
| 63 | else |
| 64 | return ""; // keine Meldung |
| 65 | } |
| 66 | |
| 67 | SIEHE AUCH: |
| 68 | "Attack", "SetAttackChats", /std/npc/combat.c |
| 69 | |
| 70 | LETZTE AENDERUNG: |
| 71 | Don, 27.02.2003, 12:50:00 von Hirudo |