Aller au contenu


Besoin D'aide Pour Script Musique


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

#1 darkarya

darkarya

Posté 30 mars 2009 - 21:30

Bonsoir,

Je suis un nouveau modeur, enfin je retouche des mods deja fais pour mon usage personnel car je ne suis pas assez doué pour en faire un moi même mais je bloque sur un petit truc!!

Je sais pas si vous connaissais le mod du dome de l'alchimiste (position seyda nihyn) il possede une harpe et un livre ki fé passé 1 musique soit en boucle soit en une fois.

J'aimerais que quelqu'un si il y arrive me fasse un seul script pour que quand je click sur la harpe se me fasse défiler des musique ke je veut que j'aurais appeler Dark1 , Dark2 , Dark3 , .... jusqu'à Dark20 placé dans le dossier Dark dans la section Music dans Data Files.

Des que je click sur la harpe sa enclenche la premiere musique des ke je reactive la harpe sa passe a la suivante et des que j'arrive à la fin de la 20 la harpe arrete de produire la musique et je doit reclicker dessus pour relancer la lecture!!

Si quelqu'un comprend ce que je veut faire peut-il me faire mon script svp pour apres je c k'il vous faudra des info que j'ai que je vous donnerais.

Vous pouvez me contacter à l'adresse : dark-arya@hotmail.fr



Svp aidez moi!!



Merci d'avance

Si l'on devait étudier toutes les lois, on aurait pas le temps de les transgresser!

Moyen

Cool


#2 Finraïl

Finraïl

    Modèle de wiwilandais nanotechnologique


Posté 31 mars 2009 - 07:29

Voir le messagedarkarya, le 30.03.2009 à 22:29, dit :

Bonsoir,

Je suis un nouveau modeur, enfin je retouche des mods deja fais pour mon usage personnel car je ne suis pas assez doué pour en faire un moi même mais je bloque sur un petit truc!!

Je sais pas si vous connaissais le mod du dome de l'alchimiste (position seyda nihyn) il possede une harpe et un livre ki fé passé 1 musique soit en boucle soit en une fois.

J'aimerais que quelqu'un si il y arrive me fasse un seul script pour que quand je click sur la harpe se me fasse défiler des musique ke je veut que j'aurais appeler Dark1 , Dark2 , Dark3 , .... jusqu'à Dark20 placé dans le dossier Dark dans la section Music dans Data Files.

Des que je click sur la harpe sa enclenche la premiere musique des ke je reactive la harpe sa passe a la suivante et des que j'arrive à la fin de la 20 la harpe arrete de produire la musique et je doit reclicker dessus pour relancer la lecture!!

Si quelqu'un comprend ce que je veut faire peut-il me faire mon script svp pour apres je c k'il vous faudra des info que j'ai que je vous donnerais.

Vous pouvez me contacter à l'adresse : dark-arya@hotmail.fr



Svp aidez moi!!



Merci d'avance
Dans ce cas, c'est assez simple. Tu prend le tutoriel de scripting, et tu ajoutes un compteur qui s'incrémente dans l'activate.
Une fois à 20, tu le réinitialise.
Pour la musique, tu regarde quelle est la valeur de ton compteur (1 à 20), et tu lances la bonne musique.

En avant !  :P

Not Quite Dead, le 22.06.2006 à 19:42, dit :

[...]un changement avatarien, même infime, est PAS BIEN et nuisible [...]
Les lisez-moi c'est bon, mangez-en !! Image IPB

Fervent Partisan de l'Immuabilité Avatarienne.

Morrowind Renaissance


#3 darkarya

darkarya

Posté 31 mars 2009 - 08:15

Oula j'ai pas tout compris la :P

Valeur, Incremente, activate  :lol: lol 

Je n'ai jamais fais de script et je débute tout joust avec le TESC tu pourrais m'expliquer comment faire avec un peu plus de detail ou avec un debut ou exemble de script?? Je suis perdu  :?:

Si l'on devait étudier toutes les lois, on aurait pas le temps de les transgresser!

Moyen

Cool


#4 Not Quite Dead

Not Quite Dead

    Rincevent


Posté 31 mars 2009 - 08:20

Si j'ai bien compris...

Voir le messagedarkarya, le 30.03.2009 à 22:29, dit :

