Aller au contenu


Problème De Script Avec Fadein Et Fadeout


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

#1 goaould

goaould

Posté 12 février 2006 - 13:07

Salut,

Voilà, j'ai fait ce script qui se déclenche en result d'un dialogue (c'est donc un script global) mais il ne fonctionne pas bien :green:

Citation

begin goa_assomme

float timer
short done

if (done == 0)
     if ( player->gethealth < 10 )
          set timer to (timer + getsecondspassed)
          goa_esclavagiste1->setfight 30
          goa_esclavagiste2->setfight 30
          goa_esclavagiste3->setfight 30
          goa_esclavagiste1->stopcombat
          goa_esclavagiste2->stopcombat
          goa_esclavagiste3->stopcombat
          goa_matelot1->stopcombat
          goa_matelot2->stopcombat
          fadeout 1
          if (timer > 2 )
player -> position, 291728, 85664, 273, 0
messagebox "Une douleur fulgurante vous traverse la tête"
set done to 1
          endif
     endif
endif

if ( done == 1 )
     fadein 1
     stopscript "goa_assomme"
endif

J'ai donc bien le fondu vers l'écran noir et la téléportation, ensuite il redevient normal mais il repart aussitôt en fondu et il reste bloqué en écran noir.

Et autre petite question, est ce que le fait de mettre le stopscript dans le script qui doit être arrêté fonctionne ou il faut arrêter le script par un autre moyen?

Voilà, merci d'avance
Si tu tournes le dos à tes problèmes, tu ne pourras jamais leurs faire face...

#2 Angora

Angora

    Danse avec les bugs


Posté 12 février 2006 - 13:49

Stopscript peut être utilisé sans problèmes, mais d'après des trucs que j'ai lu sur Rethan Manor, son fonctionnement est un peu bizarre : après la commande stopscript, le script s'exécute encore une dernière fois. Je me demande si ce n'est pas la cause de ton problème, essaye de voir comment il marche sans le stop script.

Peut-être en faisant

if ( done == 2 )
   stopscript goa_assome
   return
endif

if ( done == 1 )
   fadein 1
   set done to 2
endif

if ( done == 0 )
   if ( player->gethealth < 10 )
	  set timer to (timer + getsecondspassed)
	  goa_esclavagiste1->setfight 30
	  goa_esclavagiste2->setfight 30
	  goa_esclavagiste3->setfight 30
	  goa_esclavagiste1->stopcombat
	  goa_esclavagiste2->stopcombat
	  goa_esclavagiste3->stopcombat
	  goa_matelot1->stopcombat
	  goa_matelot2->stopcombat
	  fadeout 1
	  if (timer > 2 )
		 player -> position, 291728, 85664, 273, 0
		 messagebox "Une douleur fulgurante vous traverse la tête"
		 set done to 1
	  endif
   endif
endif

De cette façon, il ne devrait pas y avoir de retour au fadeout.
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 goaould

goaould

Posté 12 février 2006 - 14:43

Ben non, ça marche toujours pas :green:

Alors, j'ai essayé en rajoutant des messages box pour voir si tout passaient correctement; j'en ai rajouté une après le done == 1 et une après le done == 2, elles s'affichent bien.
Et si j'enlève le stopscript, j'ai le message box mis après le done == 2 qui s'affiche tout le temps (ce qui est normal, je pense vu que le script ne s'arrête pas)
Si tu tournes le dos à tes problèmes, tu ne pourras jamais leurs faire face...

#4 a3jv

a3jv

    ... à 4 je reviens.


Posté 12 février 2006 - 15:28

Je ne sais pas trop comment se comportent ces fondus mais peut-être le second a besoin d'un laps de temps qui ne lui est pas accordé par l'arrêt du script.
Tu peux essayer ça :
begin goa_assomme

float timer
short done

if ( done == 2 )
   set done to 0
   stopscript "goa_assomme"
   return
endif

if ( done == 0 )
   if ( player->gethealth < 10 )
	  set timer to ( timer + getsecondspassed )
	  goa_esclavagiste1->setfight 30
	  goa_esclavagiste2->setfight 30
	  goa_esclavagiste3->setfight 30
	  goa_esclavagiste1->stopcombat
	  goa_esclavagiste2->stopcombat
	  goa_esclavagiste3->stopcombat
	  goa_matelot1->stopcombat
	  goa_matelot2->stopcombat
	  fadeout 1
		 if ( timer > 2 )
			player -> position, 291728, 85664, 273, 0
			messagebox "Une douleur fulgurante vous traverse la tête"
			set done to 1
			set timer to 0
		 endif
   endif
endif

if ( done == 1 )
   fadein 1.0
   set timer to ( timer + getsecondspassed ) 
	  if ( timer > 1.5 )
		 set done to 2
	  endif
endif
	  
end

Modifié par a3jv, 12 février 2006 - 15:31.

Les choses n'ont que l'importance ou la valeur qu'on leur donne.

#5 goaould

goaould

Posté 12 février 2006 - 16:14

J'ai essayé ta méthode a3jv, mais c'est exactement pareil...

J'ai également essayé de retaper fadein 1 dans la console pendant que l'écran était noir; j'ai donc l'écran qui redevient normal mais il repart ensuite dans un fondu vers l'écan noir :green:
Si tu tournes le dos à tes problèmes, tu ne pourras jamais leurs faire face...

#6 a3jv

a3jv

    ... à 4 je reviens.


Posté 12 février 2006 - 16:39

Je pense qu'on les a pris à l'envers ! :green:
Il semblerait que ce soit FadeIn en premier et FadeOut ensuite pour un retour à la normale.
Les choses n'ont que l'importance ou la valeur qu'on leur donne.

#7 Nerwal

Nerwal

    SAMU Kalendaarien


Posté 12 février 2006 - 16:41

A essayer, sans garantie :
begin goa_assomme

float timer
short done

if ( done == 0 )
	if ( player->gethealth < 10 )
		goa_esclavagiste1->setfight 30
		goa_esclavagiste2->setfight 30
		goa_esclavagiste3->setfight 30
		goa_esclavagiste1->stopcombat
		goa_esclavagiste2->stopcombat
		goa_esclavagiste3->stopcombat
		goa_matelot1->stopcombat
		goa_matelot2->stopcombat
		fadeout 1
		set done to 1
	endif
endif

if ( done == 1 )
		set timer to ( timer + getsecondspassed )
		if ( timer > 2 )
			player -> position, 291728, 85664, 273, 0
			messagebox "Une douleur fulgurante vous traverse la tête"
			set done to 2
			fadein 1
			stopscript "goa_assomme"
		endif
endif

end


#8 goaould

goaould

Posté 12 février 2006 - 17:58

:angel2: Merci Nerwal, ça fonctionne enfin :(

@a3jv: merci aussi; sinon, pour le fadein et fadeout c'est bien comme je les avais mis; avant j'avais eut un problème car dans les aides, c'est bien le contraire qui est marqué...
Si tu tournes le dos à tes problèmes, tu ne pourras jamais leurs faire face...




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

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