TrainPhysical

Kategorie: Objekte / Status
Ab Engineversion: 4.9.6.0 CR

Beschreibung

Erhöht den Wert der physischen Eigenschaft eines Objekts um den in iTrainBy angegebenen Wert. Mit diesem Aufruf werden sowohl die permanenten, als auch temporäre und temporär gestapelte Physicals trainiert. Dieser Befehl kann beispielsweise genutzt werden, um nach einem Zauber die Magiephysical zu trainieren.

Syntax

bool TrainPhysical (string szPhysical, int iTrainBy, int iMaxTrain, object pObj);

Parameter

szPhysical:
Name der Eigenschaft, die geändert werden soll
iTrainBy:
0-100000: Wert, um den trainiert wird
iMaxTrain:
Wert, der durch das Training nie überschritten wird. Es wird allerdings in keinem Fall die Physical reduziert, auch wenn der Zielwert unter dem hier angegebenen Wert läge.
pObj:
[opt] Objekt, dessen Physical trainiert werden soll. 0 bei lokalen Aufrufen.

Beispiel

// Globaler Aufruf, wenn ein Zauber erfolgreich war: Magie trainieren
global func OnClonkSucceededSpell(id idSpell, object pClonk)
  {
  if (!pClonk) if (!(pClonk = this())) return(_inherited(idSpell));
  // Zauberkraft trainieren (plus 1/10 des Zauberwerts)
  if (!ObjectCount(NMGE))
    {
    var iMaxTrain, idInfo;
    // Maximales Training bei Infoobjekten: Nach Ursprungsdefinition richten
    if (idInfo = GetObjectInfoCoreVal("id", "ObjectInfo", pClonk)) iMaxTrain = idInfo->~MaxMagicPhysical();
    // Infodefinition hat kein MaxMagicPhysical (d.h., kein Zauberclonk) oder kein Infoobjekt vorhanden:
    // Training wird eh nicht permanent gesichert; nach aktueller Definition richten
    if (!iMaxTrain) iMaxTrain = pClonk->~MaxMagicPhysical();
    // Trainieren
    TrainPhysical("Magic", Value(idSpell)/MCLK_ManaTrainRate, iMaxTrain, pClonk);
    }
  // Gegebenenfalls weitere Hooks erlauben
  return (_inherited(idSpell, pClonk));
  }
Beispiel aus der System.c4g: Trainiert bei einem erfolgreichen Zauber die Magiephsical des Zauberers. Dabei wird sicher gestellt, dass der zaubernde Clonk nicht über das durch die Funktion MaxMagicPhysical() in seiner Definition angegebene Limit trainiert werden kann.
Siehe auch: DefCore.txt, [Physical], GetPhysical, ResetPhysical, SetPhysical
Sven2, Juni 2003