Je sais pas si vous connaissais le mod du dome de l'alchimiste (position seyda nihyn) il possede une harpe et un livre ki fé passé 1 musique soit en boucle soit en une fois.
... tu disposes déjà d'un mod réalisant quelque chose d'approchant.

A quoi ressemble le ou les scripts des objets que tu mentionnes? Les as-tu déjà regardés dans le TESCS?
« I was a soldier! I killed people!
- You were a doctor!
- I had bad days! »
John Watson, en train d'étrangler Sherlock Holmes, Sherlock - A Scandal in Belgravia (2012)
---------------
Vous aussi rejoignez les Fervents Partisans de l'Immuabilité Avatarienne!
---------------
VGM impénitent (était-il besoin de le préciser?)
---------------
Paterfamilias niv.IV

#5 darkarya

darkarya

Posté 31 mars 2009 - 19:58

Pour repondre a ta question oui j'ai deja regarder ces scripts mais je n'arrive pas à comprendre commence ils fonctionnent j'ai essayé mais rien à faire en même temps je m'y conné pas du tout.
Pour que les musique tourne en boucle voici le script de base:

Citation

; Script du mod "Le dôme de l'Alchimiste"
; Utilise la Var globale "Gwen_SreamMusic"
; Merci à Mordicus sur le forum : http://www.wiwiland....orrowind/forum/

begin Gwen_Harp_boucle
   short doOnce

if ( OnActivate == 1 )
if (doOnce == 0)
if ( Gwen_SreamMusic < 201 ); la longueur du morceau de musique
if ( Gwen_SreamMusic == 0 )
streammusic "Gwen\Gwen_Sheebeg & Sheemore.mp3" ;
set doOnce to 1
endif
set Gwen_SreamMusic to ( Gwen_SreamMusic + GetSecondsPassed )
return
endif
set Gwen_SreamMusic to 0
else
streammusic "Gwen\Gwen_Sheebeg & Sheemore end.mp3"
set Gwen_SreamMusic to 0
set doOnce to 0
endif

endif

end Gwen_Harp_boucle

Pour une lecture simple des musique voici le script:

Citation

; Script du mod "Le dôme de l'Alchimiste"
; Joue une fois le morceau.

Begin Gwen_Harp_simple
short doOnce

if ( OnActivate == 1 )
if (doOnce == 0)
streammusic "Gwen\Gwen_Sheebeg & Sheemore.mp3" ;
Activate
set doOnce to 1
else
streammusic "Gwen\Gwen_Sheebeg & Sheemore end.mp3"
set doOnce to 0
endif
endif

End Gwen_Harp_simple

Je tient à rappeler que je veut faire tourner 20 musique que je nommerais Dark1 ; Dark2 ; Dar3; jusqu'à Dark20
Qui seront placées dans un dossier Dark dans la section Data Files\Music.

Si vous avez d'autres question n'hésitez pas mais svp aidez moi à créer ce script je veut vrément écouter ses musique en activant la harpe (script musique simple)ou en activant le livre(script musique en boucle).
Je sais pas si c'est possible mais est-ce possible que chaque fois que j'active l'objet sa passe à la musique suivant et à la derniere sa arrete la musique??

Si oui pouvez vous intégré ceci au script je sais que dans le script de base sa le faisais et j'aimerais que sa continue dans le nouveau script!!

Merci à tous pour votre attention!!

Amicalement

Si l'on devait étudier toutes les lois, on aurait pas le temps de les transgresser!

Moyen

Cool


#6 Post-it

Post-it

    Attachant détachable adhérant sans tâcher


Posté 31 mars 2009 - 20:11

Bonsoir darkarya, je vais essayer de t'aider mais je suis plutôt novice ...

Comme l'a dit Finraïl il faut une variable d'incrément, c'est à dire une variable qui prend +1 à chaque activation de la harpe donc :

begin music
 
 short doOnce
 
 if ( OnActivate == 1 ); je détecte si on active la harpe ...
 
 set doOnce to doOnce + 1; j'incrémente
 
   if ( doOnce == 1 )
	streammusic "morceau1.mp3
   endif
 
   if (doOnce == 2 )
	streammusic "morceau2.mp3"
   endif
 
   ...
 
   if ( doOnce == 20 )
	streammusic "morceau20.mp3
   endif

 
 endif
 
 end

