blob: 03fc91ac82196afbf4cfccdfebdfc1caccc87063 [file] [log] [blame]
Zesstra953f9972017-02-18 15:37:36 +01001
MG Mud User88f12472016-06-24 23:31:02 +02002create()
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 protected void create();
10 void create();
MG Mud User88f12472016-06-24 23:31:02 +020011
MG Mud User88f12472016-06-24 23:31:02 +020012
Zesstra953f9972017-02-18 15:37:36 +010013DEFINIERT IN
14============
MG Mud User88f12472016-06-24 23:31:02 +020015
Zesstra953f9972017-02-18 15:37:36 +010016 allen Standardobjekten
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 keine
MG Mud User88f12472016-06-24 23:31:02 +020023
MG Mud User88f12472016-06-24 23:31:02 +020024
Zesstra953f9972017-02-18 15:37:36 +010025BESCHREIBUNG
26============
MG Mud User88f12472016-06-24 23:31:02 +020027
Zesstra953f9972017-02-18 15:37:36 +010028 Diese Funktion wird aufgerufen, wenn ein Objekt geladen oder geclont
29 wird.
30 In dieser Funktion wird das Objekt initialisiert und konfiguriert.
31 Waehrend des create() kann es einen this_player()/this_interactive()
32 geben, muss aber nicht!
33 Im create() hat das Objekt noch kein environment().
34 create() wird nur gerufen, wenn das Objekte geclont oder explizit geladen
35 wird. Wenn es aufgrund eines inherit in einem anderen Objekt vom Driver
36 geladen wird, wird das create() nicht ausgefuehrt (s. create_super()).
MG Mud User88f12472016-06-24 23:31:02 +020037
MG Mud User88f12472016-06-24 23:31:02 +020038
Zesstra953f9972017-02-18 15:37:36 +010039RUeCKGABEWERT
40=============
41
42 keiner
43
44
45BEMERKUNGEN
46===========
47
48 Erbt man von anderen Objekten, so besteht die erste Aktion innerhalb
49 von create() normalerweise darin, in diesen Objekten create()
50 aufzurufen.
51 Die Funktion kann protected oder static sein (aber nicht private). Es
52 duerfte fuer die meisten Objekte sinnvoll sein, create() protected zu
53 deklarieren.
54
55 Um Speicher zu sparen, kann man bei Blueprints von der Konfigurierung
56 absehen (siehe Beispiel). Dies sollte man allerdings nicht bei Objekten
57 machen, von denen keine Clones erzeugt werden sollen (zB. bei Raeumen).
58
59 Man sollte bei Abbruch des create() in BP unbedingt set_next_reset(-1);
60 rufen, da sonst die (nicht konfigurierte) BP resetten kann und dann
61 buggt.
62
63
64BEISPIELE
65=========
66
67 Ein Gegenstand wuerde wie folgt konfiguriert:
68
69 inherit "std/thing";
70
71 #include <properties.h>
72
73 create()
74 {
75 // Wenn wir die Blueprint sind: NICHT konfigurieren!
76 // Bei normalen Raeumen oder Transportern sind diese beiden
77 // Zeilen wegzulassen!!!
78 if (!clonep(this_object())) {
79 set_next_reset(-1); // wichtig, damit die BP nicht resettet.
80 return;
MG Mud User88f12472016-06-24 23:31:02 +020081 }
82
Zesstra953f9972017-02-18 15:37:36 +010083 // Ansonsten die allgemeinen Eigenschaften von /std/thing
84 // konfigurieren...
85 ::create();
86
87 // ...und nun unsere speziellen Eigenschaften:
88 SetProp(P_NAME, "Muell");
89 SetProp(P_SHORT, "Muell");
90 SetProp(P_LONG, "Voellig unnuetzer Muell!\n");
91 SetProp(P_ARTICLE, 0);
92 SetProp(P_VALUE, 0);
93 SetProp(P_GENDER, MALE);
94 }
95
96
97SIEHE AUCH
98==========
99
100 create(L), reset(L)
101 hook(C), create(H), create_ob(H), create_super(H, reset(H)
102 create(A), reset(A)
103
MG Mud User88f12472016-06-24 23:31:02 +020010422.10.2007, Zesstra