Lpc Manpages

STANDARD LEICHEN OBJEKT
	"/std/corpse"
	
BENUTZUNG:
	inherit "/std/corpse";
	
	#include <properties.h>   // included intern /sys/living/corpse.h
					
	Wichtig! Nur /std/corpse selbst macht Meldungen auf dem Moerder-
	Kanal. Um in einer Leiche Properties zu setzen, muss man nicht
	umbedingt ein von der Leiche abgeleitetes Objekt schreiben, es
	genuegt, im Lebewesen (nicht in Spielern moeglich) die Funktion
	'second_life' zu ueberschreiben, und dort die Properties zu
	setzen (siehe Beispiel 2)
	
PROPERTIES:
	P_CORPSE_ORIGIN
		Mapping mit Informationen ueber das Lebewesen, vom dem die
		Leiche stammt (Keys CO_* aus /sys/living/corpse.h)
		CO_INTERACTIVE	1 wenns ein Spieler war, sonst 0
		CO_LEVEL	(Spieler-)Level
		CO_MAX_HP	maximale Anzahl Lebenspunkte
		Speziell fuer Monster:
		CO_XP		Erfahrungspunkte
		CO_PATH		Pfad incl der Objektnummer
		Speziell fuer Spieler:
		CO_LOST_XP	beim Tod verlorene Erfahrungspunkte
		CO_NAME		Spielername
		Man kann jeweils entweder CO_XP oder CO_LOST_XP, oder
		CO_PATH oder CO_NAME abfragen, aber nicht beides zugleich.
	P_CORPSE_DECAY_TIME
		Zeit zwischen 2 Verrottungsschritten der Leiche,
		Defaultwert 30 sec.
	P_CORPSE_DECAY_MSGS
		Array von Kurzbeschreibungen der Leiche in den einzelnen
		Verrottungsphasen, Default: ({
		"Die Leiche",
		"Die bereits ziemlich stinkende Leiche",
		"Die schimmelnde und halbverweste Leiche",
		"Die verfaulten Einzelteile" })
		(Der Name des Lebewesens wird angehaengt)
		
FUNKTIONEN:
	void gegessen()
		Wird nach einem Verspeisen der Leiche aufgerufen, und zwar
		nur, wenn die Leiche tatsaechlich 'gegessen' wurde. Direkt
		danach wird das Leichenobjekt vernichtet.

VERERBUNGBAUM:
	corpse
	  `-container

BEISPIEL:
	1. Leichenobjekt, das /std/corpse.c erweitert:

	inherit "std/corpse";

 	#include <properties.h>

	void create()
	{
		if (!is_clone(this_object()) return;
		::create();
		SetProp(P_INFO, "Diese Leiche koennte giftig sein!\n");
	}
	
	void gegessen()
	{
		write("Sofort bereust Du, die Leiche gegessen zu haben.\n");
		this_player()->SetProp(P_POISON,
			this_player()->QueryProp(P_POISON) + 4);
	}

	2. Setzen von Properties fuer eine Leiche:
	
	inherit "std/npc";
	
	#include <properties.h>
	#include <corpse.h>
	
	...
	
	int second_life(object corpse)
	{
		corpse->SetProp(P_CORPSE_DECAY_TIME, 10);
		// Leiche verrottet 3x schneller als normal...
		corpse->SetProp(P_LIGHT, 1);
		// ...und leuchtet im Dunklen
		return 0;
	}