Modifier la condition de lancement d'une quête. SSE

C'est ici que vous pouvez poser vos questions techniques.
Avatar du membre
G'k
Traducteur aguerri
Traducteur aguerri
Messages : 2028

Re: Modifier la condition de lancement d'une quête. SSE

Message par G'k »

Tissendel a écrit : 13 nov. 2018, 22:33 Oula, c'est pas normal ça xD

C'est quel mod ?
D'après le script, je dirais the wheel of lull. Plutôt connu pour être bugué.
Crashs intempestifs ? Bugs à foison ? N'attendez plus, et passez à Mod Organizer 2. Combiné aux effets d'un tutoriel adapté, il saura vous débarrasser de vos ennuis avec NMM.

Porter un mod sur SSE
Sofreack
Moddeur aspirant
Moddeur aspirant
Messages : 65

Re: Modifier la condition de lancement d'une quête. SSE

Message par Sofreack »

oui c'est Wheel of lull. Pourtant il à très bien fonctionné dans ma partie test. Aucun problème rencontré jusque là. J'ai refait une partie dite "normal" (aucun déclanchement par consol ou autre) pour voir du coup. On m'a déjà dit que c'était bugué mais je ne vois pas en quoi.
Avatar du membre
Tissendel
Maîtresse de Forge
Maîtresse de Forge
Messages : 1157

Re: Modifier la condition de lancement d'une quête. SSE

Message par Tissendel »

Sofreack a écrit : 13 nov. 2018, 21:58 Le voici, ouvert avec wordpad ou notepad, j'imagine qu'il y a mieux pour ça.
Je ne sais pas comment u as décompilé le script. Moi, voila ce que j'obtiens :

Code : Tout sélectionner

;/ Decompiled by Champollion V1.0.1
Source   : _Lull_MQ01_ForceStart.psc
Modified : 2015-10-24 03:10:01
Compiled : 2015-10-24 03:10:02
User     : Kevin
Computer : SVEN
/;
scriptName _Lull_MQ01_ForceStart extends ObjectReference

;-- Properties --------------------------------------
ObjectReference property lullTalkyActivator3 auto
quest property Lull_MQ01 auto
activator property TeleportMarker auto
ObjectReference property Llavados auto
ObjectReference property numinar auto
quest property Lull_MQ05 auto
quest property Lull_MQ04 auto
quest property Lull_MQ06 auto

;-- Variables ---------------------------------------

;-- Functions ---------------------------------------

; Skipped compiler generated GetState

; Skipped compiler generated GotoState

function OnActivate(ObjectReference akActionRef)

	if Lull_MQ01.GetStage() < 10
		if game.GetPlayer().GetLevel() >= 15
			debug.MessageBox("You feel the world... shift, if that is the right word. It feels like something has happened, yet you hear nor see anything.")
			Llavados.MoveTo(game.GetPlayer() as ObjectReference, 0.000000, 0.000000, 0.000000, true)
			Llavados.EnableNoWait(false)
		endIf
	endIf
	if Lull_MQ04.IsCompleted()
		if game.GetPlayer().GetLevel() >= 25
			debug.MessageBox("You feel the world start to shift once more.")
			numinar.MoveTo(game.GetPlayer() as ObjectReference, 0.000000, 0.000000, 0.000000, true)
			numinar.PlaceAtMe(TeleportMarker as form, 1, false, false)
			numinar.enable(false)
		endIf
	endIf
	if Lull_MQ05.IsCompleted()
		if game.GetPlayer().GetLevel() >= 30
			lullTalkyActivator3.MoveTo(game.GetPlayer() as ObjectReference, 0.000000, 0.000000, 0.000000, true)
			game.GetPlayer().PlaceAtMe(TeleportMarker as form, 1, false, false)
			Lull_MQ06.SetStage(5)
		endIf
	endIf
endFunction

Là, on voit bien les conditions "if game.GetPlayer().GetLevel() >= " ^^
Sofreack
Moddeur aspirant
Moddeur aspirant
Messages : 65

Re: Modifier la condition de lancement d'une quête. SSE

Message par Sofreack »

Mdr ha oui c'est beaucoup mieux. Pour décompiler le script j'ai essayé Champollion mais je n'ai pas réussi à le faire fonctionner (j'ai dus mal m'y prendre surtout) du coup j'ai fait avec PEX Décompiler. https://www.nexusmods.com/skyrim/mods/2909/
Du coup je me demande si ce n'est pas moi qui ai fait une connerie dans le CK avec le script. Je vais réinstaller le mod proprement et réessayer.
Avatar du membre
Tissendel
Maîtresse de Forge
Maîtresse de Forge
Messages : 1157

Re: Modifier la condition de lancement d'une quête. SSE

Message par Tissendel »

Pour simplifier l'utilisation de champollion je me en piece attaché un batch.

Tu le place dans le dossier Champollion ( là où il y a Champollion.exe et ces dll )
Tu le renomme Batch.bat
Ensuite tu copie dans ce même répertoire les fichiers pex que tu veux décompiler
Et tu double clique sur le Batch.bat.
Le ou les fichiers psc seront généré au même endroit
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Sofreack
Moddeur aspirant
Moddeur aspirant
Messages : 65