P.S : Ici les musiques ne tournent pas en boucle, il faut adapter si tu veux les faire tourner en boucle ...

Voilà.

Edit :
- Est-ce que tu veux que les morceaux de musique soit joué en boucle ? par exemple le morceau 1 se répète tant que tu n'appuies pas sur la harpe ...
- Une fois les 20 morceaux joués la harpe s'arrête en appuyant un dernière fois. Si tu appuies de nouveau est-ce que la harpe ne joue plus ou joue-t-elle le morceau 1 ?

Modifié par Post-it, 31 mars 2009 - 20:44.

Y'a le Post-it et le Post-at ...

------------------------------------------------
Membre auto-proclamé des défenseurs des post-its sur forum, maintenant que je sais ce que c'est ...

#7 abg

abg

    L'ABG pour les civilisés


Posté 31 mars 2009 - 20:48

Voir le messagePost-it, le 31.03.2009 à 21:10, dit :

   streammusic "morceau2.mp3"

Un truc à prendre en compte avant d'utiliser streammusic :
(dans le genre tout change, tout lasse, tout casse... les certitudes d'hier ne sont plus celles d'aujourd'hui  :) )

Il y a la situation avant le Morrowind Code Patch : streammusic envoie la purée et met la musique de fond à plein volume même chez ceux qui jouent sans musique...
Avec le MCP, streammusic ne touche plus au volume. Lorsqu'il est réglé à zéro, on entend rien même si l'envoi de la musique est un effet voulu par un moddeur (effet dramatique... tout ça)

Moralité : Le MCP étant en passe de devenir un standard autant que le PNO, utilisez streammusic pour vous même si vous aimez jouer en musique ou pour quelque chose de non crucial. Si vous voulez faire de la mise en scène, pensez plutôt à PlaySound  :)
Antoninus Bibulus Glaber
Coaching de PNJs chez Morrowind Renaissance

#8 darkarya

darkarya

Posté 31 mars 2009 - 21:07

Voir le messagePost-it, le 31.03.2009 à 21:10, dit :

P.S : Ici les musiques ne tournent pas en boucle, il faut adapter si tu veux les faire tourner en boucle ...

Voilà.

Edit :
- Est-ce que tu veux que les morceaux de musique soit joué en boucle ? par exemple le morceau 1 se répète tant que tu n'appuies pas sur la harpe ...
- Une fois les 20 morceaux joués la harpe s'arrête en appuyant un dernière fois. Si tu appuies de nouveau est-ce que la harpe ne joue plus ou joue-t-elle le morceau 1 ?

Alors pour te repondre je veut bien que les morceaux soit jouer en boucle et change à chaque fois que j'active l'objet!!
Et des que j'active l'objet avec les 20 morceaux joué la harpe s'arrete!!

Si tu y arrive je te remerci de tout mon coeur!!!!!!! :)

En tout cas merci beaucoup c'est deja un bon début qui me manquait!!

Si l'on devait étudier toutes les lois, on aurait pas le temps de les transgresser!

Moyen

Cool


#9 Post-it

Post-it

    Attachant détachable adhérant sans tâcher


Posté 31 mars 2009 - 21:18

Je vais te conseiller ce que je ferais ...

