Start Info Community Spielen
 
 

Morgengrauner Dokumentation

Dateipfad: /home/mud/mudlib/doc//lfun/create

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 

   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


zurück zur Übersicht

YOUTUBE | FACEBOOK | TWITTER | DISCORD | FEEDBACK | IMPRESSUM | DATENSCHUTZ 1992–2023 © MorgenGrauen.