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