Bienvenue sur JeuxOnLine - MMO, MMORPG et MOBA !
Les sites de JeuxOnLine...
 

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

Emission d'un son dans un zone (+ autres questions).

Par Mel Ethybem le 27/1/2003 à 17:49:50 (#3112557)

Etant donné (je l'ai déjà dis) que je ne connais rien à la syntaxe des scripts, vous pouvez me dire comment émettre un son à l'arrivée d'un PJ dans une zone ?

Comment faire pour qu'un PNJ disparraisse (avec effet visuel si possible) après avoir entammer son dialogue ?

Merci !

Par Mastokk le 27/1/2003 à 18:33:38 (#3112894)

Je ne sais pas s'il y a une autre manière de faire mais celle là fonctionne (sur le OnEnter d'une zone j'ai pas testé). Tu crées un invisible objet (c'est son tag que tu vas récupérer) et tu mets ce script dans le OnEnter de ta zone:


object oSpeaker = GetObjectByTag("invisible_object");
AssignCommand(oSpeaker,PlaySound("le_nom_du_sang_qui_doit_etre_joué"));

Par mobidique le 28/1/2003 à 13:25:55 (#3117892)

Pour le son en substance, tu place dans la zone un son que tu désactive, il y a une check box dans un des onglets, tu lui indique si besoin est qu'il ne doit être joué qu'un seule fois et puis ensuite tu mets un script de ce genre

void main()
{
if (GetLocalInt(OBJECT_SELF, "played") == 0) {
SetLocalInt(OBJECT_SELF, "played", 1);
SoundObjectPlay( GetObjectByTag("Eboulement") );
}
}
sur le OnEnter de la zone. La variable locale "played" permet de ne faire jouer qu'une seule fois le son et pas une fois pour chaque joueur entrant dans la zone. Compte tenu des délais inhérents au pb de connection, c'est à dire que les joueurs vont arriver les uns à la suite des autres tu peux décaler dans le temps le fait de faire jouer le son avec un DelayCommand de 1 ou 2 secondes je dirais. Note que je pense tout cela dans le contexte d'une partie unique et non pas dans le contexte d'un univers persistant. Une dernière chose : y a comme un petit bug avec les sons dans NwN ... Bon si le son est désactivé il est désactivé. Mais à partir du moment où il a été activé ben ... C'est étrange c'est comme si le son avait un algo propre ... Heu concrètement le pb c'est que lorsque les joueurs vont pénétrer à nouveau dans cette zone (donc après en être sortis une fois au moins), ben au bout d'un petit moment le son va être joué à nouveau. T'as beau faire un StopPlayingSound, tenter des DestroyObject, plein de trucs y a rien à faire ... cet andouille de son va se remettre a jouer si les joueurs rentrent à nouveau dans la zone. Alors le truc consiste à faire en sorte que les joueurs passent pas cette zone une fois et une seule fois, que ce soit en leur interdisant physiquement de revenir dans cette zone ou bien que le scénario les amène à aller plus loin. Dans mon cas, le son était un éboulement, alors le son de l'éboulement joué à chaque entrée dans la zone c'est con c'est sûr. Mais d'un autre coté, la zone était toute petite et les joueurs n'avaient aucun intérêt à y revenir et ils n'y sont pas revenus.

Valà.

JOL Archives 1.0.1
@ JOL / JeuxOnLine