J'essayerais déjà avec le script que je t'ai donné ... ( comme l'a dit abg, faire jouer des sons peut se révéler galère donc utilise playsound vérifie bien la fréquence des musiques ... Cf MSfD8)
Bref tu vois ce que ça fait ...

Une fois que tu as réussi à entendre une musique ( c'est déjà un bon début crois en ma petite expérience ... ) on pourra essayer de faire exactement ce que tu demandes ... :)

Maintenant il y a des personnes beaucoup plus douées sur ce forum que moi et qui pourrait te donner la réponse de suite ... Mais je ne pense pas que cela te sera utile ...

donc commence par ce script simple :

begin music

if ( OnActivate == 1 )

PlaySound, "SoundID"

endif

end
et mets le sur ta harpe ... Si cela ne fonctionne pas c'est que ton fichier son ne passe pas ...

Y'a le Post-it et le Post-at ...

------------------------------------------------
Membre auto-proclamé des défenseurs des post-its sur forum, maintenant que je sais ce que c'est ...

#10 Not Quite Dead

Not Quite Dead

    Rincevent


Posté 31 mars 2009 - 21:30

A noter toutefois que pour utiliser la commande playsound, il faut, ce me semble, avoir un son .wav qui a été intégré au TESCS. Alors que la fonction streammusic fonctionne avec des MP3 qui n'ont pas nécessairement été intégrés au TESCS.

Pour intégrer un son au TESCS, il faut cliquer sur l'icône Sounds (un menu s'ouvre avec les sons du jeu) puis choisir 'new' et parcourir ses dossiers jusqu'à parvenir au son que l'on souhaite intégrer. Il faut aussi donner une ID au son (un nom) qui est celle qui sera utilisée dans la commande playsound:

Playsound, ID_du_son

:) Il est donc possible que l'ID_du_son et le titre du son soient différents.
:) Tant que le son n'a pas une ID dans le TESCS, la commande playsound ne marchera pas.
« I was a soldier! I killed people!
- You were a doctor!
- I had bad days! »
John Watson, en train d'étrangler Sherlock Holmes, Sherlock - A Scandal in Belgravia (2012)
---------------
Vous aussi rejoignez les Fervents Partisans de l'Immuabilité Avatarienne!
---------------
VGM impénitent (était-il besoin de le préciser?)
---------------
Paterfamilias niv.IV

#11 elendell

elendell

    Mécano Dell'Arte


Posté 01 avril 2009 - 01:39

Bonjour,

Il y a comme toujours plusieurs moyens de faire. Concernant "streammusic", j'ai horreur de cette fonction car je joue et teste sans musique et sans le MCP. A chaque fois qu'un script lance "streammusic", je dois aller dans les options pour couper à nouveau mon volume !  :)

Je préfère donc les divers "PlaySound" mais celles-ci sont en partie boguées également. "PlaySoundVP" et "PlaySound3DVP" sont sensées prendre en compte l'indication de volume ; hors, chez moi le volume est toujours au maximum (1.0), quelque soit la valeur que je lui donne. Par contre, les valeurs de "pitch" (hauteur) sont bien prises en compte par ces fonctions.

Donc, si on veut jouer un son avec un volume différent que celui établi pour l'ID du son, il faut utiliser "PlayLoopSound3DVP" qui elle, prend bien en compte la valeur de volume que l'on donne.

"PlaySound" et "PlaySoundVP" jouent le son sans point d'origine (comme une musique d'ambiance).
"PlaySound3D",  "PlaySound3DVP" et "PlayLoopSound3DVP" font sortir le son de l'objet (comme un juke-box). Donc, suivant la position du PJ par rapport à l'objet, on entendra la musique à gauche, au centre ou à droite.

Ceci dit, voici quelques exemples de scripts pour ce que tu souhaites. Ne te contente pas de les recopier mais étudie-les. Le but est d'apprendre comment ça fonctionne puisque tu veux "moder".

A chaque fois que tu actives l'objet, celui-ci joue une musique différente. Si tu actives à nouveau pendant qu'une musique joue, elle est remplacée par la suivante. La musique n'est pas jouée en boucle :
Spoiler

Même chose pour celui-ci, sauf qu'il ne prendra en compte une activation que si aucune musique n'est en cours. (Pour qu'elle ne soit pas coupée brusquement) :

Spoiler

Celui-là joue les musiques en boucle sans pouvoir les arrêter. Activer l'objet change juste de musique :

Spoiler

Le dernier joue les musiques en boucle mais si tu actives l'objet pendant qu'une musique joue, ça l'arrête immédiatement :

Spoiler

Important :

- Les "PlaySoundXXX" qui ont "3D" dans leur nom ne sont audibles que si le PJ est à proximité de l'objet. Plus le PJ s'éloigne, plus le volume baisse. Les autres sont audibles au volume maximal dans toute la cellule où se trouve l'objet.

- En utilisant les "PlaySound" pour jouer de la musique, tu dois tenir compte que les joueurs jouant avec la musique d'ambiance entendront les deux à la fois. Si tu veux empêcher la cacophonie, il faut que tu lances en même temps une musique vide aussi longue que la plus longue de tes musiques (ou répétée) avec "streammusic".
Ce qui a encore l'effet négatif de mettre le volume des options à fond quand on n'utilise pas MCP !  :)

- Lis et relis le MSfD.

- Fais des petits essais pour comprendre une fonction (comme suggéré par Post-it).

- Relis le MSfD.  :|

