Aller au contenu


Playsound Et Book...


  • Veuillez vous connecter pour répondre
4 réponses à ce sujet

#1 -Prechan-

-Prechan-

Posté 26 août 2009 - 19:56

Bonsoir,

J'ai de nouveaux, une question, voir plus, sur les scripts.
Je voudrai faire jouer un son après la fermeture de la fenêtre d'un livre. Cependant, j'ai deux petites questions, si je met une ligne de code dans ce script, est-ce que le son se jouera bien, après la fermeture de la fenêtre, et non pendant ?

Scn aaaBooooooK

Short lecture

Begin MenuMode 1026

if lecture == 1
if IsActionRef player == 1
if (getstage aaaQuest == 0)
SetStage aaaQuest 5
Set lecture to 2
PlaySound aaaSooooound
endif
endif
endif
end

Deuxième question, quand j'essaye d'ajouter un son dans l'onglet Miscellaneous/Sounds, je n'arrive pas à ajouter de .wav
Quand je clique sur "Add Sound File", rien ne s'ouvre :good:
Que dois-je faire ?

Merci beaucoup.
Prechan
<<< Le Repaire de Prechan >>>
Mon Site...avec toutes les news du développement de mes mods et plein d'autres trucs (La Bière n'est servie qu'aux Nains !)

#2 Shadow she-wolf

Shadow she-wolf

    Le katana de la GBT


Posté 26 août 2009 - 20:30

Bonsoir,

Concernant ton script...est-ce le script entier là ?
Car il ne fonctionnera jamais.


Tout d'abord, sauf action par un script extérieur, le test If Lecture retournera toujours 0 par défaut, donc il ne sera jamais à 1.
La fonction IsActionRef ne s'utilise que dans un bloc OnActivate, et non-pas dans un bloc MenuMode.

Concernant PlaySound...et bien, théoriquement, il devrait être joué à l'ouverture du livre là...sauf que la pratique est peut-être différente de la théorie dans le cas d'un son joué dans une menu...je n'en sais pas plus que ça. :good:


Concernant la création d'un fichier son, dans le wiwiki, il est marqué:

Citation

Comme la plupart des dialogues dans le Construction Set, afin de  pouvoir utiliser le bouton "Add Sound File" une hiérarchie de dossiers  familière doit exister relative au fichier maître. Pour ajouter de  nouveaux sons, ceux-ci doivent résider dans le dossier accessible par  le chemin "Oblivion\Data\Sound\fx". Ce dossier doit exister avant que  la boite de dialogue d'ouverture du fichier apparaisse.


#3 -Prechan-

-Prechan-

Posté 26 août 2009 - 22:48

Coucou Shadow,

En effet, j'ai un problème récurrent avec ce script. Ce que j'essaye de mettre en place, c'est le fait que le PJ lise le Book, ce qui déclencherai la fonction SetStage, mais ce, seulement la première fois. Et je ne trouve pas le moyen de le faire correctement...  :help:

Concernant PlaySound, merci de cette précision, je vais lire la page au complet, n'ayant jamais utilisé cette fonction du TESC2.

Merci encore une fois Shadow
Sur ce portes toi bien  :flowers:

Prechan™
<<< Le Repaire de Prechan >>>
Mon Site...avec toutes les news du développement de mes mods et plein d'autres trucs (La Bière n'est servie qu'aux Nains !)

#4 Shadow she-wolf

Shadow she-wolf

    Le katana de la GBT


Posté 27 août 2009 - 08:01

Voir le message-Prechan-, le 26.08.2009 à 23:47, dit :

En effet, j'ai un problème récurrent avec ce script. Ce que j'essaye de mettre en place, c'est le fait que le PJ lise le Book, ce qui déclencherai la fonction SetStage, mais ce, seulement la première fois. Et je ne trouve pas le moyen de le faire correctement...  :flowers:

Par défaut, quand on active un objet, on utilise en fait la fonction Activate sur le dit objet, cette fonction actionnera si c'est un activator, ça ferme/ouvre les portes, ça lit les livres, ramasse les objets, fouille les Flora, ouvre les Conteners et cetera...

Le truc, avec le bloc OnActivate, la fonction Activate est remplacé par le contenu du bloc. Donc si tu y mets uniquement un SetStage, quand tu actionnera le livre, ça mettra à jour ton journal mais c'est tout, ça ne lira pas le livre.
C'est pourquoi il suffit d'y ré-appliquer la fonction Activate.:help:

Dans ton cas, ça donnerait un truc dans le genre:
Begin OnActivate

Activate
If (getstage aaaQuest < 5)
	 SetStage aaaQuest 5
EndIf

 End

Il faut savoir, qu'a la lecture du livre, tu verras le message de mise à jour du journal en plein écrans, celui où il faut faire Ok, ce-dernier joue un son. De ce que j'ai pu remarquer, c'est que le dernier son joué semble parasiter l'ancien. Si tu veux être sûr que le son sera joué, il faudrait donc le placer théoriquement après le EndIf. Mais comme je te l'ai dis sur mon premier message, là je ne suis sûre de rien.

Si tu veux vraiment que le son soit joué à la fermeture du livre...j'ai une idée un peu tordue...car je ne sais pas comment faire autrement, peut-être y-a-t-il une solution plus simple...

C'est de simplement faire un script de quête, avec ceci dedans:
Short SonJoue

Begin GameMode

If SonJoue == 0
	 GetStageDone 5
		 PlaySound aaaSooooound
 	   Set SonJoue to 1
	 EndIf
 EndIf

End
Là, il testera en jeu (et donc, pas quand le joueur lis le livre) si le Stage est ou non été fait, si oui, il joue le son une unique fois, vu le temps d'exécution du script, ça sera presque juste-après la fermeture du livre, mais il y aura tout de même un temps de latence...
Seulement, ce script pose problème si le Stage 5 peut-être appelé par un autre biais que la lecture du livre...
Dans ce cas, il faudrait plutôt créer une nouvelle variable  dans le script de quête, par exemple Lecture, et lorsque tu lis le livre, tu fais un Set IDDeLaQuête.Lecture to 1 (change la variable dans le script de la quête mentionnée), dans ton script de quête, au lieu de tester le Stage, tu testera cette variable.
Du coup, puisque tu testeras une nouvelle variable, tu pourrais économiser l'ancienne, ça donnerait quelque chose comme ceci:
Short Lecture

Begin GameMode

If Lecture == 1;La variable sera mise à 1 par la lecture du livre dans le script de ce dernier.
	PlaySound aaaSooooound
	Set Lecture to 2
EndIf

End


#5 -Prechan-

-Prechan-

Posté 27 août 2009 - 09:45

Coucou Shadow,

Encore une fois merci de répondre à mes questions  :flowers: et d'éclaircir ma lanterne sur les scripts  :help:
Je vais changer dès aujourd'hui le script du livre et, concernant le PlaySound, je pense que la 1Ere Méthode, celle du script de quête, devrait fonctionner.
En effet, dans ce que je prévois de faire, seul le livre pourra déclencher la fonction SetStage.

Ceci dit, si ça ne fonctionne pas, j'essayerai la second méthode.

J'éditerai ce post pour indiquer si ça fonctionne bel et bien !

Prechan™

Modifié par -Prechan-, 27 août 2009 - 09:47.

<<< Le Repaire de Prechan >>>
Mon Site...avec toutes les news du développement de mes mods et plein d'autres trucs (La Bière n'est servie qu'aux Nains !)




0 utilisateur(s) li(sen)t ce sujet

0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)