/*-- Show selector, but only if targets are available --*/ #strict 2 #appendto MSSH func Activate(pCaster,pRealcaster) { var pClonk=pRealcaster; if(!pClonk) pClonk=pCaster; var pCombo; // Stein verlängert die Wirkungsdauer if (pCombo = FindContents(ROCK, pCaster)) { fRock = true; RemoveObject(pCombo); } // Auswählen wenn möglich var comDir = pClonk->GetComDir(); var selector; if ((selector = pClonk->~DoSpellSelect(this,300,pCaster)) && (selector->CountTargets() > 1 || !SelectorTarget(pClonk))) return 1; if (selector) { pCaster->SpellSucceeded(GetID(), pClonk); RemoveObject(selector); } pClonk->SetComDir(comDir); // Clonk kann nicht auswählen: Clonk bekommst selbst ein Schild if (SelectorTarget(pClonk)) return(ActivateTarget(pClonk, pClonk)); // ansonsten geth nich RemoveObject(); return(0); } func FxStoneShieldPSpellTimer(pClonk, iEffectNumber, iEffectTime) { // Keine St舐ke mehr, weg damit if(!EffectVar(0,pClonk,iEffectNumber)) return(-1); // Schild verliert langsam an Energie if(!Random(120)) EffectVar(0,pClonk,iEffectNumber)-=1000; // Effekt! if (!Random(2)) CastParticles("PSpark", 1, 10, GetX(pClonk), GetY(pClonk)+4, 35, 60, GetPlrColorDw(GetOwner(pClonk)), GetPlrColorDw(GetOwner(pClonk))); return(1); }