#12 darkarya

darkarya

Posté 01 avril 2009 - 14:16

Ben ecoutez je croit que vous avez repondu à toutes mes questions!!

JE vous en suis tres reconnaissant et je vais essayé sa dessuite!!

Encore merci.

Si j'ai des probleme dans la réalisation du script je vous en informe pour que vous puissiez m'aider une fois encore.

Amicalement

J'ai de nouveau une nouvelle question!!
Est ce que le scripts des musique en boucle que tu m'a passé peut s'adapter si on le lit a un item qui quand on l'équipe lance le script donc lance les musiques et des k'on le deséquipe la musique s'arrete.

C'est mon nouveau projet et j'ai encore besoin de vous!!



J'ai aussi un probleme avec mon ancien script j'ai quand meme choisir de garder streammusic plutot que playsound mais j'ai un bug dans le script et je trouve pas ou  :orthopuristes:

Voici le script finit svp aidez moi encore une fois  :)

Citation

begin Dark

short doOnce

if ( OnActivate == 1 ); je détecte si on active la harpe ...

set doOnce to doOnce + 1; j'incrémente

   if ( doOnce == 1 )
    streammusic "Dark\Dark1.mp3
   endif

   if (doOnce == 2 )
    streammusic "Dark\Dark2.mp3"
   endif

   if (doOnce == 3 )
    streammusic "Dark\Dark3.mp3"
   endif

   if (doOnce == 4 )
    streammusic "Dark\Dark4.mp3"
   endif

   if (doOnce == 5 )
    streammusic "Dark\Dark5.mp3"
   endif

   if (doOnce == 6 )
    streammusic "Dark\Dark6.mp3"
   endif

   if (doOnce == 7 )
    streammusic "Dark\Dark7.mp3"
   endif

   if (doOnce == 8 )
    streammusic "Dark\Dark8.mp3"
   endif

   if (doOnce == 9 )
    streammusic "Dark\Dark9.mp3"
   endif

   if (doOnce == 10 )
    streammusic "Dark\Dark10.mp3"
   endif

   if (doOnce == 11 )
    streammusic "Dark\Dark11.mp3"
   endif

   if (doOnce == 12 )
    streammusic "Dark\Dark12.mp3"
   endif

   if (doOnce == 13 )
    streammusic "Dark\Dark13.mp3"
   endif

   if (doOnce == 14 )
    streammusic "Dark\Dark14.mp3"
   endif

   if (doOnce == 15 )
    streammusic "Dark\Dark15.mp3"
   endif

   if (doOnce == 16 )
    streammusic "Dark\Dark16.mp3"
   endif

   if (doOnce == 17 )
    streammusic "Dark\Dark17.mp3"
   endif

   if (doOnce == 18 )
    streammusic "Dark\Dark18.mp3"
   endif

   if (doOnce == 19 )
    streammusic "Dark\Dark19.mp3"
   endif

   if ( doOnce == 20 )
    streammusic "Dark\Dark20.mp3
   endif

   if (doOnce == 21 )
    streammusic "Dark\Dark21.mp3"
   endif

   if (doOnce == 22 )
    streammusic "Dark\Dark22.mp3"
   endif


endif

End Dark

Modifié par darkarya, 01 avril 2009 - 16:33.

Si l'on devait étudier toutes les lois, on aurait pas le temps de les transgresser!

Moyen

Cool


#13 elendell

elendell

    Mécano Dell'Arte


Posté 01 avril 2009 - 17:14

Voir le messagedarkarya, le 01.04.2009 à 15:15, dit :

Est ce que le scripts des musique en boucle que tu m'a passé peut s'adapter si on le lit a un item qui quand on l'équipe lance le script donc lance les musiques et des k'on le deséquipe la musique s'arrete.
Oui, avec "OnPCEquip" (MSfD8 p. 35/36).

Voir le messagedarkarya, le 01.04.2009 à 15:15, dit :

J'ai aussi un probleme avec mon ancien script j'ai quand meme choisir de garder streammusic plutot que playsound mais j'ai un bug dans le script et je trouve pas ou  :orthopuristes:
"J'ai un bug" n'est pas une description suffisante de ton problème mais cette instruction est mal écrite :

Citation

set doOnce to doOnce + 1

