[Résolu] Démarrer une quête avec un dialogue

Le langage des scripts.
Avatar du membre
Confrère_VF
Comédien
Comédien
Messages : 558

Démarrer une quête avec un dialogue

Message par Confrère_VF »

Je voulais poster ça dans la rubrique d'aide aux scripts, mais visiblement je ne suis plus autorisé à y ouvrir des sujets (pas de bouton pour ça). Dommage, car je risque d'avoir beaucoup de scripts liés à ce mod et j'aurais voulu éventuellement tout regrouper à un même endroit plutôt que d'ouvrir 36 topics.

Index des scripts travaillés :
► Afficher le texte
Je suis encore sur Lucinia et la fonction de chambellan, j'essaie de comprendre les scripts vanilla mais je manque sûrement de vocabulaire parce que même en lisant des tutos sur la Conf, je suis perdu.
Quoi qu'il en soit, j'ai voulu essayer quelque chose, à savoir donner 3 Quests "discrètes" à Lucinia : la première est lancée dès le début, c'est pour qu'on la rencontre la première fois et où on choisit de l'épargner ou non. Maintenant,avec la réplique où on la laisse en vie, je voudrais lancer les deux autres quêtes : PDBLuciniaPriest où elle nous parle d'elle et de son passé, et PDBLuciniaSteward où on lui propose de devenir chambellan d'un de nos manoirs (pour info, les codes correspondants sont BYOHouse1 = Epervine, BYOHouse2 = Morthal et BYOHouse3 = Aubétoile).

