Bonsoir tout le monde, j'aimerais me lancer dans la création d'un mod personnel pour commencer. J'aimerais savoir une petite chose.
Est-il possible d'ajouter une quete à un pnj déjà existent? Dans mon mod j'aimerais pouvoir rajouter une quête a Moira qui ne serait visible qu'uniquement après avoir fini la rédaction du guide et après un laps de temps de quelques jours.
Si c'est possible, pourriez-vous me donner la marche à suivre.
Merci d'avance pour vos réponses
Ajouter une quête a un PNJ ayant déjà des quêtes
- Shadow she-wolf
- Confrère
- Messages : 830
- Contact :
Re: est il possible d'ajouter une quête a un pnj (Moira)?
Bonjour,
Je n'ai pas Fallout d'installé pour le moment, donc mes informations risquent d'être quelque peu vagues...
Déjà, ce que tu demandes est tout à fait faisable.
Sauf que tu vas devoir te mettre aux scripts, au moins, pour faire démarrer la quête...
Déjà, construire une quête.
Ici, se trouve toutes les informations au sujet des quêtes.
Si tu as du mal avec l'anglais (ce qui risque d'énormément te gêner...), il y a la même chose, en bien plus lapidaire, ici, en français.
Bref, contrairement à ce que l'on pourrais penser, laisse la case "StartGameEnabled" de cochée, tu en as besoin pour que le script de quête tourne.
Car c'est ce script de quête qui permettra de débuter ta quête...
Ensuite, on va commencer par faire un truc propre pour ce script
Pour empêcher le script d'être éxécuté tant que la quête du guide n'est pas terminée, nous alons utiliser la fonction return dans le bloc GameMode. (oui, parfois, je vais te passer des liens vers des trucs du TESCS, c'est que c'est la même chose sur Oblivion et Fallout)
Comme, ceci:
GetStageDone, pour que cette commande fonctionne, tu as besoin de remplacer "QuêteDuGuide" par l'ID de la quête que tu souhaites voir terminée, et XXX par la valeur du stage qui signifie la fin de cette quête. Comme je l'ai dis, faute de Fallout sous la main, je n'ai pas les valeurs, donc je te laisse chercher tout seul...
Ensuite, il nous faut détecter le nombre de jours passés après cette quête. On va donc créer une variable, qui va nous permettre de stocker le jour où a été terminée la quête du guide.
Il ne nous restera plus qu'à faire un test de comparaison...
Ce test vrai, nous passerons une variable à 1, cette variable permettra d'activer la totalité des dialogues de la quête...
Nous allons donc modifier le script ci-dessus:
Maintenant que l'on a ceci, nous allons conditionner la totalité des dialogues de la quête d'un coup, qu'ils soient existants ou non.
Pour cela, il y a ce que l'on nomme les conditions de quête: Le champ "Quest Conditions" de l'onglet "Quest Data".
Ajoute cette condition:
GetQuestVariable IDDeTaQuête Start >= 1
Voila, la totalité des dialogues de la quête existants et futurs sont conditionnés.
Maintenant, je crois qu'il n'y a plus qu'à créer les dialogues, et aggrandir ton script de quête au besoin...
Je n'ai pas Fallout d'installé pour le moment, donc mes informations risquent d'être quelque peu vagues...
Déjà, ce que tu demandes est tout à fait faisable.
Sauf que tu vas devoir te mettre aux scripts, au moins, pour faire démarrer la quête...
Déjà, construire une quête.
Ici, se trouve toutes les informations au sujet des quêtes.
Si tu as du mal avec l'anglais (ce qui risque d'énormément te gêner...), il y a la même chose, en bien plus lapidaire, ici, en français.
Bref, contrairement à ce que l'on pourrais penser, laisse la case "StartGameEnabled" de cochée, tu en as besoin pour que le script de quête tourne.
Car c'est ce script de quête qui permettra de débuter ta quête...
Ensuite, on va commencer par faire un truc propre pour ce script
Pour empêcher le script d'être éxécuté tant que la quête du guide n'est pas terminée, nous alons utiliser la fonction return dans le bloc GameMode. (oui, parfois, je vais te passer des liens vers des trucs du TESCS, c'est que c'est la même chose sur Oblivion et Fallout)
Comme, ceci:
Code : Tout sélectionner
scn NomDuScriptDeQuête
Begin GameMode
if ( GetStageDone QuêteDuGuide XXX == 0 )
return ; on empêche de lire le script tant que la quête du guide n'est pas terminée
endif
;suite du script
EndEnsuite, il nous faut détecter le nombre de jours passés après cette quête. On va donc créer une variable, qui va nous permettre de stocker le jour où a été terminée la quête du guide.
Il ne nous restera plus qu'à faire un test de comparaison...
Ce test vrai, nous passerons une variable à 1, cette variable permettra d'activer la totalité des dialogues de la quête...
Nous allons donc modifier le script ci-dessus:
Code : Tout sélectionner
scn NomDuScriptDeQuête
Short Day ; variable où nous stockerons le jour de la fin de la quête du guide
Short Start ; variable qui autorisera la totalité des dialogues de la quête
Short State ; Une variable que l'on utilisera comme un verrou
Begin GameMode
if ( GetStageDone QuêteDuGuide XXX == 0 )
return ; on empêche de lire le script tant que la quête du guide n'est pas terminée
elseif ( State == 0 )
Set State to 1 ; On verrouille cette frame pour qu'elle ne soit plus jamais exécutée
Set Day to GameDaysPassed ; On sauvegarde le jour de la fin de la quête du guide
endif
if ( GameDaysPassed >= Day+7 && State == 1 ) ; 7 jours après la fin de la quête du guide, valeur à changer si tu veux...
Set Start to 1 ; on autorise les dialogues de la quête
Set State to 2 ; on verouille cette frame qui n'est plus utile...
endif
;suite du script
EndPour cela, il y a ce que l'on nomme les conditions de quête: Le champ "Quest Conditions" de l'onglet "Quest Data".
Ajoute cette condition:
GetQuestVariable IDDeTaQuête Start >= 1
Voila, la totalité des dialogues de la quête existants et futurs sont conditionnés.
Maintenant, je crois qu'il n'y a plus qu'à créer les dialogues, et aggrandir ton script de quête au besoin...
Re: est il possible d'ajouter une quête a un pnj (Moira)?
Merci beaucoup pour ta réponse, je vais étudier ça. 