Category: Objects
/ Status
Since engine version: 4.9.6.0 CR
// 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));
}