Le seul petit problème, c'est que je ne sais pas comment lancer les deux quêtes en même temps. J'ai essayé la fonction NomDeLaQuete.Start() (j'ai mis comme ça) dans la section "End" des scripts de la réplique en question, mais en compilant j'ai un message d'erreur :
► Afficher le texte
J'essaie de trouver dans le jeu vanilla des quêtes qui se succèdent automatiquement (par exemple le début de la Confrérie noire où on a tué Astrid et qu'on va voir Maro pour lui dire qu'on va tuer le reste), mais je n'arrive pas à mettre la main dessus.

J'ai l'impression que ça risque d'être le perso le plus scripté^^ Quoique, à voir.
Modifié en dernier par Confrère_VF le 31 août 2020, 18:28, modifié 5 fois.
« Le terme "doubleur" est totalement erroné quand il désigne les acteurs prêtant leur voix. Il définit un entrepreneur qui a une société de doublage. » - Éric Legrand.
Mes doublages réalisés et en cours.
Avatar du membre
A .
Légende de la Confrérie
Légende de la Confrérie
Messages : 5582

Re: Déclencher des quêtes avec des répliques de dialogue

Message par A . »

@Confrère_VF il y avait un problème avec les jeux de permissions de plusieurs groupes d'utilisateurs pour ce sous-forum et un autre, c'est normalement réparé.
C'est totalement transparent pour les administrateurs et modérateurs, donc si onne nous le signale pas c'est le genre de coquilles qui peuvent rester très longtemps ^^

Du coup j'ai déplacé ton message, je ne sais pas si le titre est assez explicite par rapport à ta demande mais tu peux bien sûr rechanger.
Avatar du membre
Confrère_VF
Comédien
Comédien
Messages : 558

Re: Déclencher des quêtes avec des répliques de dialogue

Message par Confrère_VF »

Merci ! Pour le nom, disons que pour l'instant c'est clair par rapport à ce que je cherche, mais je comptais (comme dit) utiliser ce topic pour regrouper tous les scripts relatifs à mon idée de mod Prêtres de Bordeciel. Et il y en aura plusieurs^^

Alors j'ai finalement trouvé quelque chose qui se rapproche de ce que je cherche, à savoir le lancement de la quête annexe de la Confrérie noire quand on entend la conversation entre Uthgerd et Skulvar aux écuries de Blancherive à propos de Cicéron : quand on les entend parler, la quête démarre. Mais ça reste une annexe, sans titre.
J'ai essayé de me baser sur le script qui était donné sur la réplique d'Uthgerd :

Code : Tout sélectionner

If DB01Misc.GetStage () < 10
    DB01MiscObjective.SetStage (10)  
Endif
Ce qui voudrait dire que la commande Start n'est pas utilisée et qu'il faut lancer le premier Stage d'une quête. Donc j'ai ajouté les stages 0 et 10 à mes deux quêtes ci-dessus, copié-collé le script sur la réplique que je veux et changé les noms des quêtes pour avoir ça :

Code : Tout sélectionner

If PDBLuciniaPriest.GetStage () < 10
    PDBLuciniaPriestObjective.SetStage (10)  
Endif

If PDBLuciniaSteward.GetStage () < 10
    PDBLuciniaStewardObjective.SetStage (10)  
Endif
Mais ça ne va toujours pas, le script n'est pas content et me dit qu'il y a une erreur :
► Afficher le texte
Vraisemblablement il me demande d'ajouter des variables, mais je ne sais pas comment on fait^^
« Le terme "doubleur" est totalement erroné quand il désigne les acteurs prêtant leur voix. Il définit un entrepreneur qui a une société de doublage. » - Éric Legrand.
Mes doublages réalisés et en cours.
Avatar du membre
A .
Légende de la Confrérie
Légende de la Confrérie
Messages : 5582

Re: Prêtres de Bordeciel : une histoire de scripts

Message par A . »

Je préfère que tu fasses 10 ou 12 ou autant que nécessaire de sujets différents avec des titres clairs plutôt qu'un fourre-tour, la Forge un espace de travail et qui se veut collaboratif même si l'activité n'est pas aussi intense que dans d'autres parties du forum et c'est beaucoup plus simple pour trouver de l'aide pour les futures personnes s'aventurant ici si les sujets ont déjà été traités :)

Pour tes questions malheureusement je ne serai d'aucune aide, je n'ai toujours pas pris le temps d'étudier le scripting de Skyrim.
Avatar du membre
Irwine
Traductrice vétérante
Traductrice vétérante
Messages : 1876

Re: Prêtres de Bordeciel : une histoire de scripts

Message par Irwine »

De ce que je peux voir de tes erreurs tu donnes à ton script des variables qui ne sont pas définie.
En gros tu lui dit d'utiliser une variable qui n'existe pas.
Ce que j'en comprend, c'est que tu dois d'abord créer les dites variables quelque part avant de les appeler.
Je te dirais de regarder cette variable DB01MiscObjective et de voir si elle existe ailleurs que dans le script, normalement oui, mais je ne connais pas le CK, je te parle de scripting pure.
Malheureusement je ne peux pas t'aider plus.
Vers l'infini et l'au delà
Avatar du membre
Confrère_VF
Comédien
Comédien
Messages : 558

Re: Démarrer une quête avec un dialogue

Message par Confrère_VF »

Ah bah c'est ballot ça, impossible de retrouver la scène entre Uthgerd et Skulvar ! Pourtant je l'avais sous les yeux, j'ai pas sortie le script de nulle part, mais maintenant je n'arrive plus du tout à la retrouver dans les Quest, ni en fouillant dans tous les dialogues. C'est pas banal. Si jamais quelqu'un la retrouve avant moi, je lui serai fort gré !
« Le terme "doubleur" est totalement erroné quand il désigne les acteurs prêtant leur voix. Il définit un entrepreneur qui a une société de doublage. » - Éric Legrand.
Mes doublages réalisés et en cours.
Avatar du membre
Confrère_VF
Comédien
Comédien
Messages : 558

Re: Démarrer une quête avec un dialogue

Message par Confrère_VF »

Alors j'ai finalement retrouvé la ligne en question (la fonction "Rechercher" est trop souvent négligée), donc c'est dans la Quest DialogueWhiterun => Scenes => WhiterunStablesScene, puis c'est la première réplique. Elle a le code suivant :

Code : Tout sélectionner

If DB01Misc.GetStage () < 10
    DB01MiscObjective.SetStage (10)  
Endif
Avec les propriétés DB01Misc et DB01MiscObjective, mais c'est tout ce que je trouve. Je ne sais pas vraiment ce que le CK me demande en "créant des variables". J'ai bien trouvé un tuto sur Youtube qui dit comment on en crée, mais je n'ai pas compris (en anglais dans un milieu qui ne m'est pas familier, à savoir le coding, c'est pas évident).
J'ai essayé dans ma propre quête (PDBLuciniaFirstMeet), à la ligne correspondante, d'ajouter une Property avec PDBLuciniaPriest en tant que Quest (comme c'est fait dans la quête vanilla, mais j'ai ce message :
► Afficher le texte
Du coup je comprends pas, je fais comme ce qui est fait dans une quête vanilla mais ça coince quand même...

J'offre une superbe pipe taillée à la main au maître (ou la maîtresse) de forge qui veut bien me guider :
► Afficher le texte
« Le terme "doubleur" est totalement erroné quand il désigne les acteurs prêtant leur voix. Il définit un entrepreneur qui a une société de doublage. » - Éric Legrand.
Mes doublages réalisés et en cours.
Avatar du membre
Tissendel
Maîtresse de Forge
Maîtresse de Forge
Messages : 1157

Re: Démarrer une quête avec un dialogue

Message par Tissendel »

Dans cet exemple tu as 2 quêtes différentes, DB01Misc et DB01MiscObjective. Tu as créé aussi 2 quêtes PDBLuciniaPriest et PDBLuciniaPriestObjective ?
Avatar du membre
Confrère_VF
Comédien
Comédien
Messages : 558

Re: Démarrer une quête avec un dialogue

Message par Confrère_VF »

Ah, étant donné que la première ligne (PDBLuciniaPriest) ne fonctionnait pas, je n'avais pas pensé à faire de version Objective. Qu'est-ce que ça apporte, en fait ? Parce que quand je regarde dans les trucs vanilla, c'est souvent vide.
« Le terme "doubleur" est totalement erroné quand il désigne les acteurs prêtant leur voix. Il définit un entrepreneur qui a une société de doublage. » - Éric Legrand.
Mes doublages réalisés et en cours.
Avatar du membre
Tissendel
Maîtresse de Forge
Maîtresse de Forge
Messages : 1157

Re: Démarrer une quête avec un dialogue

Message par Tissendel »

De ce que je vois il semble que DB01Misc soit la quête de Cicero, L'autre semble juste un lien entre le dialogue de Wihterun et la quête de Cicero ( avec l’objectif affiché "Parler à l’étrange bouffon" tandis que celle de Cicero s'active an parlant à Cicero lui même. Ici ça verifie donc que la quete de Cicero est pas déjà activée et dans ce cas active la quête "liante".

Dans ton cas, si tout est dans une même quête, je pense tu peux l’appeler avec Self : Self.SetStage(10)
Répondre

Retourner vers « Entraide sur les scripts »