Bonjour Kiitiara,
Tout d'abord, pourrais-tu mettre tes scripts dans des balises "Code" en plus des balises "spoiler", stp ? Cela permet de conserver les tabulations et c'est plus facile à lire.
Pour ton problème, il faut savoir que la commande "StopSound" n'est pas faite pour stopper le son.
Je présume qu'on s'est tous fait avoir avec ça. Elle est faite pour stopper la commande de jouer le son et non le son lui-même !
La commande "PlaySound" que tu utilises sert à déclencher un son mais elle n'est active que pendant une frame. Ensuite, le son est joué sur toute la durée du fichier wav mais le jeu n'a aucun moyen de savoir que le son est en train d'être joué et n'a plus aucun contrôle sur lui.
Pour pouvoir stopper le son, il faut que tu le fasses jouer avec une autre commande. Soit "StreamMusic" (que je déteste car elle place le volume à 100 si on n'utilise pas MCP), soit "PlayLoopSound3DVP" (que je te conseille).
Pour avoir un anneau avec un script local qui fait tourner un son de feu quand il est équipé, tu pourrais faire ceci :
Mais si tu l'essayes, tu verras que le son se lance bien mais ne stoppe pas non plus quand tu déséquipes l'anneau. Ceci car il y a un autre problème qui est dû à "OnPCEquip".
Il y a plusieurs solutions mais la plus simple est sans doute de faire jouer le son non pas par l'anneau mais par le PJ, en ciblant sur lui l'instruction. Essaye ce petit script local que tu placeras sur un anneau :
Note qu'en utilisant ainsi "PlayLoopSound3DVP", il y a un élément dont tu devras peut-être tenir compte : Quand le morceau se terminera, il sera automatiquement rejoué, tant que le script ne recevra pas l'instruction "StopSound".
A part ça, la commande "PlaySound" n'a pas besoin du chiffre 1 que tu lui ajoutes en fin d'instruction. Les IDs (de son ou autres) n'ont pas besoin de guillemets si le nom ne contient pas d'espace (mais ça ne gêne pas le script non plus). Laisse un espace entre les différents boutons de ta MessageBox de choix de musique (entre le guillemet de fermeture de l'un et celui d'ouverture du suivant).
Autre conseil : Tu dois chercher au maximum à optimiser tes scripts. Par exemple, dans tous les "elseif" tu as l'instruction "set reset to 1". Tu pourrais t'arranger pour ne le marquer qu'une seule fois. Au lieu de ça :
tu pourrais faire ça :
Et en cherchant un peu, tu devrais aussi pouvoir éliminer tous les "PlaySound "enchant fail"" pour n'en laisser qu'un seul.