- Gorgorbey a écrit:
- ... alors ne le lisez pas avant d'avoir joué le mod, ce serai bête de gâcher la surprise
- Spoiler:
1/ L'extérieur ne fait pas assez réaliste: il faudrait que je rajoute quelques décorations macabres.
2/ L'ambiance gobelin ne se retrouve pas assez à l'intérieur de la maison et dans son sous-sol.
3/ Tous les ennemis de la cellule ont tendance à être rameutés dès que l'on entre.
4/ Dans le sous-sol, dans la zone de stokage à gauche, il arrive que l'un des gobelins apparaisse dans la pièce fermée.
5/ La sortie est à double sens : je n'ai pas réussi à ne la faire qu'à sens unique. J'ai tenté de dissimuler une porte secrète dans les sous-sols par laquelle on sortirait, mais impossible de la faire s'ouvrir en actionnant un levier, alors j'ai mis une simple trappe...
A vous!
Bonjour !
Je l'ai lu... et je testerai ensuite (désolé !
), je te débloque du point de vue script d'abord.
1) Pour tes activations de porte sans levier Créer le script de porteSur la porte, un cript avec un bloc "Begin OnActivate ... End"
Cela fera que la porte ne s'ouvrira pas automatiquement lorsque tu utilises la barre d'espace, mais seulement lorsque les commandes dans le bloc le permettront.
Par exemple (je suppose que la porte est entre un intérieur et l'extérieur, pas entre deux intérieurs) :
- Code:
-
Scn MonModPorteTrucScript
Begin OnActivate
If player.IsInInterior
message "Cette porte est bloquée et ne s'ouvrira pas !"
else
activate
Endif
End
Créer la porte et mettre le script sur la porte de basePour mettre le script sur la porte, il faut le sélectionner sur l'objet de base.
Tu ne dois pas modifier la porte d'origine du jeu (sinon tu modifieras le fonctionnement de toutes les portes de ce type dans le jeu), donc tu crées un nouvel EditorID.
Par exemple :
MonModMaporteTrucPour çà : change l'éditorID de la porte de base que tu souhaites copier (clic, puis clic bien séparé... tu mets le nouvel éditorID), puis "Entrée", et à la question "Create a new Object ?" , tu réponds Oui.
- Spoiler:
*** Si tu réponds non, tu auras une source de conflits... même si tu rétablis l'ancien editorID, tu seras condamné à un nettoyage de mod.
*** Cependant si tu répond "non" par erreur, à la confirmation qui suis (Are you sure ?) Réponds NON cette fois).
*** Il y a des cas ou tu peux sans danger répondre NON (1) , puis OUI (2) : lorsque tu veux changer le nom des EditorID que tu as créés dans ton propre esp, parce qu'ils ne te plaisent plus par exemple, pour une réorganisation de tes nommages dans ton esp). Tu peux aussi dupliquer tes propres EditorID avec OUI (1).
Tu édites ta nouvelle porte et choisis dans la liste des scripts ton nouveau script , puis OK. Enfin tu places ta référence de porte dans le monde (deux refs portes si téléportation, une seule si porte animée).
Test de la porteSi le PJ n'est pas dans un intérieur, elle s'active normalement.
Cas porte entre deux intérieursSi la porte est entre deux intérieurs, il faut donner un nom à la cellule intérieure pour pouvoir le tester (c'est dans la fenêtre
cell view, tu cliques-gauche, une fois pour mettre l'editorID de ta cellule en bleu, puis une deuxième fois bien détachée (pas un double-clic) sur ta cellule intérieure, puis tu tapes un EditorID propre à ton mod (prefixe de ton mod + nom particulier de la porte)... le nom choisi permettre de tester dans quel intérieur est le PJ (je suppose que tu as mis "MonModMaCell01"
. Le script devient :
- Code:
-
Scn MonModPorteTrucScript
Begin OnActivate
If player.GetInCell MonModMaCell01
message "Cette porte est bloquée et ne s'ouvrira pas !"
else
activate
Endif
End
2) Cas de l'activation par un levier.Il faut deux scripts : un sur le levier pour commander la porte, et un sur la porte pour autoriser si la commande vient du levier.
Créer le levierCréer le levier (
base MonModMonLevier + ref dans le monde MonModMonLevier01)
Remarque : Fait une duplication du levier d'origine d'Oblivion pour mettre le nouveau script dessus.
Le script du levierIl faut dire ce que fait le levier quand on l'active :
- Code:
-
Scn MonModMonlevierTrucScript
Begin OnActivate
MonModPorteTruc01.activate ; c'est la ref de la porte pas la base
End
Le nouveau script de la porteIl faut bloquer l'activation normale de la porte. Et l'activer si c'est le levier qui l'a commandée.
- Code:
-
Scn MonModPorteTrucScript
Begin OnActivate
If IsActionRef MonModMonLevier01 == 1 ; la REF du levier
activate ; cela active la référence sur laquelle est le script (la porte)
ElseIf IsActionRef player == 1
; *** dans tous les autre cas, pas d'activation, y compris quand on toque la porte. Si c'est le PJ, on lui met (ou non) un message. C'est utile de mettre un message pour les tests
message "Cette porte est bloquée et ne s'ouvre pas comme çà !"
Endif
End
Tu n'es pas obligé de mettre un Else message...
L'animation du levierJe n'ai pas mis le déclenchement de l'animation du levier (c'est plus simple si tu as un bouton, mais moins joli).
Pour çà regarde le script : scriptName
KvatchGateScript03 (il faut une variable "opened" par exemple). Si je me souviens bien, le levier revient tout seul dans l'animation... sinon il semblera rester bloqué ouvert.
Post-scriptumVoilà, cela fait beaucoup de choses, mais si tu t'exerces avec mes solutions, tu sauras comment on lie le fontionnement de deux objets (activateur + porte par exemple) et imaginer le reste.
Egalement le lien entre une action et le lancement des animations d'objet (cele ne se fait pas tout seul...).
Les animations d'origine des personnages, et les animations d'origine d'un objet par un personnage PNJ sont sans script. Pour les nouvelles, c'est une autre histoire... (script, KF, Idle-Animation, anim-object... etc)
Je n'ai pas testé... à toi de le faire. Si pb que tu ne peux pas résoudre... poste donc, j'essaierai de m'améliorer !
A+++