Aller au contenu


[résolu] Détecter Une Chute Critique


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

#26 Fandorn Delavie

Fandorn Delavie

    Défilé de mods


Posté 12 janvier 2006 - 21:58

euh non ... a partir du moment ou un espace est placé sous le niveau de l'eau ... il est normalelent immergé.
Modules bêta sur True Morrowind en attendant d'être sur wiwiland... Deja des millions de téléchargements :)

#27 MysticalShadow

MysticalShadow

Posté 12 janvier 2006 - 22:13

Super! J'ai édité mon script pour détecter l'eau.

#28 Mordicus

Mordicus

    Philippe Risoli & Muppets show


Posté 12 janvier 2006 - 23:40

Ben y'a des bonnes nouvelles...

Le script pour les chutes marche!   :beat:  Même sans la modif pour détecter l'eau! J'ai tout essayé, les sauts, les plogeons, les combats sous l'eau etc... j'ai bien des sons distinct en fonction des chutes, et pas de problème pendant les combats.  :huhu:

Juste un cas très particulier: quand je saute dans la lave (faut le vouloir!  :P ) on devrait entendre un grand plouf ! suivi d'une séquence grillade... Mais on n'a pas de "plouf dans la lave"...   :D

Le script pour la lave marche aussi.  :huhu:
Faut juste que j'améliore le son et que ça fasse un loop, ça rendra mieux. :)

Citation

Hélas, non. Pas moyen de travailler sur des références ou des pointeurs...
Bon, en pratique, si c'est possible. Mais au lieu de faire un script global, il faut faire des script locaux collés sur chaque ennemi ou monstre. Ce qui implique donc de modifier des tas de scripts préexistants pour rajouter la portion de code concernée. L'horreur.
En effet, ce n'est pas pensable... Dommage, car si cela avait été le cas, j'aurais pu m'en servir pour éviter les interruptions inutiles musique de combat/d'exploration, lorsqu'un PJ niveau 15 croise un rat ou une petite bestiole.

Remarque, on peut faire un script spécial "la musique ignore les rats et autres petites nuisances...". Mais le souci, c'est qu'il vaut mieux éviter de trop toucher inutilement à la fonction Streammusic. A chaque fois, elle remet automatiquement le volume de la musique à fond...  :dry:

Merci à tous pour votre aide.

PS: Juste un truc à corriger, à la dernière ligne
Set PJPosZ_prev to PJPozZ_encours
C'est un s, pas un Z.
(Ultra)VGM récalcitrant et moddeur allergique aux jeux vidéo.

#29 MysticalShadow

MysticalShadow

Posté 13 janvier 2006 - 15:53

Content que ca marche! :rolleyes:
Le script ne gère pas la lave, car je ne vois pas comment il pourrait le faire tout seul. Il faudrait modifier le script "lava" et rajouter une variable globale. Tu le veux?

Quel script fonctionne pour la lave?

#30 Mordicus

Mordicus

    Philippe Risoli & Muppets show


Posté 14 janvier 2006 - 13:01

:green:

Juste une question: avec ce système de détection des chutes, est-ce qu'il y a moyen de changer les conditions pour le choix du son par rapport à la gravité de la chute (chute=1, chute =2, etc. ça ne laisse guère de place pour des réglages, non ?  ;) contrairement à >=30, >=60, >=90)

Dans tous les cas, c'est déjà très bon comme ça. Donc surtout ne pas s'embetter à revoir tout le script. ;)

Voir le messageMysticalShadow, le 13.01.2006 à 15:53, dit :

Le script ne gère pas la lave, car je ne vois pas comment il pourrait le faire tout seul. Il faudrait modifier le script "lava" et rajouter une variable globale. Tu le veux?
Si tu penses que cela n'allourdira pas inutimement le script, je veux bien essayer... me reste à trouver un gros "plouf" adapté... ;)

Citation

Quel script fonctionne pour la lave?
J'ai pris celui d'Angora. J'ai réussi à créer un son pour "ça crame" qui me paraît pas mal. 8)

Puisque tu sembles aimer les scripts  :P , j'en profite pour demander deux autres choses par rapport aux sons:

- serait-il possible d'attacher au NIF des planches en bois un script pour que lorsque le joueur ou un PNJ marche sur un dock ou sur un pont en bois, on entende un son de pas différent que celui par défaut ? (ça me paraît assez dur à moins de placer manuellement des activateurs partout, mais je demande, sans me faire trop d'illusion, si un script directement attaché à un élément statique pourrait fonctionner... et remplacer les bruits de pas)

