Portes auto-fermantes
Portes doubles
Portes ouvrables avec un interrupteur
Portes secrètes
Faire des portes (secrètes) avec n'importe quel objet
Le son
En pratique
Portes auto-fermantes
(Tiré de Guide on Doors and Brushes by Imposter)
Si vous désirez que votre porte se ferme après un temps donné, vous pouvez
lui ajouter la propriété Script=>Timing et rentrer le temps désiré
en millisecondes (1000 millisecondes = 1 seconde). Et votre porte se refermera
derrière Garrett étonné
Portes doubles
(Tiré de Guide on Doors and Brushes by Imposter)
Si vous voulez réaliser une porte double, créez deux portes simples que vous
mettez côte à côte, faite tourner la porte de gauche de 180 degrés afin que
les serrures des deux portes soient au milieu, puis changer les propriétés
de cette dernière :
Door=>Rotating=>OpenAngle doit être décalé de 180 degrés par
rapport à la porte droite (donc, vous aurez une porte avec 90 et l'autre avec
270)
Door=>Rotating=>Clockwise doit être changé pour que les portes
tournent chacune dans un sens différent : la porte avec OpenAngle à
90 doit avoir Clockwise à false, la porte avec OpenAngle à 270
doit avoir Clockwise à true. Il faut maintenant que lorsqu'une porte
s'ouvre, l'autre fasse de même, pour cela ajoutez un lien ScriptParams
entre les deux portes et changer le champ Data à Double (cliquez
sur l'ID du lien, puis sur le bouton Data, puis marquez Double).
Et voila ...
Portes ouvrables avec un interrupteur
Afin de permettre l'ouverture par un interrupteur, faisons déjà en sorte que
la porte ne s'ouvre pas " à la main ". Editez les propriétés de la porte et
ajoutez la propriété Engine Features=>FrobInfo. Editez cette propriété
et enlevez dans le champ World Action le mot Script, puis remplacez
le par Ignore. Maintenant vous ne pouvez plus ouvrir la porte à la
main.
Créons maintenant un interrupteur à deux positions (sous
ObjectHierarchy=>Gizmo=>Switches=>Levers, e.g.
ObjectHierarchy=>Gizmo=>Switches=>Levers=>ArcingLever=>smallArcingUnlabelled).
Plaçons le sur le mur, et notons son numéro d'identifiant (IDs) ainsi que
celui de la porte. Sélectionnez l'interrupteur et cliquez sur " Links ". La
boîte de dialogue des liens apparaît. Cliquez " Add " et dans le champ Flavor
mettez ControlDevice (attention, celui sans tilde (~)), dans le champ
From. Marquez le numéro de cet interrupteur et dans le champ To
entrez le numéro de la porte. Cliquez " OK ". Vous venez de dire à l'interrupteur
qu'il peut ouvrir la porte, ce qu'il fera sans discuter lorsque vous l'actionnerez
en mode jeu.
Maintenant, en général, une porte peut être ouverte depuis les deux côté du
mur, créons donc un deuxième interrupteur de l'autre côté du mur et notons
son numéro identifiant. Vous pourriez faire la même manipulation qu'avec le
premier interrupteur, mais cela entraîne quelques imperfections de comportement
(testez pour voir et vous comprendrez, les interrupteurs ne sont pas synchrones).
Donc, pour faire les choses bien, sélectionnez le deuxième interrupteur et
cliquez sur " Links ". Ajoutez le lien : Flavor : FrobProxy, From : cet interrupteur
ID, To : l'ID du premier interrupteur. Sélectionnez ce dernier lien et cliquez
sur " Data ". Choisissez dans la boite de dialogue AllowDirect. Ce dernier
lien permet aux deux interrupteurs d'être activés lorsqu'on utilise un des
deux, ce qui fait qu'ils sont toujours dans la même position.
Portes secrètes
(Tiré entre autre de tips and tricks de St patrick, file door_lock.htm)
Commencez par choisir la porte (secrète) que vous désirez utiliser. E.g. utilisez
la commande find_obj 3x6secret-door. Placez alors la porte dans votre
brush_air et alignez la bien sur le mur (ou le sol). La porte est maintenant
créée mais en tant que joueur, il est facile de la voir et de l'ouvrir. Changeons
quelques propriétés :
• Premièrement, changeons l'apparence de cette porte. Sélectionnez la porte
et cliques sur " propriétés ". Maintenant ajoutez la propriété Shape=>TxtRepl
r0. Dans la fenêtre écrivez le nom de la texture que vous désirez pour
cette porte, e.g. si vous utilisez "mwood02" de la famille rescor_2, alors
écrivez fam\rescor_2\mwood02 (fam - est le fichier où toutes les textures,
objets, ... sont enregistrés). Portalisez et vous devriez voir votre porte
avec la même texture que le mur. Si vous utilisez la commande light_bright
vous devriez voir la porte en plus foncé que le mur. Ne soyez pas effrayé,
c'est simplement du au fait que vous n'utilisez pas l'éclairage normal.
• Nous avons donc une porte secrète, mais elle est encore facilement ouvrable
directement à la main. Utilisons plutôt un interrupteur pour l'ouvrir (voir
comment faire en section précédente). Et voilà, c'est fini.
• J'ai noté ici une dernière manipulation tiré du tutoriel anglais, mais je
n'ai pas réussi à la faire marcher... Toute suggestion est donc la bienvenue.
Votre porte est maintenant prête à fonctionner, si vous désirez que cette
porte soit aussi un secret du jeu (c'est-à-dire comptabilisée dans les secrets
trouvés de votre mission) éditez les propriétés de la porte et dans S=>Scripts
effacez les scripts existants. Ajouter maintenant en premier le script TrackHid
et en deuxième le script TrigDoorOpen et vérifiez que le champ Don't
Inherit est bien à false. Ajoutez alors la propriété Dark Gamesys=>Stats
et mettez la à Hidden.
Faire des portes (secrètes) avec n'importe quel
objet
Tout objet peut être transformé en porte. Par exemple un lit. Si vous avez
un couloir secret sous le sol et que vous le voulez bien caché et secret,
bien planqué sous un lit, c'est possible. Il faudra juste que le lit bouge
quand on utilise un interrupteur, lui aussi bien planqué. Eh bien faisons-le.
Je suppose que vous avez déjà le couloir avec le trou dans le sol y menant.
Créons le lit désiré et plaçons le juste au dessus du trou, par exemple prenons
pour lit un ObjectHierarchy=>Physical=>Furniture=>Bed=>Bed-Victorian1.
Faites attention de bien l'aligner sur le sol (fonction " floor me ").
Maintenant éditons les propriétés du lit et ajoutons Door=>Translating.
Dans l'écran Door=>Translating changez :
• Open position à la taille du lit (que vous trouverez sous Physics=>Dimensions
ou directement dans les dimensions du brush dans l'écran principal de Dromed.
Pour ce lit, c'est 5.
• Base speed à 2.00 par exemple, en tout cas ne laissez pas zéro.
• Axis à "X-axis".
Ajoutez S=>Scripts et remplissez la première case avec le texte
StdDoor.
Maintenant, il ne reste plus qu'à mettre un interrupteur. Il vous suffit pour
se faire de regarder les explications de la section porte ouvrable avec interrupteur,
dans cette leçon.
Le son
Il reste un détail important : votre porte ne fait pas de son en s'ouvrant
! Ajoutons lui un son standard. Ajoutez la propriété Schema=>Class Tags
et entrez DoorType Slide1. Cela dit au jeu que l'objet est une porte
et doit utiliser un son de porte. Pour d'autres sons, allez voir dans Object
Hierarchy les différentes portes et leur propriété Schema=>Class
Tags. Et voilà, c'est fini.
En pratique
Maintenant que vous avez vu tout ça, vous êtes super calés. Faisons donc encore
(un peu) plus difficile : si vous désirez faire une porte avec un objet mais
que celui-ci n'a pas la bonne taille. Prenons l'exemple d'une grille de jardin,
et utilisons un objet de ObjectHierarchy=>Physical=>TerrainLike=>Fence=>Railing
pour en faire une grille d'entrée du jardin. Créez donc un ObjectHierarchy=>Physical=>
TerrainLike=>Fence=>Railing=>Railing 1. Cet objet est bien trop
large pour notre porte qui doit au plus (et par exemple) faire 4 pieds de
large. Modifions donc sa taille directement dans la fenêtre principale et
mettant le champ D à 4 (il est à 10 originellement).
Si vous allez en mode jeu, vous remarquerez que Garrett est bloqué si il essaye
de passer sur le côté de la grille. Ce bug est dû au fait que les dimensions
" réelles " de l'objet n'ont pas changé, seulement celles de l'image de l'objet.
Corrigeons donc ce problème en éditant l'objet et en modifiant sa propriété
Physics=>Model=>Dimensions et en mettant X à 4.
Maintenant, faisons comme pour le lit en ajoutant la propriété S=>Script
avec comme valeur StdDoor et la propriété Door=>Rotating
(changez Open Angle à 90°). Comme la porte doit être ouverte à la main, ajoutons
aussi Engine Features=>FrobInfo et dans le champ World Action,
inscrivez Script (ce qui signifie que quand Garrett clique dessus,
le script StdDoor sera activé). Et voilà, vous avez une superbe porte
de jardin !
Si vous criez AU SECOURS !!! parce que votre porte ne tourne pas sur le bon
axe, cela signifie que vous n'avez pas bien spécifié la propriété Physics=>Model=>Dimensions.
Malheureusement, dans ce cas, il vous faut effacer votre propriété Door=>Rotating,
modifier vos dimensions, effacer la propriété Physics=>Model=>Type,
remettre Door=>Rotating. Là ça devrait marcher, Ouf ! (la propriété
Physics=>Model=>Type est recréée automatiquement et mise à jour
après l'ajout de Door=>Rotating, ce qui détermine l'axe de rotation).
Trucs et astuces sur dromed -- la Bible
de Dromed
dromed.tutoriel.free.fr