Re: Modifier la condition de lancement d'une quête. SSE

Message par Sofreack »

Super ça fonctionne nikel, merci beaucoup! Du coup je décompile le script, je fait ma modification, mais pour le recompiler et le remettre à sa place dans les fichiers du mod je m'y prend comment? je change juste l'extension du psc en pex?
Avatar du membre
Tissendel
Maîtresse de Forge
Maîtresse de Forge
Messages : 1157

Re: Modifier la condition de lancement d'une quête. SSE

Message par Tissendel »

Pour recompiler, replace la source du script psc dans Data/scripts/source
Ensuite ouvre le CK, pas besoin de charger d'esp, en haut menu "Gameplay" => "Papyrus Script Manager"
Tu cherches ton script dans la liste ( tu peux utiliser le filtre en haut )
Une fois trouvé, tu sélectionne ton script, clique-droit => Compiler
Et voila ^^
Sofreack
Moddeur aspirant
Moddeur aspirant
Messages : 65

Re: Modifier la condition de lancement d'une quête. SSE

Message par Sofreack »

Super Tissendel, tu sais pas ce que tu viens de faire là!! Tu viens de m'ouvrir la boite de pandore xD Je viens d'apprendre comment décompiler, modifier et recompiler un script, c'est dangereux pour ma vie sociale mdr. Je sent que je vais encore passer des heures à bidouiller...

Merci tu m'as bien aidé.
Sofreack
Moddeur aspirant
Moddeur aspirant
Messages : 65

Re: Modifier la condition de lancement d'une quête. SSE

Message par Sofreack »

Salut Tissendel, je reviens vers toi t'embêter.
Grâce à toi j'ai pu modifier le script de wheel of lull. Et je t'en remercie encore.
Du coup j'ai essayé d'appliquer la même chose aux autres mods qui commencent trop tôt à mon goût. Sauf que, déjà je me rends conte qu'aucun script ne se ressemble.
Mais aussi, et d'abord, que le CK ne trouve pas toujours le script associé à la quête, me donnant un joli "missing file?".
Alors en cherchant un peu j'ai remarqué que les scripts qu'il n'arrive pas à trouver viennent de mod dont le dossier script est dans un .bsa.
Est-ce que j'ai vu juste?
Si c'est le problème j'imagine que je doit décompresser le bsa, modifier le script, recompresser et réinstaller? Ou y à t'il une manière plus direct?

Aussi, et là c'est plus précis, voici 2 scripts:
Le premier c'est celui de wheel of lull modifié précédemment:
► Afficher le texte
Et le deuxième, celui que j'aimerais modifier maintenant:
► Afficher le texte
Ma question est la suivante: Si j'ajoute un quest stage 10 à la quête qui n'a qu'un quest stage 0, que je me contente de copier la partie du script du premier en modifiant le nom de la quête, est ce que ça peut fonctionner?
Comme ceci:
► Afficher le texte
Ou je rêve un peu trop et que c'est pas aussi simple?
Avatar du membre
Tissendel
Maîtresse de Forge
Maîtresse de Forge
Messages : 1157

Re: Modifier la condition de lancement d'une quête. SSE

Message par Tissendel »

Salut,

Pour les scripts manquants, effectivement, s'ils sont dans le BSA d'un mod, il ne les trouvera pas. Tu peux donc extraire le script du BSA. Les scripts ( et tout autres objets ) placés hors des bsa seront prioritaire à ceux placés dans les bsa. Les mods ne contiennent parfois pas les fichiers psc ( mais tu sais les générer à partir du pex maintenant ^^ )
Si tu veux faire propre, tu peux aussi replacer le script modifiés dans le bsa.

Pour ton autre question, je vais répondre avec prudence car je ne maîtrise pas très bien le fonctionnement des quêtes.
Ici il s’agit d'un script de quête ( QF_blablabla.. ) avec des fragments. ( enfin un seul ici ) Contrairement au premier qui est un script qui s’exécute avec un activateur.
Ici chaque fragment est associé à un stage de la quete.
Je pense qu'il est préférable de modifier le code dans le CK en ouvrant directement la quête. Quand tu ouvrira, tu verra dans l'onglet "Quest Stage", il y a un petit cadre de "Fragment Papyrus". En te positionnant sur le bon quest stage, tu retrouveras le morceau de code contenue dans le script. Ce code s’exécute au moment ou le stage est activer dans le jeu.

Ce que essayerai pour une quete se déclenche à un certain niveau, dans l'onglet "Quest Data", mettre Event = "Increase Level" Ainsi la quete essayera de se déclencher quand on monte d'un niveau

Ensuite rajouter ta condition if game.GetPlayer().GetLevel() >= 50 dans la fragment de code du stage qui contient déjà du code

Voila, je sais pas si je suis bien claire xD Donc n'hésite pas a me dire si tu comprends rien xD
Répondre

Retourner vers « Entraide sur le Creation Kit »