- autre chose sans doute très difficile: serait-il possible de modifier le son de l'impact des projectiles (flèches, carreaux, armes de jet) lorsqu'un PNJ ou une créature est touché par le PJ, ou le contraire ? (sans, évidemment, attacher de scripts à tous les PNJ et monstres...)

:)
(Ultra)VGM récalcitrant et moddeur allergique aux jeux vidéo.

#31 MysticalShadow

MysticalShadow

Posté 14 janvier 2006 - 18:09

Citation

Juste une question: avec ce système de détection des chutes, est-ce qu'il y a moyen de changer les conditions pour le choix du son par rapport à la gravité de la chute (chute=1, chute =2, etc. ça ne laisse guère de place pour des réglages, non ? icon_confused.gif contrairement à >=30, >=60, >=90)
Aïe j'avais pas pensé à ca. :green:
OK, j'ai édité le message où est le script.

Citation

- serait-il possible d'attacher au NIF des planches en bois un script pour que lorsque le joueur ou un PNJ marche sur un dock ou sur un pont en bois, on entende un son de pas différent que celui par défaut ?
Les statics ne peuvent avoir de scripts attachés...C'est pour cela que Bethesda à crée les activators. ;)

BEGIN local_BruitSurBois

if ( GetStandingPC == 0 )
	Return
endif

if ( Player->GetSoundPlaying "Bruit de pas" == 0 )	; à voir dans le TESCS
	Return
endif

Player->PlaySoundVP "crac", ( ( Random100  / 333 ) + 0.7 ), 1.0

END
Si ca marche bien, ton son devrait être joué plus ou moins fort alétoirement. Il est également possible de varier les sons:
BEGIN local_BruitSurBois

short bruit

if ( GetStandingPC == 0 )
	Return
endif

if ( Player->GetSoundPlaying "Bruit de pas" == 0 )	; à voir dans le TESCS
	Return
endif

Set bruit to ( Random, X )		  ; X est le nombre de sons différents

if ( bruit == 0 )
	Player->PlaySoundVP "crac1", ( ( ( Random, 30 ) / 100 ) + 0.4 ), 1.0
elseif ( bruit == 1 )
	Player->PlaySoundVP "crac2", ( ( ( Random, 30 ) / 100 ) + 0.4 ), 1.0
; ...
; etc.
; ...
endif

END

Quant à la lave:
- crée une variable globale short (dans l'exemple c'est PjSurLave)
- Dans le script d'Angora, change ça:
if ( GetStandingPC == 1 )
   if ( timer >= 1 )
en ça:
Set PjSurLave to 0

if ( GetStandingPC == 1 )
   Set PjSurLave to 1
   if ( timer >= 1 )

- dans mon script, remplace ce code
		endif
		if ( chute >= 90 )
par ce code
		endif
		if ( PjSurLave == 1 )
				if ( chute >= 30 )
						PlaySound "ton bruit PLOUF"
				endif
		endif
		if ( chute >= 90 )


#32 Mordicus

Mordicus

    Philippe Risoli & Muppets show


Posté 01 février 2006 - 14:50

@ MysticalShadow

Merci pour le script du bois, je ne l'ai pas encore essayer mais cela ne saurait tarder. :)

Sinon, pour le son de la chute, avec le script actuel j'ai un tout petit souci:

il arrive que le son de la chute soit joué quand le joueur n'est pas blessé (alors qu'il devrait retomber normalement, si, par exemple, il a un haut score en acrobatie élevé ou si il porte une amulette de saut). Et il arrive aussi que le son de la chute ne soit pas joué alors que le PJ reçoit des dégâts... Dans les deux cas c'est plutôt rare, mais ça arrive.

La ligne:
if ( chute > 0 )	 ; test pour savoir si on est blessé lors de l'aterrissage.
n'est pas infaillible...

Est-ce que tu as une idée ? Peut-on détecter les dégâts reçu en pourcentage, ou varier le script en fonction de l'acrobatie ?

-----------------

Un autre script en rapport avec les sons sur lequel je me casse les dents depuis trois semaines... pour changer le son d'une arme dégainer. Ca paraît bête, mais à moins d'attacher un script aux armes (ce que je ne ferai pas), je ne vois pas de moyen efficace. Pourtant je ne suis pas loin...

