Aller au contenu


Script Qui Camoufle Une Chute D'eau


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

#1 haroold

haroold

Posté 08 janvier 2006 - 19:24

Bonjour,

Je voulais créer un script qui supprime des chutes d'eau lorsqu'une varible globale est mise à jour.

J'ai donc commencé par un simple Disable lorsque la variable passait à 1.
Le problème c'est que le son d'eau produit par la cascade continuait.

Donc, je les ai fait dessendre très loin vers le bas pour que l'on ne les entende plus.
Mais le problème, c'est que lorsque ma variable retourne à 0, les chuttes, elles, ne reviennent pas :'(

Si vous avez une petite idée, n'hésité pas :P

peut-être utilisé "StopSound" :s ?

Begin 0HR_chute
short doonce
short remmetre
short unefois

If ( unefois == 0 )
	Set unefois to 1
	Set remmetre to 1
Endif

If ( "0HR_eau" == 1 )
	If ( doonce == 0 )
		SetPos z -6000
		Set doonce to 1
		Set remmetre to 0
	Endif
Else
	If ( remmetre == 0 )
		SetPos z 6000
		SetAtStart
		Set doonce to 0
		Set remmetre to 1
	Endif
Endif

if ( CellChanged == 0 )
	if ( GetSoundPlaying "Cave_Waterfall" == 0 )
		PlayLoopSound3DVP "Cave_Waterfall", 1.0, 1.0
	endif
endif

End

Merci d'avance :green:

Modifié par haroold, 08 janvier 2006 - 19:27.

Dit moi le Troll, tu est fortement vilain de la face.
Es-tu né aussi disgracieu?
GGGGGRRRRR!!!!!!!
Note four le lifffff à Dédé... Ne fa dérangé le Troll. Et ne fa farler esthétique en sa présence.

#2 Angora

Angora

    Danse avec les bugs


Posté 08 janvier 2006 - 20:13

[quote name='haroold' date='08.01.2006 à 19:24' post='375562']
Donc, je les ai fait dessendre très loin vers le bas pour que l'on ne les entende plus.
Mais le problème, c'est que lorsque ma variable retourne à 0, les chuttes, elles, ne reviennent pas :'(

C'est parce que tu utilise setPos. Elles reviennent, mais à 6000 unités d'altitude, ce qui est sans doute bien au dessus de leur point de départ...

Essaye ça à la place. J'en ai profité pour corriger la faute d'orthographe dans le nom de la variable, ça sert à rien mais il le fallait.  :green:


Le saviez-vous ?

En français, il n'y a jamais, jamais, JAMAIS, J-A-M-A-I-S, de cédille à un 'c' devant un 'e', un 'i' ou un 'y'. Jamais. Sans aucune exception. Pas la moindre. Zéro. Cédille devant e, i ou y = faute. Un point, c'est tout, c'est comme ça, ça a toujours été comme ça, et ça le sera toujours.

#3 haroold

haroold

Posté 08 janvier 2006 - 20:51

Begin 0HR_chute
short doOnce
short remettre
short unefois
float ZPos

if ( doOnce = 0 )
	set ZPos to GetPos Z
	set doOnce to 1
endif

If ( unefois == 0 )
	Set unefois to 1
	Set remettre to 1
Endif

If ( "0HR_eau" == 1 )
	If ( doonce == 1 )
		SetPos z -6000
		Set doOnce to 2
		Set remettre to 0
	Endif
Else
	If ( remettre == 0 )
		SetPos z ZPos
		SetAtStart
		Set doOnce to 1; ici il faut mettre 1 sinon ça ne marche qu'une fois, non ?
		Set remettre to 1
	Endif
Endif

if ( CellChanged == 0 )
	if ( GetSoundPlaying "Cave_Waterfall" == 0 )
		PlayLoopSound3DVP "Cave_Waterfall", 1.0, 1.0
	endif
endif

End

Merci ^^
Dit moi le Troll, tu est fortement vilain de la face.
Es-tu né aussi disgracieu?
GGGGGRRRRR!!!!!!!
Note four le lifffff à Dédé... Ne fa dérangé le Troll. Et ne fa farler esthétique en sa présence.

#4 MysticalShadow

MysticalShadow

Posté 11 janvier 2006 - 22:02

Il me semble que tu n'as pas besoin de toutes ces variables. :grin:

Begin 0HR_chute

short sous_terre; 1=fontaine cachée
float ZPos

If ( "0HR_eau" == 1 )
	If ( sous_terre == 0 )
		SetPos, Z, -6000
		Set sous_terre to 1
		Set ZPos to ( GetPos, Z )
	Endif
Else
	If ( sous_terre == 1 )
		SetPos, Z, ZPos
		SetAtStart
		Set sous_terre to 0
	Endif
Endif

if ( CellChanged == 0 )
	if ( GetSoundPlaying "Cave_Waterfall" == 0 )
		PlayLoopSound3DVP "Cave_Waterfall", 1.0, 1.0
	endif
endif

End
Au fait, SetAtStart n'aura pas le même effet que le SetPos, Z, ZPos? Si oui, on peut gagner une variable.




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

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