GetKiller

Kategorie: Objekte / Status
Ab Engineversion: 4.9.6.0 CR

Beschreibung

Liefert den Spieler, der zuletzt Energieabzug an einem Objekt verursacht hat.

Syntax

int GetKiller (object pObj);

Parameter

pObj:
[opt] Abzufragendes Objekt. 0 bei lokalem Aufruf.

Anmerkung

Aufgrund der Komplexität der Spielwelt von Clonk ist es nicht immer möglich, den tatsächlichen Schadensverursacher in Kettenreaktionen korrekt ausfindig zu machen. Zur Schadensverfolgung speichert jedes Objekt einen steuernden Spieler, der die Spielernummer des Spielers angibt, der ein Objekt zuletzt kontrolliert bzw. geworfen, geschoben, abgeschossen, etc. hat (für Details siehe GetController). Dieses Feld wird benutzt, um den Schaden erzeugenden Spieler zu ermitteln:
Der Schadensverursacher eines Clonks wird aumatisch auf NO_OWNER (kein Spieler) zurück gesetzt, wenn der Clonk eine Aktivität ausführt, für die nicht ObjectDisabled=1 gesetzt ist (zum Beispiel "Walk").
Selbst verursachter Schaden setzt das Feld nur dann auf den eigenen Spieler, wenn es vorher NO_OWNER war. Das verhindert, dass ein Spieler durch schnellen Selbstmord anderen Spielern Punkte wegnehmen kann. Wenn man unten herausfällt, gilt also derjenige als Mörder, der zuletzt Schaden verursacht hat. Wurde der Clonk mit einem Steintreffer herunter geschleudert, gilt in dem Fall der Steinwerfer.

Beispiel

protected func Death()
{
	var iKiller = GetKiller();
	if (iKiller == GetController()) Message("%s hat sich selbst umgebracht.", this(), GetName());
	else if (iKiller > NO_OWNER) Message("%s wurde von %s geplättet!", this(), GetName(), GetPlayerName(iKiller));
	else DeathAnnounce();
	return(true);
}
Script für den Tod eines Clonks: Anstatt der normalen Todesnachricht richtet sich die Nachricht danach, wer den Clonk getötet hat.
Siehe auch: DoEnergy, GetController, GetOwner, SetController, SetKiller
Sven2, April 2007