Bonjour !
Avertissement : les bouts de scripts son écrits de mémoire. Je ne les ai pas testés. Il se peut que...
Je suppose que tu as déjà regardé quelque tutos de script, ou tout simplement dans le TESCS2 comment c'est fait.
Une page à bien regarder au préalable : http://wiwiki.wiwiland.net/index.php/TESCS2_:_Objets_References_et_Scripts
On commence :Une porte de type Door (pas une static), animée ou non, obéit par défaut au clic sur la porte. Cela déclenche un bout de programme par défaut qui :
- soit ouvre la porte si elle est animée, et cela permet d'accéder à une autre partie de la même cellule intérieure ;
- soit téléporte entre deux cellules différentes (intérieurs ou extérieur).
Ce "clic" sur une porte est une
activation.
Pour ne pas faire ce qui est prévu par défaut, il faut un script sur la porte avec un bloc
- Code:
-
Scn monscriptdeporte
Begin OnActivate
.... ce qu'il faut faire à la place ...
End
Dans les exemples, MaPorte1Ref est la porte dans le monde que l'on veut scripter pour l'activer différemment.
Sa base est MaPorte1. C'est elle qui est créée dans l'Object Window.
C'est sur elle qu'on écrit le script. Mais le script tourne sur les références.
Ici ce sera sur MaPorte1Ref.
Je suppose que tu sais ce qu'est une référence et comment on donne un nom (EditorID) à une référence.
Exemple 1 : - Code:
-
Scn monscriptdeporte
Begin OnActivate
End
Cela fera rien... la porte ne fonctionne plus. Son activation par défaut est remplacée par rien.
C'est justement ce que l'on veut, non ? Reste à trouver le moyen de l'activer autrement.
Pour prouver que le script fonctionne et empêche la porte de fonctionner :
Exemple 2 : - Code:
-
Scn monscriptdeporte
MessageBox "Cette porte ne s'ouvrira pas comme çà ! Cherchez un peu..."
Begin OnActivate
End
sans commentaire...
Exemple 3 : - Code:
-
Scn monscriptdeporte
Begin OnActivate
activate
End
On clique... et cela active la porte. Donc téléportation ou animation !
Et bien, là la porte marche comme avant.
Donc çà sert à rien... sauf qu'on connait maintenant le truc pour l'activer.
Il suffit de mettre la commande
activate là où il faut !
Ici la commande activate est dans le script de la porte donc activate s'applique par défaut à la porte elle même car la porte est une référence.
La commande activate s'applique toujours à une référence. Si le script tourne sur une référence, on a pas besoin de préciser... par défaut cela active la référence en question.
Sauf si on veut que cela active une autre référence. En ce cas on donne son nom.
Exemple 4 :Un exemple un peu inutile mais... le script précédent équivaut à :
- Code:
-
Scn monscriptdeporte
Begin OnActivate
MaPorte1Ref.activate
End
Exemple 5 :Et si... j'ai une porte MaAutrePorte2Ref... et que la Maporte1 possède ce script :
- Code:
-
Scn monscriptdeporte
Begin OnActivate
MaAutrePorte2Ref.activate
End
Quand je toque MaPorte1Ref... c'est MaAutrePorte2Ref qui s'ouvre !!!! C'est ce qui arrive quand on mélange les ref.
Maintenant, supposons un activateur MonLevier1 et sa ref MonLevier1Ref. Avec le script...
Un activateur c'est un peu comme une porte : quand on clique dessus, il exécute son animation, s'il en a une, ET par défaut fait du spam (c'est le cas des enseignes).
Sauf si on lui met un script OnActivate (en cas d'activation faire tel truc...)
Exemple 6 : - Code:
-
Scn monscriptdelevier
Begin OnActivate
MaPorte1Ref.activate
End
Le levier active la porte... elle s'ouvre ! Super !
Mais quand je clique la porte, elle s'ouvre aussi. Parce qu'il faut AUSSI le script de l'exemple 1.
Et voilà. Solution en deux scripts.
- Un sur la porte pour pas qu'elle s'ouvre normalement.
- Un pour l'ouvrir avec le levier.
Reste à voir : ouvrir avec un objet avec ou sans animation.