PS : Dans tes messages, place les scripts dans des "Codebox" ; ils seront plus facile à lire. Si tu veux que l'insertion en "CodeBox" soit sans ascenseur, enlève "box" des balises de début et de fin de l'insertion "CodeBox". Et tu peux en plus les mettre en "Spoiler" comme j'ai fait pour les miens, pour éviter de trop grands messages.

#14 Finraïl

Finraïl

    Modèle de wiwilandais nanotechnologique


Posté 01 avril 2009 - 17:54

Et comme je l'ai dis au dessus, arrivé à la fin (dans le if n° 22 dans ton cas), remettre la variable à 0 peut être utile pour recommencer au début !  :jester:

Not Quite Dead, le 22.06.2006 à 19:42, dit :

[...]un changement avatarien, même infime, est PAS BIEN et nuisible [...]
Les lisez-moi c'est bon, mangez-en !! Image IPB

Fervent Partisan de l'Immuabilité Avatarienne.

Morrowind Renaissance


#15 Post-it

Post-it

    Attachant détachable adhérant sans tâcher


Posté 01 avril 2009 - 18:01

Citation

"J'ai un bug" n'est pas une description suffisante de ton problème mais cette instruction est mal écrite : Citation

Citation

set doOnce to doOnce + 1

C'est moi qui l'ai écrit ... :jester: Veux-tu dire par là que les parenthèses sont obligatoires ?

Citation

Et comme je l'ai dis au dessus, arrivé à la fin (dans le if n° 22 dans ton cas), remettre la variable à 0 peut être utile pour recommencer au début !
Je ne suis pas sûr qu'il veuille revenir à 0 ...

Citation

Citation

- Une fois les 20 morceaux joués la harpe s'arrête en appuyant un dernière fois. Si tu appuies de nouveau est-ce que la harpe ne joue plus ou joue-t-elle le morceau 1 ?
Alors pour te repondre je veut bien que les morceaux soit jouer en boucle et change à chaque fois que j'active l'objet!!
Et des que j'active l'objet avec les 20 morceaux joué la harpe s'arrete!!

Modifié par Post-it, 01 avril 2009 - 19:09.

Y'a le Post-it et le Post-at ...

------------------------------------------------
Membre auto-proclamé des défenseurs des post-its sur forum, maintenant que je sais ce que c'est ...

#16 darkarya

darkarya

Posté 01 avril 2009 - 19:12

Voir le messageelendell, le 01.04.2009 à 18:13, dit :

Voir le messagedarkarya, le 01.04.2009 à 15:15, dit :

J'ai aussi un probleme avec mon ancien script j'ai quand meme choisir de garder streammusic plutot que playsound mais j'ai un bug dans le script et je trouve pas ou  :jester:
"J'ai un bug" n'est pas une description suffisante de ton problème mais cette instruction est mal écrite :

Citation

set doOnce to doOnce + 1

Tu me dit que cette instruction est mal écrite mais faut que je la remplace par quoi??

Et pour le "OnPCEquip"  Je doit le placer au début du script mais ou exactement j'ai du mal à voir meme avec le MSfD8 (p. 35/36)


Spoiler

Merci d'avance.

Pour repondre à Finraïl je ne veut pas faire de boucle juste passer la musique une seule fois!!
Mais merci du conseil

Si l'on devait étudier toutes les lois, on aurait pas le temps de les transgresser!

Moyen

Cool


#17 abg

abg

    L'ABG pour les civilisés


Posté 01 avril 2009 - 20:16

Voir le messagedarkarya, le 01.04.2009 à 20:11, dit :

Set doOnce to doOnce + 1

Tu me dit que cette instruction est mal écrite mais faut que je la remplace par quoi??

Et pour le "OnPCEquip"  Je doit le placer au début du script mais ou exactement j'ai du mal à voir meme avec le MSfD8 (p. 35/36)

Il paraît qu'il faut mieux mettre des parenthèses... Ceci dit pour ce genre d'incrément je n'ai jamais eu de problèmes, mais par acquis de conscience j'ai fini par prendre l'habitude d'en mettre :
Set DoOnce To ( DoOnce + 1 )

OnPCEquip fait partie des variables réservées auxquelles le moteur de jeu donne un sens particulier. Il faut donc la déclarer en même temps que les autres variables :
Short OnPCEquip

