Re bonsoir,
Je suis entrain de créer ma quête.
J'en suis au début car au départ, j'aimerai que la quête s'active par une lettre que nous porte le messager.
J'ai suivi ce tuto :
"Annexe G – Utiliser un messager pour déclencher une quête
Merci à shalani qui expliquait cette technique que j'ai arrangée sur ce post[forums.bethsoft.com].
Créez votre quête en spécifiant une priorité à 60 et en sélectionnant « Side Quests » dans le menu « Type ». Décochez aussi « Start Game Enabled », mais laissez « Run Once ».
Fermez la fenêtre de cette quête puis créez une note dans la catégorie « Book ».
Rouvrez votre quête et créez-y les stages 0, 20, 30, 40 et 50. Vous pourrez ajouter par la suite d'autres stages concernant directement votre quête, mais ceux-là sont uniquement dédiés au messager.
Créez deux alias, l'un pour le PNJ messager, l'autre pour la note. Pour le premier, je vous conseille de dupliquer le messager d'origine du jeu, à savoir « WICourierNPC » en veillant à conserver la case « Summonable » cochée dans ses paramètres. Pour le deuxième, sélectionnez votre note via l'option « Create Reference To Object » avec les options « Level » : Easy ; « Create » : In « Courier ». « Courier » est ici le nom de mon premier alias, ce qui signifie que la note sera mise dans l'inventaire du messager dès le lancement de la quête. Si vous n'êtes pas familier avec les alias, je vous conseille de suivre le tutorial officiel[www.creationkit.com]. Le second alias — la note — doit avoir les options suivantes cochées (en haut à droite) : Uses Stored Text, Initially Disabled et Quest Object.
Toujours dans la fenêtre de l'alias de la note, ajoutez les deux scripts suivants : Defaultsetstageonplayeracquire et Defaultsetstageonclosebook, présents par défaut dans la liste. Dans les propriétés du premier, remplissez « myQST » avec le nom de votre quête, et « StageToSet » avec la valeur 40. Dans les propriétés du second, remplissez « StageToSet » avec la valeur 50. Ainsi lorsque le messager vous donnera le message, vous pourrez afficher un message (ou faire autre chose) dans le stage 40, et lorsque le joueur lira la note, il déclenchera le stage 50, qui pourra par exemple afficher un objectif préalablement défini avec la commande :
SetObjectiveDisplayed(50)
Revenez à l'onglet des stages, puis ajoutez les commandes suivantes dans l'encadré « Papyrus Fragment » du stage 20 (il faut créer un « log entry » au préalable, même vide) :
SetStage(30)
Cliquez sur OK pour fermer la fenêtre de quête (cela permet d'initialiser des paramètres), puis rouvrez-la.
Allez dans l'onglet Scripts de votre quête. Ajoutez une propriété de type « Quest » dans le script présent et nommez-la « CourierQuest ». Appuyez sur OK puis sélectionnez cette propriété, et assignez-lui l'objet « WICourier ».
Retournez dans l'onglet Quest Stages et entrez les commandes suivantes dans le stage 30 :
Alias_YourNote.GetRef().Enable()
(CourierQuest as WICourierScript).AddItemToContainer(Alias_YourNote.GetRef())
Vous pouvez maintenant fermer l'écran de votre quête en cliquant sur OK.
Souvenez-vous, cette quête ne se déclenche pas lorsque le jeu démarre ; il vous faudra donc la démarrer par un autre moyen. Personnellement, j'utilise souvent l'événement « OnInit() » de mon script de maintenance. Comme on n'a pas spécifié de stage déclencheur, il faut donc utiliser la commande : « VotreQuete.SetStage(20) ». Vous pouvez aussi, entre autres, déclencher la quête lorsque le joueur entre dans une « Trigger Box » grâce au script « defaultSetStageOnEnter », présent d'origine.
Le messager viendra alors à vous lorsque vous entrerez dans une ville."
Voilà j'en suis à la fin et je dois faire ça :
"Retournez dans l'onglet Quest Stages et entrez les commandes suivantes dans le stage 30 :
Alias_YourNote.GetRef().Enable()
(CourierQuest as WICourierScript).AddItemToContainer(Alias_YourNote.GetRef())
Vous pouvez maintenant fermer l'écran de votre quête en cliquant sur OK."
Donc je fais ça au stage 30 du quest stage sur le papyrus, mais quand je fais "compile", quand ça veut me le générer, ça me met
failed dans l'écran de script.
Pourriez-vous me dire si c'est bon ou si je dois corriger une erreur svp ?
Merci d'avance.
Cordialement.
