Un ascenseur avec porte :

Construire un ascenseur formé d'une plate-forme qui joigne le rez-de-chaussée et le premier étage. Deux mobiles forment les deux portes de l'ascenseur en B et C. Ils ont un déplacement latéral. Deux mobiles figurant un bouton d'appel sont placés en D et E sur le mur à côté de la porte de l'ascenseur. Enfin deux "Dispatcher" sont placés en F et G par commodité. Ce peut être n'importe où.

Le "Tag" de A=Lift. Le "Tag" de B=p1. Le "Tag" de C=p2. Le "Event" de D=start. Le "Event" de E=start2. Le "Tag" de F=start. Le "Tag" de G=start2.

A aura la propriété "TriggerToggle". B et C auront "TriggerOpenTimed"

Donc, si on appuie sur le bouton d'appel de l'ascenseur, on active un "Dispatcheur" qui répartira différemment les actions selon l'étage, la plate-forme étant au départ au niveau du rez-de-chaussée.

Au rdc on aura l'enchaînement suivant : p1 -->lift -->p2 -->lift.
Au premier étage : lift -->p2 -->lift -->p1.

Dans le premier cas, la plate-forme est renvoyée au rdc, dans le second, elle est d'abord appelée à l'étage avant d'ouvrir la porte..

Mais si l'on veut faire un ascenseur qui desserve plsusieurs étages avec bouton d'appel et boutons d'accès aux étages dans l'ascenseur, on peut recourir très simplement aux propriétés de "ElevatorMover" et "ElevatorTrigger" :

Il faut utiliser un ElevatorMover qui sera la plate-forme de l'ascenseur ayant les paramètres suivants :
- Tag = asc"
- Object/InitialState = ElevatorTriggerGradual
- Mover/MoberEncroachType = ME_IgnoreWhenEncroach
- Mover/MoveTime = 3
- Numkeys = 3 correspondant aux 3 étages (3 Keyframes)

Les 3 porte de pallier ont pour "Tag" p0, p1 et p2. Leurs autres paramètres déterminants sont :
- Object/InitialState = TriggerOpenTimed

A chaque étage, un bouton constitué d'un mobile sert à ouvrir la porte (dont le "Tag" est dans son "Event"), tout en appelant indirectement l'ascenseur car pour l'actionner, il faut en fait entrer dans le rayon d'action d'une gâchette "ElevatorTrigger" placée au même endroit et définie comme suit :
- Events/Event = asc
- ElevatorTrigger/GotoKeyframe x où x est le numéro de l'étage où on se trouve.

Dans la cage d'ascenseur, au fond, il y a deux boutons correspondant aux deux autres étages. Devant ces boutons est placée une gâchette "ElevatorTrigger" dont le rayon d'action est très petit (10) et qui est sélectionnée cette fois par le tir, choisi ici pour mieux discriminer des boutons très proches. Ces gâchettes ont pour paramètres :
- ElevatorTrigger/GotoKeyframe = l'étage voulu
- ElevatorTrigger/TiggerType = TT_shoot
- Events/Event = asc

Il faut encore placer une gâchette simple près de la porte, à l'intérieur de l'ascenseur, et de faible rayon d'action, de façon à pouvoir sortir une fois qu'on est arrivé à l'étage concerné.

Pratiquement, cela fonctionne sans erreur. Il est parfois un peu délicat d'appuyer sur un bouton à l'intérieur de l'ascenseur, mais on peut améliorer la chose avec une cabine plus grande, une bonne répartition des boutons..

Dans un niveau de combat à mort, il serait intéressant d'avoir des voyants qui indiquent à quel étage se trouve la cabine pour prévoir le moment où on va ouvrir le feu..Il faut alors combiner avec des lumières à interrupteurs.

Une façon très simple de faire un ascenseur qui joigne simplement deux niveaux est de donner au "Tigger" qui commande la plateforme un collision verticale de la même hauteur que le puit avec les items "TriggerToggle" pour le mobile de la plateforme, et et un délai de réactivation de 2 ou 4 pour le "Tigger" placé au milieu du parcours. On suppose que la plateforme est en place à l'arrivée du joueur et qu'il poura donc la retrouver au retour. Sion prévoir un bouton d'appel.

TRAIN

Mobile simple
-Ignore
-Tag=train

Trigger lié avec
-AttachTag=train
-Event=train