Après quoi tu n'as plus qu'à la tester, le jeu la passe automatiquement à 1 lorsque tu "équipes" l'objet

If ( OnPCEquip == 1 )
   Blablabla...
   Set OnPCEquip To 0
EndIf

Antoninus Bibulus Glaber
Coaching de PNJs chez Morrowind Renaissance

#18 elendell

elendell

    Mécano Dell'Arte


Posté 01 avril 2009 - 22:25

Voir le messagedarkarya, le 01.04.2009 à 20:11, dit :

Tu me dit que cette instruction est mal écrite mais faut que je la remplace par quoi??
J'ai pris la peine d'écrire plusieurs scripts d'exemples pour que tu les étudies. La réponse était dedans (doOnce ou etape ou bidule, c'est pareil) :

elendell dit :

set etape to ( etape + 1 )

Pour "OnPCEquip", abg t'a répondu avec justesse. Mais, dans ton cas, il ne faut pas que tu mettes "Set OnPCEquip To 0".

Si tu le mets, "OnPCEquip" détectera à chaque fois que tu équiperas l'objet de la même manière que "OnActivate" détecte si on active l'objet.
Mais un objet ne peut pas rester activé alors qu'il peut rester équipé. Donc, "OnActivate" se remet à 0 tout seul dès qu'il est utilisé mais "OnPCEquip"  ne se remet pas à 0 tout seul tant que l'objet reste équipé.

Si tu voulais uniquement que la musique se déclenche à chaque fois que tu équipes l'objet, il aurait bien fallu ajouter "Set OnPCEquip To 0".
Hors, tu veux également que la musique s'arrête si l'objet n'est plus équipé. Il te faut donc savoir si l'objet est toujours équipé ou non.

Si tu n'ajoutes pas "Set OnPCEquip To 0", tu peux le savoir car "OnPCEquip" reste à 1 tant que l'objet reste équipé. Quand tu déséquipes l'objet, ça repasse tout seul à 0. Il te suffit donc de vérifier si "OnPCEquip" est à 1 ou à 0 pour savoir si l'objet est oui ou non équipé.

Mais ça ne suffit pas car il ne faut pas déclencher la musique si l'objet est équipé mais uniquement s'il vient d'être équipé. Sinon, il lancera la musique à chaque frame.

Il ne faut donc pas faire : Si OnPCEquip est à 1 -> lance la musique
mais : Si OnPCEquip était à 0 et qu'il passe à 1 -> lance la musique

Pour faire ça, tu pourrais utiliser "Set OnPCEquip To 0" comme l'a dit abg. Mais comme tu veux aussi savoir le moment ou tu déséquipes l'objet, tu dois laisser "OnPCEquip" à 1 tant que l'objet est équipé.

Il te faut donc utiliser une variable : Si "OnPCEquip" est à 1 et que "variable" est à 0 -> lance la musique et mets "variable" à 1.
A la frame suivante, "OnPCEquip" est toujours à 1 et "variable" est aussi à 1. Il ne lancera donc pas à nouveau la musique.

Essaye déjà de faire ça des deux façons possibles : 1) sans variable mais en utilisant "Set OnPCEquip To 0" et 2) sans "Set OnPCEquip To 0" mais avec une variable.

Quand tu arriveras à faire ça, on passera à la suite : comment stopper la musique.

Spoiler


#19 darkarya

darkarya

Posté 02 avril 2009 - 20:34

Alors voila j'ai essayé de travailler sur tes scripts mais je n'arrive pas à mettrent mes musique dans sound pour faire fonctionner le PlayLoopSound3DVP.

J'ai essayé aussi de rajouter une derniere etape qui fait que sa stop le script quand j'ai passé la 20eme musique.

Spoiler

Il y a surement des erreurs surtout sur la fin à l'étape 21.
Je pense m'être trompé sur comment stoper le script mais je compte sur vous pour m'aiguiller apres avoir reussit à faire marcher ce script je passe a celui de l'anneau en suivant les conseil de elendell!!

Modifié par darkarya, 02 avril 2009 - 20:37.

Si l'on devait étudier toutes les lois, on aurait pas le temps de les transgresser!

Moyen

Cool


#20 abg

abg

    L'ABG pour les civilisés


Posté 02 avril 2009 - 20:54

Pas facile de relire ce genre de machine à état sans indentation  :lol:

Juste un truc qui me saute aux yeux (avant dernière ligne) :

