give_notify()
FUNKTION:
     void show_notify(object obj)

DEFINIERT IN:
     /std/living/put_and_get.c

ARGUMENTE:
     obj - dem Lebewesen gezeigtes Objekt

RUeCKGABEWERT:
     keiner

BESCHREIBUNG:
     Diese Funktion wird automatisch immer dann aufgerufen, wenn einem
     Lebewesen (welches kein Spielercharakter ist) ein Objekt gezeigt wird.
     Dies funktioniert nur dann, wenn der Standardbefehl der Spielershell
     verwendet wird ("zeige <name> <gegenstand>"). Selbstgebautes "zeige"
     funktioniert nicht.

BEISPIEL:
     Oftmals will man in Quests erreichen, dass einem NPC ein bestimmtes
     Item als Beweis der Erfuellung einer bestimmten Aufgabe vorgezeigt
     wird. Folgendermassen kann dies realisiert werden:

     void quest_ok(object obj) { ...
       // z.B. Vernichtung des Questobjektes und Questtexte
       // Questbelohnung und Questanerkennung, etc.
     }

     void show_notify(object obj) {
       if(obj->id("\nquestitem")) // Ist das das geforderte Questobjekt?
         quest_ok(obj);
     }

BEMERKUNGEN:
     Da es nur um das Vorzeigen von Gegenstaenden geht, die nicht den 
     Besitzer wechseln, sind Mechanismen wie P_REJECT in diesem Fall 
     nicht erforderlich.

SIEHE AUCH:
     give_notify(), /std/npc/put_and_get.c, /std/living/put_and_get.c

22. Oktober 2013 Arathorn
