blob: 2e94201482f0ccd5357be926db8fc40603e98c19 [file] [log] [blame]
Zesstrae9a1ad42019-09-11 21:29:10 +02001
2AutoAttack()
3************
4
5
6FUNKTION
7========
8
9 int AutoAttack(object ob)
10
11
12DEFINIERT IN
13============
14
15 /std/npc/combat
16
17
18ARGUMENTE
19=========
20
21 object ob
22 Das ggf. annzugreifende Object. (Achtung, nicht nur Livings)
23
24
25BESCHREIBUNG
26============
27
28 Diese Funktion wird aus heart_beat() heraus aufgerufen. Sie
29 bestimmt, ob ein Living automatisch angegriffen werden soll oder
30 nicht.
31
32
33RUeCKGABEWERT
34=============
35
36 1 fuer Angriff, sonst 0.
37
38
39BEMERKUNGEN
40===========
41
42 Da diese Funktion aus heart_beat() heraus aufgerufen wird, und zwar
43 einmal pro anwesendem Objekt (nicht nur fuer Livings), sollte man
44 hier moeglichst wenig Dinge tun. Verzichtet am besten ganz auf die
45 Nutzung, falls irgendwie moeglich.
46
47 Da auch NPCs uebergeben werden, kann man hier auch diese
48 automatisch angreifen lassen, was normalerweise nicht der Fall ist.
49 Dies funktioniert jedoch nur, wenn der heart_beat() eingeschaltet
50 ist, also normalerweise nicht in Abwesenheit von Spielern.
51
52
53BEISPIELE
54=========
55
56 inherit "/std/npc";
57
58 #include <npc.h>
59
60 protected void create()
61 {
62 ...
63 SetProp(P_AGGRESSIVE,1);
64 ...
65 }
66
67 // Keine Leute angreifen, die auf der Freundesliste stehen.
68 // Bei dieser Variante wir das P_AGGRESSIVE in ob nicht ausgewertet, falls
69 // ob als Freund erkannt wird.
70 int AutoAttack(object ob)
71 {
72 if(member(freunde,ob)!=-1) return 0;
73 else return ::AutoAttack(ob);
74 }
75
76
77SIEHE AUCH
78==========
79
80 heart_beat(), P_AGGRESSIVE
81
82Letzte Aenderung: 28.08.2019, Bugfix