Un des points fondamentaux concernant la notion d’objets dans Dark Project
est qu’un objet peut être verrouillé. Le cas le plus évident est celui d’une
porte, mais le concept de serrure est générique et peut être appliqué à
une grande variété d'objets. Ainsi, par exemple, les contenants peuvent
être fermés pour éviter que quelqu’un ne les pille et les leviers peuvent
être verrouillés pour empêcher quelqu’un de les actionner.
En fait, la propriété lock détermine si un objet
possède une serrure et s’il est fermé ou ouvert. Si un objet a cette propriété,
il possède une serrure (indépendamment de son état). Si la valeur de cette
propriété est true, le service de serrure considérera
l'objet fermé. Si la valeur est false, il est
considéré ouvert. La différence est que si la propriété lock
n’existe pas, l’objet ne peut en aucun cas devenir verrouillé alors que
si la propriété existe et est à false, l’objet
est ouvert mais possède une serrure et peut donc devenir verrouillé.
De plus, il peut y avoir des circonstances où nous voulons que l'état d’une
serrure soit dépendant d’un autre objet. Par exemple, une porte peut être
commandée par l’état d’une autre porte ou d’un autre objet. En considérant
cela, une serrure peut être dépendante de l’état de plusieurs objets. Si
un de ces objets est verrouillé, la serrure sera considérée comme verrouillée,
indépendamment de son état propre ou de l’état des autres objets liés.
Exemple : une porte commandée par 3 boîtes à clés
qui doivent être toutes déverrouillées pour que la porte soit ouverte ;
si une seule des boites à clés reste à l’état fermé, la porte ne s’ouvrira
pas.
En plus du service de serrure, il y a un service clef dont le but est de
déterminer ce qui influe sur une serrure, via la propriété KeySrc
sur l’objet intervenant (ex : clef) et la propriété KeyDst
pour l’objet commandé (ex : porte). Chacune de ces propriétés a trois champs
: un MasterBit, un Région ID
et un Lock ID. MasterBit
peut être employée pour définir qu’il existe une clé passe-partout (clé
principale) qui englobe la fonction de plusieurs autres clés. Région
ID est employée principalement pour définir sur quelles serrures
un passe-partout (clé principale) peut intervenir. Dans le cas le plus simple,
il n’y a pas de passe partout de défini et Lock ID
détermine si une clef particulière travaille sur une serrure donnée.
Le minimum à savoir : si aucun Master
Bit n’est coché, alors chaque Region ID
doit être renseigné avec la même valeur (binaire et différente de 0). De
plus, dans ce cas, il faut renseigner le Lock ID
de chaque clé avec la même valeur que le Lock ID
de l’objet qu’elle commande.
Dans une mission qui comporte des passe-partout (clés principales), les
correspondances des propriétés KeySrc et KeyDst
suivent les règles suivantes (dans l’ordre) :
1 : Si leur Region ID
n’ont pas la même valeur, la clé ne fonctionne pas. Sinon on teste l’étape
2
2 : Si le MasterBit
du KeySrc (clé) est coché, la clé fonctionne.
Sinon on teste l’étape 3
3 : Si les Lock ID
des KeySrc et KeyDst
sont les mêmes, la clé fonctionne.
4 : Sinon, la clé ne fonctionne pas.
Notez que la notion de Region ID ne doit pas être
forcément comprise en tant qu’entité géographique. On peut donner une même
valeur à toutes les portes d’un manoir. La notion est alors géographique.
On peut attribuer une valeur à toutes les portes d’une mission et une autre
valeur à tous les coffres de cette mission. La notion n’est plus géographique.
Forcer les portes
Les portes peuvent subir des dégâts et être «abîmées», comme d’autres objets.
Elles ne seront pas détruites mais le fait «d’abîmer» une porte modifie
ses propriétés. Notamment la propriété Lock et
tous les liens avec d’autres objets telles que la clé qui l’ouvrait. Le
forçage d'une porte exigera généralement des coups répétés ; ces coups seront
considérés au niveau des sons dans le jeu comme des bruits de combat. Ce
qui fait que cette action n'est en aucun cas une action discrète.
Toutes les portes ne sont pas susceptibles d’être forcées. Si une porte
n'a pas la propriété HitPoints, elle ne subira
aucun dégât et ne pourra donc pas être abîmée. En règle générale, les portes
en métal ne peuvent pas être forcées, alors que celles en bois renforcées
de métal le peuvent. Ces dernières demanderont plus de coups que celles
en bois
Conception de portes
Les différents types de portes
Il y a deux types principaux de portes employées Dark Project, différenciées
par leurs modes de mouvement. Celles qui glissent et celles qui tournent.
Le mode d’actionnement de la serrure pourra être diffèrent suivant le type
de porte (action sur la porte ou action sur un élément extérieur, type boite
à clé ou levier).
Le paramétrage de la translation d’une porte passe par la propriété «Door/Translating
». Ses paramètres indiquent l’amplitude et la direction de mouvement. Le
paramétrage de la rotation d’une porte passe par la propriété « Door/Rotating
». Ses paramètres indiquent l'axe de rotation, la direction de mouvement
(dans le sens des aiguilles d'une montre ou en sens inverse des aiguilles
d'une montre) et l’amplitude du mouvement (exprimée en degrés). Notez que
le contrôle de l’axe de rotation indique seulement l'orientation de l'axe
et pas son emplacement. La porte tourne toujours autour du centre de gravité
qui est défini dans la propriété « Physics/Model/Type ». Si une porte ne
tourne pas autour de l'axe désiré, ça signifie que ce paramètre est mauvais.
Testez les, ça peut être drôle (qu’est ce qu’on s’marre…)
Les portes à deux battants sont constituées de 2 objets et peuvent agir
en synchronisation. Cette synchronisation assure qu’une action sur une des
2 portes agira sur la deuxième de la même manière. Toutefois cette synchronisation
peut être perturbée si par exemple les vitesses d’ouverture des 2 portes
sont différentes ou si quelque chose entrave l’ouverture d’une des 2 portes.
Représentation des serrures
Les représentations des poignées de portes et leviers de boites à clé seront
variables suivant l'état de la serrure (voir schémas ci dessous). Si la
serrure est fermée, le levier sera en position horizontale ; si elle est
ouverte, il sera en position verticale. Dans le cas de serrure crochetable
en plusieurs étapes, le bras pourra être dans des positions intermédiaires.
C'est principalement destiné à montrer au joueur quand la serrure se ferme
ou s’ouvre et pour les serrures crochetables, ça montre l’état d’avancement
de crochetage.
Trucs et astuces sur dromed -- la Bible
de Dromed
dromed.tutoriel.free.fr