blob: 03fc91ac82196afbf4cfccdfebdfc1caccc87063 [file] [log] [blame]
Zesstra953f9972017-02-18 15:37:36 +01001
2create()
3********
4
5
6FUNKTION
7========
8
9 protected void create();
10 void create();
11
12
13DEFINIERT IN
14============
15
16 allen Standardobjekten
17
18
19ARGUMENTE
20=========
21
22 keine
23
24
25BESCHREIBUNG
26============
27
28 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()).
37
38
39RUeCKGABEWERT
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;
81 }
82
83 // 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
10422.10.2007, Zesstra