====== Vobs hinzufügen und entfernen ======
(von Fizzban)
Daedulus kennt leider nur einen Befehl, um Items während des Spiels in die Welt einzufügen. Die meisten anderen Vobs müssen dagegen im Spacer eingefügt werden und bleiben das gesamte Spiel lang an Ort und Stelle. Mit diesem Trick kann man beliebige Vobs mittels Scripte jederzeit in die Welt einfügen oder aus dieser entfernen.
1) Erstelle im Spacer ein zCMover-Objekt mit folgenden Werten:
vobname: Beliebiger eindeutiger Name
visual: Beliebige 3DS-Datei, z.B. //INVISIBLE_KEYFRAME.3DS// (der Mover wird im späteren Spiel nicht zu sehen sein, visual ist nur für Punkt 2 wichtig)
reactToOnTrigger: //TRUE//
reactToOnTouch: //FALSE//
reactToOnDamage: //FALSE//
respondToObject: //TRUE//
moverBehaviour: Entweder //2STATE_TRIGGER_CTRL// oder //2STATE_TOGGLE// (siehe unten für Details)
moveSpeed: //100//
speedType: //const//
2) Füge den VOB, den du später entfernen oder hinzufügen möchtest als Child vom Mover ein (Rechtsklick auf den Mover, dann Insert [...] as child of '...'). Es entsteht ein Vobtree mit dem Mover als Wurzel. Sollen mehrere VOBs prinzipiell immer gleichzeitig verschwinden oder erscheinen, können diese alle als Children von einem Mover erzeugt werden. Sollen sie dagegen unabhängig voneinander sein, braucht es für jeden VOB einen eigenen Mover.
3) Positioniere sämtliche VOBs in der Welt.
4) Setze **showVisual** des Movers auf //FALSE//. Durch die Auswahl des Movers erscheint im Fenster **Objectpages** automatisch die Kontrolle für Mover.
5) Drücke "new key", um den nullten Keyframe zu erzeugen.
6) Verschiebe den Mover eine gutes Stück nach unten. Da er die Wurzel eines Vobtrees ist, bewegen sich alle anderen Knoten im Baum, also die in Punkt 2 eingefügten VOBs ebenfalls nach unten. Auf diese Weise können sie aus dem Blickfeld des Charakters entfernt werden. Sie sind zwar weiterhin in der Welt, aber da der Spieler sie weder sehen noch mit ihnen interagieren kann, sind sie für ihn aus der Welt verschwunden.
7) Drücke erneut "new key", um den ersten Keyframe zu erstellen.
Ist der Mover im Modus //2STATE_TOGGLE// können nun in den Skripten die VOBs aus Punkt 2 mittels
Wld_SendTrigger("");
entfernt bzw. hinzufügt werden. Befindet er sich dagegen im Modus //2STATE_TRIGGER_CTRL//, so entfernt der obige Befehle die VOBs, während
Wld_SendUnTrigger("");
sie wieder einfügt.
Mögliche Anwendungen:
* "Umdekorieren" eines Ortes
* Austausch eines zcVOBs durch ein oCItem (zwei Mover notwendig). Indem man den zcVob entfernt und gleichzeitig das oCItem hinzufügt (und umgekehrt), können Gegenstände geschaffen werden, die nur unter bestimmten Umständen aufgenommen werden können
* Durch entsprechende Wahl des Keyframes in Punkt 6 können VOBs in der Welt verschwoben und nicht gleich entfernt werden.