Voilà deux méthodes différentes (dans le même script)
pour deux armes (type 7 hache à 1 main, et type 11, arbalette)

begin weapon_effects
	
	Short MordiOnce
	Short MordiDart
	
	if ( Player -> GetWeaponType <= 6 )
		set MordiDart to 0
	endif
	
	if ( Player -> GetWeaponType == 7 )
		if ( Player->GetWeaponDrawn )
			if ( DoOnce == 0 )
			 ;if ( Player -> GetSoundPlaying "Item Weapon Bow Up" == 1 )
				Player -> stopsound "Item Weapon Bow Up"
				Player -> playsound "Item Weapon Axe Up"
				Messagebox "Hache une main"
				set MordiOnce to 1
				set MordiDart to 0
			elseif ( MordiOnce == 1 )
			 ;if ( Player -> GetSoundPlaying "Item Weapon Bow Down" == 1 )
				Player -> stopsound "Item Weapon Bow Down"
				Player -> playsound "Item Weapon Axe Down"
				Messagebox "hache une main rangée"
				set MordiOnce to 0
			endif
		endif
	endif
	
	if ( Player->GetWeaponType == 11 )
		if ( Player -> GetSoundPlaying "Item Weapon Blunt Up" == 1 )
		 ;if ( Player -> GetWeaponDrawn )
			Player -> stopsound "Item Weapon Blunt Up"
			Player -> playsound "Item Weapon Dart Up"
			Messagebox "Son des flèchettes sorties"
			set MordiDart to 1
		endif
	endif
	
	if ( MordiDart == 1 )
	 ;if ( Player -> GetSoundPlaying "Item Weapon Blunt Down" == 1 )
			Player -> stopsound "Item Weapon Blunt Down"
			Player -> playsound "Item Weapon Dart Down"
			Messagebox "Son des fléchettes rangées"
			set MordiDart to 0
	 ;endif
	endif   
	
 ;if ( MordiDart == 1 )
	 ;if ( Player -> GetSoundPlaying "Weapon Swish" == 1 )
		 ;Player -> stopsound "Weapon Swish"
		 ;Player -> playsound "SwishS"
		 ;MessageBox "Son swishS joué"
	 ;endif
 ;endif
	
end weapon_effects

Et un autre script testé pour la hache à 2 main qui fonctionne

begin MordiAxe2

Short DoOnce

if ( Player -> GetWeaponType == 7 )
if ( Player -> GetWeaponDrawn )
if ( DoOnce == 0 )
  Player -> stopsound "Item Weapon Bow Up"
  Player -> playsound "Item Weapon Axe Up"
  Messagebox "Son de la Hache"
  set DoOnce to 1
elseif ( DoDonce == 1 )
  Player -> stopsound "Item Weapon Bow Down"
  Player -> playsound "Item Weapon Axe Down"
  Messagebox "Son de la Hache rangée"
  set DoOnce to 0
endif
endif
endif

end
Le problème avec les variables de type DoOnce (MordiOnce, MordiDart), c'est qu'on ne range pas forcément son arme avant d'en sortir une autre... on peut passer de l'une à l'autre via le clavier. Donc le script ne marche qu'à moitié...

Je précise que j'ai essayé toute les variantes possibles sans "DoOnce", juste avec IF, ELSEIF et ELSE... ça ne marche jamais bien. Le son est entendu quand l'arme est sortie, mais non quand elle est rangée.

Et pour corser le tout, j'ai un problème bizarre... Impossible de détecter le son Blunt Down (quand on range une arme contondante).

Par exemple:

begin MordiBlunt_detection

if ( Player -> GetSoundPlaying "Item Weapon Blunt Up" == 1 )
Messagebox "blunt up joué"
endif

if ( Player -> GetSoundPlaying "Item Weapon Blunt Down" == 1 )
Messagebox "blunt down joué"
endif

End

Quand je sors un bâton, j'aurai le message "Blunt up joué". Mais quand je le range, je n'ai jamais "blunt down joué". Pour tant c'est bien "Item Weapon Blunt Down" que j'entends et pas un autre son  :? . Or ça m'embête, car ce son est aussi utilisé pour les armes de jet, et je voudrais le remplacer. Mais sans pouvoir le détecter, pas moyen de le changer...  :(

:D

Modifié par Mordicus, 01 février 2006 - 14:51.

(Ultra)VGM récalcitrant et moddeur allergique aux jeux vidéo.

