ShiftContents

Kategorie: Objekte / Inhalt
Ab Engineversion: 4.6.5.0 CP (erweitert ab 4.9.1.0 GWE)

Beschreibung

Sortiert die Inhaltsobjekte so um, dass das nächste Objekt mit anderer ID vorne liegt. Die häufigste Anwendung für diesen Befehl ist ein Inventarwechsel.

Syntax

bool ShiftContents (object pObj, bool fShiftBack, id idTarget, bool fDoCalls);

Parameter

pObj:
[opt] Objekt, dessen Inhaltsobjekte rotiert werden sollen. 0 bei lokalem Aufruf.
fShiftBack:
[opt] Wenn wahr, wird rückwärts durchsortiert.
idTarget:
[opt] ID des Objekttyps, der als nächstes ausgewählt sein soll. Wenn dieser Parameter angegeben ist, wird kein ControlContents-Aufruf mehr getätigt, sondern es wird direkt und ohne das Abspielen eines Sounds durchgeschaltet. Damit lässt sich beispielsweise das Durchschalten des Inventars in ControlConents überladen, und mit eigenen Sounds oder Zusatzaktivitäten versehen.
fDoCalls:
[opt] Wenn wahr, werden ControlContents- und Selection-Aufrufe getätigt.

Anmerkungen

Der Befehl ruft im Behälter ControlContents auf, womit die Umsortierung überladen werden kann. Gibt diese Funktion 0 zurück oder existiert nicht, wird für das neue selektierte Objekt "Selection" aufgerufen. Existiert diese Funktion nicht oder gibt 0 zurück, wird der Sound "Grab" beim Containerobjekt abgespielt. Siehe dazu auch Objektscripte.
Achtung: Durch das neue ControlContents-System, das ein variableres Interface für die Inventarauswahl bilden soll, ruft wie beschrieben auch ShiftContents den Auswahlsound hervor. Um Dopplungen zu vermeiden, sollten Objektscripte entsprechend angepasst werden, und beim Inventarwechsel keinen eigenen Sound mehr abspielen, bzw. diesen wie im Beispiel weiter unten nach ControlContents verlagern.

Beispiele

protected func ControlSpecial()
  {
  [Inventarwechsel]
  ShiftContents();
  return(1);
  }
Teil eines Objektscripts. Verschiebt die Inhaltsobjekte eines Objekts auf Spezialtaste 1.
protected func ControlContents(idTarget)
  {
  if (!ShiftContents(0, 0, idTarget)) return(1);
  return(1, Sound("Ding"));
  }
Durch dieses Objektscript verursacht das Auswählen eines anderen Gegenstandes im Inventar einen Ding-Sound.
Siehe auch: ResortObjects, ScrollContents
Sven2, April 2002