SetPhysical

Kategorie: Objekte / Status
Ab Engineversion: 5.1 OC

Beschreibung

Ändert die physischen Eigenschaften des aufrufenden Objekts. Hiermit können die in der Physical-Sektion der DefCore.txt angegebenen Werte temporär oder permanent angepasst werden.

Syntax

bool SetPhysical(string physical, int value, int mode);

Parameter

physical:
Name Eigenschaft, die geändert werden soll
value:
0-100000: Neuer Wert für diese Eigenschaft
mode:
[opt] Änderungsmodus (symbolische Konstanten):
Konstante Wert Bedeutung
PHYS_Current 0 Die Eigenschaften werden im gerade aktiven Modus (temporär oder permanent) des Objektes geändert.
PHYS_Permanent 1 Die Eigenschaften werden permanent geändert. Das heißt, dass auch die Infosektion des Objektes modifiziert wird, und die Änderungen somit auch in die Spielerdatei geschrieben werden. Nur Spielercrewobjekte besitzen eine Infosektion.
PHYS_Temporary 2 Für das Objekt wird eine temporäre Infosektion erzeugt, sofern noch nicht vorhanden, und temporären Modus gesetzt. Änderungen im temporären Modus landen nicht in der Spielerdatei. Um temporäre Physicals wieder zu den Originalen zurückzusetzen, sollte ResetPhysical verwendet werden.
PHYS_StackTemporary 3 Wie PHYS_Temporary, jedoch wird zusätzlich der vorherige Physical-Wert gesichert und kann einzeln mit einem ResetPhysical-Aufruf wiederhergestellt werden.

Beispiele

func ControlUse(object eater)
{
  eater->SetPhysical("Energy", 10000000, PHYS_Temporary);
  eater->DoEnergy(1000);
  RemoveObject();
}
Steroide - Der Clonk bekommt durch das Essen eine absurde Menge von Energie für diese Runde..
protected func FxJumpBoostStart(object trg, effect, int temporary)
{
  trg->SetPhysical("Jump", trg->GetPhysical("Jump", PHYS_Current) + 10000, PHYS_StackTemporary);
  return FX_OK;
}
		
protected func FxJumpBoostStop(object trg, effect, int reason, bool tmp)
{
  trg->ResetPhysical("Jump");
  return FX_OK;
}
Script für einen Effekt namens JumpBoost: Wenn auf ein Objekt angewendet, kann es bis zum Löschen des Effektes höher springen. Die Kombination von PHYS_StackTemporary beim Setzen und Angabe der geänderten Physical in ResetPhysical sorgt dafür, dass sich mehrere solcher Effekte problemlos kombinieren lassen.
Siehe auch: DefCore.txt, [Physical], GetPhysical, ResetPhysical, TrainPhysical
Sven2, 2003-06