Voir le messagedarkarya, le 02.04.2009 à 21:33, dit :

set etape to ( etape == 0 )

Il faut écrire :
Set etape to 0

Modifié par abg, 02 avril 2009 - 20:54.

Antoninus Bibulus Glaber
Coaching de PNJs chez Morrowind Renaissance

#21 elendell

elendell

    Mécano Dell'Arte


Posté 03 avril 2009 - 04:35

Bonjour,

Voir le messageabg, le 02.04.2009 à 21:53, dit :

Pas facile de relire ce genre de machine à état sans indentation  :lol:

elendell dit :

PS : Dans tes messages, place les scripts dans des "Codebox" ; ils seront plus facile à lire. Si tu veux que l'insertion en "CodeBox" soit sans ascenseur, enlève "box" des balises de début et de fin de l'insertion "CodeBox". Et tu peux en plus les mettre en "Spoiler" comme j'ai fait pour les miens, pour éviter de trop grands messages.
Utiliser les tabulations va vite devenir indispensable ; pour toi mais aussi si tu veux qu'on lise tes scripts. Il faut 4 fois plus de temps pour lire un script sans indentation et ont passe beaucoup plus facilement à côté d'une erreur !!!

Voir le messagedarkarya, le 02.04.2009 à 21:33, dit :

Alors voila j'ai essayé de travailler sur tes scripts mais je n'arrive pas à mettrent mes musique dans sound pour faire fonctionner le PlayLoopSound3DVP.
Menu "GamePlay"->"Sounds...". Dans la fenêtre qui s'ouvre, clique sur "New"->choisis une ID->OK. (L'ID est créée et sélectionnée par défaut). Clique sur "Sound Filname" et va chercher ton son (musique) dans le dossier "...\Morrowind\Data Files\Sound" où tu l'avais placé avant (j'espère, sinon commence par ça). Sélectionne-le->ouvrir.

C'est l'ID des sons que tu dois marquer dans le script, pas les noms des "musique.wav". Au fait, je crois qu'il faut obligatoirement des fichiers "wav" et pas des "mp3". Il existe des logiciels gratuits pour transformer les "mp3" en "wav".

Voir le messagedarkarya, le 02.04.2009 à 21:33, dit :

J'ai essayé aussi de rajouter une derniere etape qui fait que sa stop le script quand j'ai passé la 20eme musique.
On ne peut pas stopper un script local ! Il est toujours actif quand son objet lié est dans la même cellule que le PJ.
Il faut donc à la place empêcher qu'il continue à agir et réduire au minimum le nombre d'instructions qu'il va lire dans chaque frame, pour ne pas surcharger l'ordinateur.

On utilise donc "return" qui renvoie immédiatement au début du script et termine la frame, sans lire ce qui suit.

Voici deux exemples, essaye les deux :

Spoiler

Spoiler


#22 darkarya

darkarya

Posté 03 avril 2009 - 16:41

Voila beaucoup de précision je vais essayé ceci dessuite et je vous dis si cela fonctionne!!

Bon le script fonctionne bien mais les musique s'enclenche que quand je sort de la cellule où j'ai activé l'objet qui lance le script vous avez une idée??

Voici le script:

Spoiler

Merci d'avance

Modifié par darkarya, 03 avril 2009 - 10:23.

Si l'on devait étudier toutes les lois, on aurait pas le temps de les transgresser!

Moyen

Cool


#23 elendell

elendell

    Mécano Dell'Arte


Posté 04 avril 2009 - 01:11

C'est quel type d'objet ?

EDIT : Commence par stopper le son en cours.

#24 darkarya

darkarya

Posté 06 avril 2009 - 18:09

L'objet est un anneau que j'ai placé sur un mur, sa fait comme un interrupteur ^^

Par contre je voudrais que la musique s'arrete quand je sort de la cellule comment il faut faire?

Si l'on devait étudier toutes les lois, on aurait pas le temps de les transgresser!

Moyen

Cool


#25 elendell

elendell

    Mécano Dell'Arte


Posté 07 avril 2009 - 02:32

Voir le messagedarkarya, le 06.04.2009 à 19:08, dit :

Par contre je voudrais que la musique s'arrete quand je sort de la cellule comment il faut faire?
Réponse dans le script "lava" de Morrowind.




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

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