| create() |
| ******** |
| |
| |
| FUNKTION |
| ======== |
| |
| protected void create(); |
| |
| |
| DEFINIERT IN |
| ============ |
| |
| allen Standardobjekten |
| |
| |
| ARGUMENTE |
| ========= |
| |
| keine |
| |
| |
| BESCHREIBUNG |
| ============ |
| |
| Diese Funktion wird aufgerufen, wenn ein Objekt geladen oder |
| geclont wird. In dieser Funktion wird das Objekt initialisiert und |
| konfiguriert. Waehrend des create() kann es einen |
| this_player()/this_interactive() geben, muss aber nicht! Im |
| create() hat das Objekt noch kein environment(). create() wird nur |
| gerufen, wenn das Objekte geclont oder explizit geladen wird. Wenn |
| es aufgrund eines inherit in einem anderen Objekt vom Driver |
| geladen wird, wird das create() nicht ausgefuehrt (s. |
| create_super()). |
| |
| |
| RUeCKGABEWERT |
| ============= |
| |
| keiner |
| |
| |
| BEMERKUNGEN |
| =========== |
| |
| Erbt man von anderen Objekten, so besteht die erste Aktion |
| innerhalb von create() normalerweise darin, in diesen Objekten |
| create() aufzurufen. |
| |
| In altem Code wird create() haeufig ohne Sichtbarkeitsmodifikator |
| verwendet, es sollte aber immer protected gewaehlt werden, es gibt |
| keinen guten Grund create() mehr als einmal zu rufen, im Gegenteil, |
| wird das geerbte create() mehrfach gerufen kann das zu schwer zu |
| findenden Bugs fuehren. |
| |
| Um Speicher zu sparen, kann man bei Blueprints von der |
| Konfigurierung absehen (siehe Beispiel). Dies sollte man allerdings |
| nicht bei Objekten machen, von denen keine Clones erzeugt werden |
| sollen (zB. bei Raeumen). |
| |
| Man sollte bei Abbruch des create() in BP unbedingt |
| set_next_reset(-1); rufen, da sonst die (nicht konfigurierte) BP |
| resetten kann und dann buggt. |
| |
| |
| BEISPIELE |
| ========= |
| |
| Ein Gegenstand wuerde wie folgt konfiguriert: |
| |
| inherit "/std/thing"; |
| |
| #include <properties.h> |
| |
| protected void create() |
| { |
| // Wenn wir die Blueprint sind: NICHT konfigurieren! |
| // Bei normalen Raeumen oder Transportern sind diese |
| // Zeilen wegzulassen!!! |
| if (!clonep(this_object())) |
| { |
| set_next_reset(-1); // wichtig, damit die BP nicht resettet. |
| return; |
| } |
| |
| // Ansonsten die allgemeinen Eigenschaften von /std/thing |
| // konfigurieren... |
| ::create(); |
| |
| // ...und nun unsere speziellen Eigenschaften: |
| SetProp(P_NAME, "Muell"); |
| SetProp(P_SHORT, "Muell"); |
| SetProp(P_LONG, "Voellig unnuetzer Muell!\n"); |
| SetProp(P_ARTICLE, 0); |
| SetProp(P_VALUE, 0); |
| SetProp(P_GENDER, MALE); |
| } |
| |
| |
| SIEHE AUCH |
| ========== |
| |
| create(), reset(), create_super() set_next_reset() |
| |
| Letzte Aenderung: 27.10.2018, Bugfix |