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