blob: ba00347e52ff1bab325dfcd0a12b111b14f10e30 [file] [log] [blame]
Zesstra953f9972017-02-18 15:37:36 +01001
MG Mud User88f12472016-06-24 23:31:02 +02002SpellAttack()
Zesstra953f9972017-02-18 15:37:36 +01003*************
MG Mud User88f12472016-06-24 23:31:02 +02004
MG Mud User88f12472016-06-24 23:31:02 +02005
Zesstra953f9972017-02-18 15:37:36 +01006FUNKTION
7========
MG Mud User88f12472016-06-24 23:31:02 +02008
Zesstra953f9972017-02-18 15:37:36 +01009 void SpellAttack(object enemy)
MG Mud User88f12472016-06-24 23:31:02 +020010
MG Mud User88f12472016-06-24 23:31:02 +020011
Zesstra953f9972017-02-18 15:37:36 +010012ARGUMENTE
13=========
MG Mud User88f12472016-06-24 23:31:02 +020014
Zesstra953f9972017-02-18 15:37:36 +010015 enemy: Der Feind.
MG Mud User88f12472016-06-24 23:31:02 +020016
MG Mud User88f12472016-06-24 23:31:02 +020017
Zesstra953f9972017-02-18 15:37:36 +010018BESCHREIBUNG
19============
MG Mud User88f12472016-06-24 23:31:02 +020020
Zesstra953f9972017-02-18 15:37:36 +010021 Diese Funktion wird in jedem Heartbeat eines NPCs ausgefuehrt,
22 falls nicht P_DISABLE_ATTACK gesetzt ist (Paralyse).
23 Standardmaessig tut diese Funktion nichts, aber man kann sie
24 ueberschreiben, damit in jedem Heartbeat Angriffe mit Spells
25 ausgefuehrt werden.
MG Mud User88f12472016-06-24 23:31:02 +020026
Zesstra953f9972017-02-18 15:37:36 +010027 Man sollte hierbei ein random() einbauen, damit der NPC nicht
28 in jedem Heartbeat auch wirklich einen Angriff ausfuehrt.
29 Ausserdem sollte man auch fuer eventuelle Ausgaben sorgen.
MG Mud User88f12472016-06-24 23:31:02 +020030
Zesstra953f9972017-02-18 15:37:36 +010031
32RUECKGABEWERT
33=============
34
35 Keiner.
36
37
38BEMERKUNG
39=========
40
41 Die AttackChats, die mittels SetAttackChats gesetzt werden
42 koennen, macht im Grunde nichts anderes, aber Chats sind halt
43 keine Angriffe. :-)
44
45
46BEISPIELE
47=========
48
49 Im Grunde ist dieses simple Beispiel eine Nachbildung von
50 Attack-Chats und soll dementsprechend nur der Anschauung dienen.
51
52 void SpellAttack(object enemy)
53 {
54 // mit 80% Wahrscheinlichkeit wird nichts gemacht.
55 switch(random(5))
56 {
57 case 0:
58 write("Der Ork tritt Dir in den Hintern.\n");
59 return;
60 case 1:
61 write("Der Ork bruellt: Lebend kommst Du hier nicht raus!\n");
62 return;
63 case 2:
64 write("Der Ork blutet schon aus mehreren Wunden.\n");
65 return;
66 case 3:
67 write(knirsch(enemy));
68 return;
69 default:
70 return;
71 }
72 }
73
74 string knirsch(object enemy)
75 {
76 if (objectp(enemy))
77 helm = enemy->QueryArmourByType(AT_HELMET);
78 if (objectp(helm))
79 {
80 helm->Damage(1);
81 return "Der Ork beschaedigt Deinen Helm!\n";
82 }
83 else
84 return ""; // keine Meldung
85 }
86
87
88SIEHE AUCH
89==========
90
91 "Attack", "SetAttackChats", /std/npc/combat.c
92
93
94LETZTE AENDERUNG
95================
96
97 Don, 27.02.2003, 12:50:00 von Hirudo