
AddPlant()
**********


FUNKTION
========

   varargs int AddPlant(string filename, [string|string* npcId])


DEFINIERT IN
============

   /std/room/kraeuter.c


ARGUMENTE
=========

   filename
     Der Filename des Krauts das hier gefunden werden soll.
   npcId
     Die ID eines NPCs oder die IDs einer Liste von NPCs, der/die das
     Kraut bewachen soll/en. Befindet sich ein NPC mit einer dieser IDs
     im Raum, kann das Kraut nicht gepflueckt werden. Dieses Argument
     ist optional!


RUeCKGABEWERT
=============

   -1 wenn das Objekt nicht geclont werden konnte
   >=0 sonst


BESCHREIBUNG
============

   Mit Hilfe dieser Funktion koennen Kraeuter fuer den mudweiten
   Kraeuterskill recht einfach eingebaut werden. Alles was man
   noch machen muss, ist den Namen der Pflanze in einem Detail oder
   der Langbeschreibung zu erwaehnen.
   Mit dem Befehl "showplant" in /obj/tools/planttool kann man sich
   bequem anzeigen lassen, was es alles an Kraeutern gibt, die man
   nehmen kann.


BEMERKUNGEN
===========

   Damit die Kraeuter von den Spielern zum Brauen von Traenken benutzt
   werden koennen, muss der Raum erst in einem Master eingetragen werden.
   Derzeit schickt ihr dazu am besten eine kurze Mail an einen Erzmagier,
   gerne nimmt Humni die derzeit entgegen.
   Die Kraeuter wurden von der Balance bereits alle im vorhinein
   abgenommen. Lediglich die Einhaltung der Kategorien ist zu beachten.
   Sind Kraeuter nicht im Master konfiguriert (wie z.B. im Homemud), sind
   alle erzeugten Kraeuter nur "Testkraeuter" mit nur der ID "kraut".


BEISPIELE
=========

   #include <items/kraeuter/kraeuterliste.h>
   inherit "/std/room/kraeuter";
   inherit "/std/room";



   void create()
   {
     ::create();
     SetProp(P_INT_LONG, "Du siehst eine Wiese voller Feldklee.\n");
     AddPlant(FELDKLEE);
   }


SIEHE AUCH
==========

   AddItem();

18.01.2015, Zesstra
