blob: f8b6a2ef90a9208bf4d31c9bb7f52803c0ebce81 [file] [log] [blame]
Zesstra953f9972017-02-18 15:37:36 +01001
MG Mud User88f12472016-06-24 23:31:02 +02002RegisterHelperNPC()
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 public int RegisterHelperNPC(object npc, int flags);
MG Mud User88f12472016-06-24 23:31:02 +020010
MG Mud User88f12472016-06-24 23:31:02 +020011
Zesstra953f9972017-02-18 15:37:36 +010012DEFINIERT IN
13============
MG Mud User88f12472016-06-24 23:31:02 +020014
Zesstra953f9972017-02-18 15:37:36 +010015 /std/player/combat.c
16 /sys/living/combat.h
MG Mud User88f12472016-06-24 23:31:02 +020017
MG Mud User88f12472016-06-24 23:31:02 +020018
Zesstra953f9972017-02-18 15:37:36 +010019ARGUMENTE
20=========
MG Mud User88f12472016-06-24 23:31:02 +020021
Zesstra953f9972017-02-18 15:37:36 +010022 object npc
23 Objekt des helfenden NPC, der angemeldet werden soll.
MG Mud User88f12472016-06-24 23:31:02 +020024
Zesstra953f9972017-02-18 15:37:36 +010025 int flags
26 ver-oder-te Konstanten, die die Art des Helfer-NPC beschreiben (s.u.)
MG Mud User88f12472016-06-24 23:31:02 +020027
MG Mud User88f12472016-06-24 23:31:02 +020028
Zesstra953f9972017-02-18 15:37:36 +010029BESCHREIBUNG
30============
MG Mud User88f12472016-06-24 23:31:02 +020031
Zesstra953f9972017-02-18 15:37:36 +010032 Mit dieser Funktion wird ein einem Spieler helfender NPC im Spieler
33 angemeldet. Hierdurch kann spaeter herausgefunden werden, welche NPC
34 einem Spieler helfen und ggf. den von diesen verursachten Schaden im
35 Kampf dem Spieler zuzurechnen.
MG Mud User88f12472016-06-24 23:31:02 +020036
Zesstra953f9972017-02-18 15:37:36 +010037 Die Flags sind eine der folgenden Konstanten oder eine beliebige durch
38 ver-oder-ung gebildete Kombination.
MG Mud User88f12472016-06-24 23:31:02 +020039
Zesstra953f9972017-02-18 15:37:36 +010040 Momentan gibt es 2 Klassen von Helfer-NPC:
41 + GUILD_HELPER: der Helfer-NPC ist ein Gilden-NPC
42 + MISC_HELPER: der Helfer-NPC ist irgendein NPC, der nicht zu einer Gilde
43 gehoert.
MG Mud User88f12472016-06-24 23:31:02 +020044
Zesstra953f9972017-02-18 15:37:36 +010045 Zusaetzlich zu den Klassen gibt es noch weitere Flags, die etwas ueber
46 den Helfer-NPC sagen:
MG Mud User88f12472016-06-24 23:31:02 +020047
Zesstra953f9972017-02-18 15:37:36 +010048 + EXCLUSIVE_HELPER: dieser Helfer-NPC duldet keinen weiteren NPC der
49 gleichen Klasse.
50 + ACTIVE_HELPER: ist dieses Flag gesetzt, ist der NPC mehr als nur reiner
51 Schlagfaenger.
52
53 Wird EXCLUSIVE_HELPER gesetzt und es ist in der gleichen Klasse schon ein
54 NPC angemeldet, schlaegt die Registrierung fehl.
55 Ist in der gleichen Klasse bereits ein NPC mit EXCLUSIVE_HELPER
56 angemeldet, schlaegt die Registierung ebenfalls fehl, auch wenn der neue
57 NPC kein EXCLUSIVE_HELPER setzt.
58
59
60RUeCKGABEWERT
61=============
62
63 1, wenn die Registrierung erfolgreich war.
64 0 sonst. In diesem Fall darf der NPC dem Spieler NICHT helfen, weder
65 passiv (Schlagfaenger), noch aktiv.
66
67
68BEMERKUNGEN
69===========
70
71 Diese Funktion setzt bei der Erfolg die Property P_HELPER_NPC in <npc>
72 auf passende Werte.
73 Bitte auf gar keinen Fall die numerischen Werte der Konstanten fuer
74 <flags> nutzen, diese koennen sich jederzeit aendern.
75
76
77BEISPIELE
78=========
79
80 1. Ein nicht-exklusiver Gilden-NPC, der dem Spieler folgt.
81 if (spieler->RegisterHelperNPC(this_object(), GUILD_HELPER) == 1) {
82 move(environment(spieler), M_GO);
83 spieler->AddPursuer(this_object());
84 // meldung ausgebene...
85 }
86
87 2a. Ein exklusiver Nicht-Gilden-NPC
88 if (spieler->RegisterHelperNPC(this_object(),
89 MISC_HELPER|EXCLUSIVE_HELPER) == 1) {
90 move(environment(spieler), M_GO);
91 }
92
93 2b. Ein nicht-exklusiver Nicht-Gilde-NPC, der nach 2a. kommt.
94 if (spieler->RegisterHelperNPC(this_object(), MISC_HELPER) == 1) {
95 // ... wenn der NPC aus 2a noch existiert, trifft dies hier nie zu.
96 }
97
98 3. Ein exklusiver NPC, der weitere Gilden- und sonstige NPC ausschliesst
99 (Solche Kombination bitte mit der Gilden-Balance abstimmen.)
100 if (spieler->RegisterHelperNPC(this_object(),
101 MISC_HELPER|GUILD_HELPER|EXCLUSIVE_HELPER) == 1) {
102 move(environment(spieler), M_GO);
103 }
104
105 4. Die Registrierung ohne Klasse schlaegt fehl, z.B.:
106 spieler->RegisterHelperNPC(this_object(), 0);
107 spieler->RegisterHelperNPC(this_object(), EXCLUSIVE_HELPER);
108
109
110SIEHE AUCH
111==========
112
113 UnregisterHelperNPC()
114 P_HELPER_NPC