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