La méthode de papipad est parfaite si tu te contentes de contrôler que le joueur a choisi assez tôt. (M'enfin, on peut aussi simplement mettre sous forme imbriquée :
- lancer chrono
- choix
- si oui, on vérifie (condition->chrono) qu'on ait appuyé assez tôt (donc que le chrono soit > 0), et à partir de là, on laisse en vie... ou pas ![]()
- si non (ou sinon ^^), on fait mourir (ben oui, il s'est gouré, le boulet))
Au fait, ça marche encore mieux si tu fais au hasard.
Par contre, si tu veux que le choix s'arrête automatiquement, tu risques de devoir changer le script du choix, et tu risques de morfler pour ça. (M'enfin, ça peut s'arranger
)
Arf, je suis chiant mais j'aimerais effectivement que le choix s'arrête automatiquement ![]()
En gros, mon personnage doit taper un code pour se téléporter.
Le choix, c'est le choix entre 3 codes (un juste, deux faux).
Il doit se téléporter avant qu'un autre personnage le voit (ce personnage en question se déplace vers lui). Donc le top, ça serait de pouvoir fermer le choix, et déclencher la petite animation de gameover :/
Mais s'il faut bidouiller le script T_T...
J'ai une solution mais il faut la tester.
Tu englobes ton systeme de question dans un chrono (mais helas il sera visible) que tu declancheras lors de la pose de tes questions par le biais d'un interrupteur comme specifié auparavant
Bon, alors pour la bidouille :
Dans le main, au même endroit que la dernière foi, tu crées une variable globale que tu initailise à -1 :
$fermer_boite_de_dialogue=-1
Ensuite, tu vas dans le script Window_Message. (Eh oui, c'est là que ça se passe
)
ligne 383, tu ajoutes ceci (hésite pas a remetre l'indentation en place) :
if $fermer_boite_de_dialogue==0
if $game_message.choice_cancel_type>0
Sound.play_cancel
$game_message.choice_proc.call($game_message.choic
e_cancel_type - 1)
terminate_message
end
$fermer_boite_de_dialogue=-1
else
En gros, c'est ce qui nous garantit que la fenêtre va se fermer, et surtout, qu'il y ait un choix choisi par défaut. Malheureusement, il va te falloir faire attention à choisir un choix par défaut dans le programme, sinon, ça risque de planter.
Ensuite, tu ajoutes à la ligne 401 :
$fermer_boite_de_dialogue-=1
end
Ceci fait baisser le compteur.
Comment ça marche, ces modif' ? C'est simple : tant que la valeur de $fermer_boite_de_dialogue vaut pas 0, on update le message, et on enlève un à la variable. Dès le moment où elle vaut 0, on quitte le choix, comme si le héros avait appuyé sur la touche d'annulation.
Donc, par défaut, on a mis la variable à -1 : vu qu'on fait que décrémenter (-1), la boucle sera infinie, c'est-à-dire, on la quittera pas "de tout seul" (le cas normal, quoi). Par contre, si la variable contient une valeur positive, il y aura forcément un moment où ça vaudra 0 : on quitte alors.
Autrement dit, si tu veux activer la fonction, tu dois rendre la variable $fermer_boite_de_dialogue au nombre de frames que tu veux que ça attende avant de fermer, sinon, tu dois impérativement mettre à une valeur négative (quelconque).
![]()
Merci pour tant de patience et de gentillesse ![]()
Je n'arrive pas vraiment à tout ça.
http://www.noelshack.com/m/up/aaa/Scritp-3dad1bdb91.JPG
Voilà ce que donne mon script, qu'est ce qui ne va pas dedans ?
(Quand je lance, j'ai des erreurs, ligne 398, ligne 416 etc)
"hésite pas a remettre l'indentation en place"
Mais qu'est ce donc ?
Merci encore ![]()
L'indentation, c'est la "structure" non-syntaxique de ton code. En gros, là, si tu regardes ton code, t'as des endroits où il y a du tab, et après pas du tout, etc. Indenter son code, c'est de mettre ça plus joliment, histoire que ça soit facilement lisible.
Sinon, tu as fait une erreur : le Input.trigger blablabla vient après ce que tu as ajouté. En gros, ça devrait te donner un truc du genre (pas de screen, parce que j'ai enlevé ce lignes du projet sur lequel j'ai testé) :
def input_choice
if $fermer_boite_de_dialogue==0
if $game_message.choice_cancel_type>0
Sound.play_cancel
$game_message.choice_proc.call($game_message.choic
e_cancel_type - 1)
terminate_message
end
$fermer_boite_de_dialogue=-1
else
if Input.trigger? Input::B
if $game_message.choice_cancel_type>0
Sound.play_cancel
$game_message.choice_proc.call($game_message.choic
e_cancel_type - 1)
terminate_message
end
elsif Input.trigger? Input::C
Sound.play_decision
$game_message.choice_proc.call(self.index)
terminate_message
end
$fermer_boite_de_dialogue-=1
end
end
end
S'il y a une erreur, hésite pas à reposter. ![]()
Pfiou, ça fonctionne, c'est super. ![]()
Merci BEAUCOUP ! ![]()
Ah oui, j'oubliais : si tu réinitialises pas la valeur de la variable à -1, ça continue dès que tu remets un choix. ![]()
J'avais anticipé
Merci ![]()
Bonjour.
J'ai un petit soucis. J'utilise RPGM VX et je viens de faire une map mais lorsque je clique sur la fleche orange pour tester le jeu un écran noir apparait avec le message "test du jeu en cour..." mais là ,la fenêtre se referme aussi tôt. Cela fais la même chose lorsque j'éssaie de jouer avec des jeux que j'ai télécharger...
Merci.
Euh, ouais... T'utilises quel OS ?
(XP ? Vista ? Seven ?)
XP.
Salut,comment faire pour w'un perso bouge automatiquement et qu'il parle en appuyant sur entrée,(Rpg maker xp).
[-Gaby-]
Euh, ouais... T'as un message d'erreur qui apparaît, avant la fermeture de la fenêtre ?
Et sinon, tu as quelle version ? (tu l'as téléchargée où ?
)
rwanito2
Je comprends pas très bien ce que tu veux...
U message apparait très rapidemment avec écrit dessus "Test du jeu en cours..." Puis la fenêtre se referme.
Je les télécharger RMVX sur RPGmaker online.
Tu arrives à donner le nom des traducteurs ?
Quelqu'un peu m'aider ?
Hum... ça à l'air con mais depuis peu j'ai commencé sur VX à faire un petit projet entres amis et le problème est que lorsque je met en place toute ma série d'événements qui marchent tous super bien je note, au lieu d'être uniques ( malgré le fait que je dis bien de les effacer. ) lorsqu'on sort de la map et reviens ils se répètent à nouveau ou les items disparu reviennent... Comment gérer ça ?
Passer par des condition et des pages.
Un peu de blabla technique : les évènements, pour RMXP/VX, sont propres à la map, et non au jeu. Donc, si on sort de la map lors d'une partie, ces évènements ne sont pas sauvegardés, mais simplement effacé de la mémoire vive ; et dès qu'on revient sur la même map, ils sont rechargés en mémoire.
L'impact est donc assez visible : utiliser l'option "supprimer un évènement" supprime l'évènement de la mémoire, mais ne sauvegarde pas ce fait. Dès lors, si on revient sur la map, il est à nouveau présent.
La "bonne" manière de faire ça est différente, puisqu'on veut que supprimer l'évent soit sauvegardé quelque part : on sauvegarde ça dans un interrupteur (local de préférence), de manière à pouvoir dire au jeu, lorsqu'on revient sur la map, que l'évènement doit pas être exécuté.
Tu fais donc :
page 1 : tout ce que tu veux avant de les effacer, puis comme dernière commande tu modifie un interrupteur local (A, par exemple
)
page 2 : tu laisses tout vide, sauf que dans les conditions à gauche, tu mets "si l'interrupteur local" (A, si tu as choisi celui-là) activé.
Voilà ! ![]()
Moi je me suis mit à fonctionner un peu differement mais ça marche aussi j'ai compris comment me servir de ces interrupteurs merci.
Bonjour Bonjour ! Toujours en quête de savoir, et avide de connaissances sur RPG Maker VX (et en ruby !), je viens solliciter les conseils d'experts (qui se reconnaitrons
)
Alors je cherche un truc que je n'ai trouvé nulle part sur le web !
Un script de danse !
Si, si
Enfin, pas un pseudo-mod de Dance Dance Revolution. Je m'explique.
Je ne veux pas faire intervenir de notion de rythme, trop fastidieux je pense.
Je souhaite juste (histoire de traduire ma pensée) ça :
- Un message "Gauche !" s'affiche.
- Le personnage doit faire un pas à gauche dans le temps imparti (disons 80 frames) (juste appuyer sur la touche flechée gauche en fait, la notion de déplacement est pas importante)
- S'il ne l'a pas fait dans le temps imparti, le message s'affiche, et c'est perdu, donc déclenchement d'un autre évenement, par exemple un message.
- S'il l'a fait, le message "Gauche !" s'efface et laisse place à un autre message, comme "Haut !" par exemple.
Je pensais faire ça à l'aide d'évenements sur des cases, donc un personnage, une case en haut, une case en bas, une case à gauche, une case à droite, puis bosser ça avec pas mal d'évenements, mais s'il existe une meilleure méthode (scriptée
) en se servant des "Input.Trigger", ça serait vraiment top !
Enfin, merci d'avance, puis si c'est pas possible, tant pis ! ![]()