GetEffect

Kategorie: Effekte
Ab Engineversion: 4.9.5.0 CE

Beschreibung

Fragt Effektdaten ab, oder ermittelt, ob ein bstimmter Effekt vorhanden ist. Der Rückgabetyp richtet sich nach dem abgefragten Wert. Wurde der Effekt nicht gefunden, wird immer 0 zurückgegeben.

Syntax

any GetEffect (string szEffectName, object pTarget, int iIndex, int iQueryVal, int iMaxPriority);

Parameter

szEffectName:
[opt] Name des Effektes ohne vorangestelltes Fx. Es können '*' und '?' als Suchmaske verwendet werden.
pTarget:
[opt] Zielobjekt, in dem Effekte abgefragt werden sollen. Bei 0 wird die globale Effektliste durchsucht.
iIndex:
[opt] Effektindex. Bei angegebenem szEffectName gibt dies bei mehreren, der Suchmaske entsprechenden Effekten den indizierten Effekt in der Liste der passenden Effekte an. Ist szEffectName nicht angegeben, wird dagegen der Effekt mit der entsprechenden Effektnummer abgefragt. Im Gegensatz zu Effektnummern ist bei Indizes stets sichergestellt, dass beim Hochzählen von 0 bis zur Effektzahl alle Effekte erfasst werden.
iQueryVal:
[opt] Index des Wertes, der abgefragt werden soll. Siehe Anmerkung.
iMaxPriority:
[opt] Wenn ungleich 0, werden nur Effekte zurückgegeben, die höchstens die angegebene Priorität haben.

Anmerkung

Über den Parameter iQueryVal können folgende Werte abgefragt werden:

iQueryVal Wert
0 Effektnummer
1 Name
2 Priorität
3 Timer-Intervall
4 Befehlsziel
5 Befehlsziel-ID
6 Laufzeit des Effektes

Beispiel

var obj, i, iEffect;
// Alle Objekte durchsuchen
while (obj=FindObject(0, 0,0,0,0, 0, 0,0, 0, obj))
  {
  // Von Effektzahl abwärts zählen, da Effekte entfernt werden
  i = GetEffectCount(0, obj);
  while (i--)
    if (iEffect = GetEffect("*Spell", obj, i))
      RemoveEffect(0, obj, iEffect);
  }
// Globale Effekte entfernen
i = GetEffectCount();
while (i--)
  if (iEffect = GetEffect("*Spell", 0, i))
    RemoveEffect(0, 0, iEffect);
Entfernt alle Zaubereffekte von allen Objekten und global.
Siehe auch: AddEffect, ChangeEffect, CheckEffect, EffectCall, EffectVar, Effekte-Dokumentation, GetEffectCount, RemoveEffect
Sven2, März 2004