Aller au contenu


Un Mur Montant


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

#1 Phant

Phant

    Plus pro, plus propre !


Posté 28 février 2009 - 16:57

Bonjour

Je cherche un script capable de faire monter un mur.

Je m'explique un couloir impérial tout se qu'il y a de plus normal mais le couloir s'arrête net, il faut chercher un interupteur pour faire monter le mur (hors du batiment a la vue du joueur), le mur disparu le chemin continue.

J'ai fais mes recherche et j'ai étudié les script de Urivith vault, qui était le plus proche de se que je cherche mais ma comprhension des script est limitée.

Alors j'appose ma question ici (n'ayant pas trouvé de topic apparent) connaisez vous un script, ou une idée de script permettant de faire monter le mur une fois que notre héros a activer l'interupteur ?

Merci d'avance !
"Dans la vie, rien n'est à craindre, tout est à comprendre."

#2 Post-it

Post-it

    Attachant détachable adhérant sans tâcher


Posté 28 février 2009 - 17:04

Bonjour L-Phant, je te propose ce script, à toi de l'adapter.

begin lil_porte_secrete


float counter
short doOnce
short lil

if ( OnActivate == 1 )
	Set counter to 1
endif

if ( counter == 0 )
	return
endif

if ( doOnce == 0 )
	PlaySound "Door Stone Open"
	set doOnce to 1
endif

if ( lil == 0 )

Set counter to counter + GetSecondsPassed

Rotate Z 30; le bouton tourne

"ID_du mur"->MoveWorld Z 20

if ( counter > 15 )
	Set counter to 0
	Set lil to 1
	Set doOnce to 0
	return
endif
endif

if ( lil == 1 )

Set counter to counter + GetSecondsPassed

Rotate Z -30

"ID_du mur"->MoveWorld Z -20

if ( counter > 15 )
	Set counter to 0
	Set lil to 0
	Set doOnce to 0
	 return
endif
endif

end

je te garantie pas que c'est le mieux, c'est made by post-it donc...

Edit : en relisant, je viens de voir que tu as placé ton interrupteur à l'extérieur de la cell, j'espère que cela ne va poser problème...

Modifié par Post-it, 28 février 2009 - 17:32.

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 ...

#3 Kira

Kira

    Top-modeleuse...


Posté 28 février 2009 - 18:02

Bonjour L-Phant.....

Pour ton mur, il faudrait déterminer exactement ce que tu veux obtenir, en ce qui concerne l'action....
Pour la solution simple, le joueur rencontre un mur, il revient sur ses pas et trouve un interrupteur qui fait que quand il revient dans la cellule, le mur a disparu... Dans ce cas, un simple enable-disable sur le mur suffira... Tu peux ajouter un bruit de grondement, ou une boite de message, comme tu préfères...
Si, après avoir déclenché le bouton, il te faut revenir dans la cellule où était le mur pour le voir disparaitre, il te faudra appliquer sur l'interrupteur un script du genre

begin bouton_script

short done

if ( done == 0 )
if ( OnActivate == 1 )
messageBox "Vous avez déclenché un mécanisme"
StartScript "MurQuiMonte"
set done to 1
endif

end

Avant cela, il te faudra attacher au mur le script "MurQuiMonte", où tu choisiras comment faire monter ton mur (distance par rapport au joueur, vitesse, son, etc...)
Tout n'est qu'illusion... Surtout le fait de le penser.....
Image IPB
(Wiwi d'or de la plus serviable et de la plus cool... Merci à vous tous...)

#4 Snaïpe

Snaïpe

    ...itset tnus otroh nI


Posté 28 février 2009 - 21:36

Citation

Avant cela, il te faudra attacher au mur le script "MurQuiMonte", où tu choisiras comment faire monter ton mur (distance par rapport au joueur, vitesse, son, etc...)

pour être sûr que tu n'ai pas de problèmes, je te fait un script clé en main ;)

Begin MurQuiMonte

Short Sound
Float Timer

If ( MenuMode == 1 );

	 return

endif

If ( Mur->GetDistance Player <= ø )



		  If ( Sound == 0 )

				 PlaySound "ID du son" 1; (c.f menu "sounds" du TESCS )
				 set Sound to 1

		  endif

		  Set Timer to ( Timer + GetSecondsPassed )

		  If ( Timer <= ø )

			   Move, Z, ø

		  else

			  StopScript MurQuiMonte

		  endif


endif

End


explication des variables ø

Les variables ø sont à remplacer par la valeur voulue.

If ( Mur->GetDistance Player <= ø ) : ø représente la distance qui sépare ton mur du PJ
If ( Timer <= ø ) : ø représente le temps ( en s ) que doit durer l'opération. Mettre une petite valeur pour un lever rapide, une grande valeur pour une lente progression.
Move, Z, ø : Nombre d'unitées de déplacement par sec. Pour l'obtenir, soustraire les coordonnées Z de "départ" aux coordonnées Z "d'arrivée" du mur , et le diviser par la valeur ø du "If ( Timer <= ø )"




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

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