#33 Mordicus

Mordicus

    Philippe Risoli & Muppets show


Posté 20 février 2006 - 11:47

EUh, petit problème:

Player->PlaySoundVP "crac", ( ( Random100  / 333 ) + 0.7 ), 1.0

Player->PlaySoundVP "crac1", ( ( ( Random, 30 ) / 100 ) + 0.4 ), 1.0

Aucune de ces deux typo n'est reconnue par le TESCS, qui me demande de rentrer un volume... Peut-on vraiment utiliser random pour le volume/pitch d'un son ? (je n'ai pas réussi à trouver d'autres exemples du type). Et si oui , quelle est la typo correcte ?  :shock:

Autre question: placer des activateurs invisibles un peu partout dans le jeu, cela ne risque-t-il pas de faire chuter le FPS ? (je pense aux effets du mod ASE)

Merci
(Ultra)VGM récalcitrant et moddeur allergique aux jeux vidéo.

#34 Nerwal

Nerwal

    SAMU Kalendaarien


Posté 20 février 2006 - 12:39

Essaie quelque chose comme :

float volume
(...)
set volume to ( ( ( Random, 30 ) / 100 ) + 0.4 )
Player->PlaySoundVP "crac1", volume, 1.0

Malheureusement dans de nombreuses commandes de scripts, les formules ne sont pas acceptées en paramètre, et parfois même les variables locales/globales non plus.

#35 Mordicus

Mordicus

    Philippe Risoli & Muppets show


Posté 22 février 2006 - 00:33

Ca a l'air de marcher, merci Nerwal. :?

En fait j'ai tenté ça:

float volume
float pitch

set volume to ( ( ( Random, 30 ) / 100 ) + 0.4 )
set pitch to ( ( ( Random, 30 ) / 100 ) + 0.4 )

Player->PlaySoundVP "crac1", volume, pitch
Ca devrait marcher théoriquement, n'est-ce pas ?

Le problème, c'est que dans la pratique playsoundVP n'a pas l'air de tenir compte de mes valeurs volume/pitch...  PlaySoundVP marche assez mal en général ? ou y a-t-il quelque astuce à savoir ?

J'ai placé les commandes "set volume" et "set pitch" en dessous d'une condition chaque fois répétée, de façon à ce que les variables soient à chaque fois réinitialisées et différentes, mais visiblement, j'ai toujours le même son... c'est comme si je faisais Playsound (sans VP)  :huhu:
(Ultra)VGM récalcitrant et moddeur allergique aux jeux vidéo.

#36 Orann

Orann

    Nérévarine de Pertevue


Posté 22 février 2006 - 11:46

Quand j'ai lu tes derniers messages, je me suis rapellé que quand j'avais testé des script avec playsound, le volume n'avait aucune insidence dans le jeu :green: J'ai préféré ne rien dire car j'aurai pu me tromper, en plus ça fait longtemps. Mais apparemment tes observations confirment les miennes et il est maintenant peu probable que ça vienne d'une erreur dans la syntaxe...  :twisted:
Palme d'honneur 2010 pour le mod Archipel de Pertevue

Entamez votre voyage vers l'Archipel de Pertevue ! Test communautaire en cours.

#37 Mordicus

Mordicus

    Philippe Risoli & Muppets show


Posté 22 février 2006 - 12:54

En effet... :green:

Morrowind et les commandes sonores, ce n'est pas très folichon...

Je vais quand même essayer la variante PlaySound3DVP que j'avais complètement oubliée, mais je ne me fais pas trop d'illusion...  :twisted:
(Ultra)VGM récalcitrant et moddeur allergique aux jeux vidéo.

#38 Mordicus

Mordicus

    Philippe Risoli & Muppets show


Posté 21 septembre 2006 - 10:34

Re-bonjour :lol:

Voir le messageOrann, le 22.02.2006 à 12:46, dit :

Quand j'ai lu tes derniers messages, je me suis rapellé que quand j'avais testé des script avec playsound, le volume n'avait aucune insidence dans le jeu
Je voudrais revenir la-dessus...

- as-tu constaté la même chose pour le pitch ? (ou seulement le volume) ?  

- est-ce que c'est, selon toi, la même chose avec playsound, playsound3D et playsound3DVP ?

:green:

EDIT: bon ben non, apparemment ça marche pas du tout... :shock:
(Ultra)VGM récalcitrant et moddeur allergique aux jeux vidéo.




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

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