Salut à tous!
Je viens enfin de finir le système que je préparais depuis assez longtemps, c'est un système qui, je dois l'avouer, m'a pris du temps, tout ça à cause de ma mauvaise version de RMVX ^^
Je dois tout d'abord remercier certaines personnes qui m'ont aidées tout au long de la création du système:
Gothor (Oui, tu m'as juste filé un code et dit que le script était pas bon, mais sans ça, j'aurais pas trouvé de suite), Sihn (Merci d'avoir pris du temps pour héberger le script, ça m'a bien aidé), à Grazl qui a corrigé les derniers bugs et un très grand merci à Jeb' qui m'a aidé depuis le début.
Voilà, après ces courts remerciements, je vais donc pouvoir commencer le début du tutoriel.
Ce tutoriel servira à vous apprendre à créer une Salle où un héros partira pour s'entraîner sans que vous ayez besoin de faire quelque chose de spécial.
Cette salle peut se référer à une pension Pokémon, ou encore à une salle du temps dans DBZ.
Dans tous les cas, ceci sert à faire gagner des niveaux à un héros lorsque vous l'envoyez dedans, pendant que vous vous baladez tranquillement.
Aller, je débute tout de suite.
Pour créer ce système, vous aurez besoin de:
5 interrupteurs.
6 variables.
1 événement commun.
Mapping rapide conseillé
Créez donc une map qui représentera l'endroit où se trouvera l'évent qui permettra d'envoyer vos héros dans une salle, puis de les récupérer plus tard.
Je vous conseille de faire comme moi, créez une salle, avec, au fond, deux murs qui gènèrent un passage de 1 case de largeur, avec une dame devant pour faire la « réception » et qui bloque le passage.
Par exemple...:
- Spoiler:
Evènements secondaires
Comme vous le voyez, il y aura les évènements des 4 héros.
Bien sûr, vous devrez modifier leur apparence, car j'ai mis ceux de base.
Ces évènements auront pour condition d'existence (colonne de gauche):
Héros numéro 1: Condition interrupteur 1 activé.
Héros numéro 2: Condition interrupteur 2 activé.
Héros numéro 3: Condition interrupteur 3 activé.
Héros numéro 4: Condition interrupteur 4 activé.
C'est tout, le reste se fera dans un autre événement.
Vous aurez remarqué qu'il y a un autre événement en haut à gauche de cette map.
En effet, il vous faudra utiliser une des variables dès à présent, la variable qui permettra de régler la valeur de celle-ci sur l'argent que vous possédez.
Faites donc:
- Spoiler:
Pour ne pas vous embrouiller dans la suite des opérations, utilisez bien la variable numéro 3 ici.
Attaquons nous maintenant au... plus important.
La première partie de l'évènement qui vous permettra d'envoyer un des héros dans la salle, et de le récupérer par la suite.
Voici donc le tout en image, puis ensuite, les explications
- Spoiler:
Envoyer son héros proprement
Nous allons tout d'abord vérifier qu'il y a au moins deux héros dans l'équipe.
Ce pourquoi, lorsque votre second héros arrivera dans l'équipe, régler la variable "Héros" (ou autre nom) sur 2 (Correspondant à 2 héros dans l'équipe).
Si vous démarrez avec plusieurs héros dès le départ,Vous devrez régler cette variable dès le départ.
Ainsi de suite lorsque le 3ème héros arrivera, etc..
Vous pourrez aussi régler le prix par niveau gagné, mais ceci pourra être donné plus tard.
Continuons donc:
Nous vérifions tout d'abord si il y a bien 2 héros ou + dans l'équipe.
Si il n'y a qu'une personne, vous devrez donc glisser un message disant que vous ne pouvez pas laisser un héros dans cette salle (Voir en bas de l'évènement).
Après cette première condition, vous cherchons à vérifier combien exactement y a-t-il de héros dans l'équipe.
La prochaine condition est donc variable [Héros]=2.
Ce qui se trouvera dans cette condition sera donc une action en fonction du nombre de héros, étant 2 ici.
Affichez ensuite un choix: Voulez-vous envoyer votre 1er héros ou votre second ?
Ceci permettra de déterminer qui sera envoyé dans la salle.
Affichez donc un message confirmant votre demande, puis faites déplacer la personne pour aller se ranger dans un coin, permettant le passage du héros.
Faites reculer d'un pas votre héros, permettant l'apparition du personnage à envoyer dans la salle.
Vous devrez ensuite modifier la position du héros à envoyer pour le placer juste devant la dame, à l'endroit où vous étiez il y a quelques secondes.
A ce moment là, activez l'interrupteur en fonction de la personne envoyée dans la salle.
Par exemple, si vous avez choisi Ralf (1er héros), vous devrez activer l'interrupteur 1 pour faire apparaître l'évènement représentant Ralf.
Contrairement à mon screen, vous n'aurez pas besoin de changer l'apparence du héros en celle du deuxième héros, car le logiciel s'en charge automatiquement.
Si vous souhaitez le faire pour ne pas vous embrouiller avec toutes les opérations du système, vous pouvez, cela ne bousillera rien ^^
Faites avancer votre personnage jusqu'à la porte, puis faites revenir la dame (tout en repositionnant le personnage à son endroit de base et en désactivant l'interrupteur le faisant exister.
Enlevez le héros envoyé dans la salle de votre équipe.
C'est à ce moment là que l'évènement commun va commence à jouer.
Pour rendre ce système plus plausible, j'ai créé un mini système assez simple permettant de rendre le temps entre chaque niveau gagné de plus en plus long en fonction du niveau du héros envoyé dans la salle.
En clair, ça ira lorsqu'il sera au niveau 1... Mais je vous déconseille de l'envoyer s'il est au niveau 98 :p
Pour permettre à ce mini-système de fonctionner normalement, réglez la variable 5 [Niveau du héros] sur le Niveau du héros.
Activez ensuite l'interrupteur 5: Event commun permettant d'actionner l'évènement commun.
Activez l'interrupteur A ou B en fonction du personnage envoyé.
A partir de ceci, le héros envoyé dans la salle commencera à gagner des niveaux.
Evènement commun
Avec ces explications, vous pourrez comprendre la suite logique de l'évènement.
N'oubliez pas d'activer le bon interrupteur pour faire apparaître le bon personnage, puis de régler la variable du niveau du héros sur la bonne personne qui est envoyée dans la salle, et d'activer l'interrupteur local A, B, C ou D fonction du héros envoyé.
Regardons plus en détail l'évènement commun:
- Spoiler:
Ici, deux nouvelles variables seront mises en action, la variable 2 (Appelée niveau) et la variable 6 (Appelée Niveau+).
Voici les rôles des ces variable et le fonctionnement de l'évènement commun:
Cet événement commun agit pour faire en sorte que tant que la variable 6 n'a pas atteint la variable 5, le héros ne pourra gagner de niveau.
Vous n'avez rien pigé, hein ?
Héhé, je le savais. Aller je me lance dans une explication plus... claire ^^
Déterminez un temps qui permettra de savoir combien de temps se passera-t-il pour passer du niveau 1 au niveau 2.
Ici, par exemple, j'ai mis 600 frames.
Après ces 600 frames, j'ai effectué l'opération « Variable [006:Niveaux+]+1 ».
La condition présente vérifie si la valeur de la variable 6:Niveau+ est inférieure à la valeur de la variable 5:Niveau du héros.
En clair, tant que cette valeur est inférieure, tous les 600 frames, la variable 6 va augmenter d'1.
Si le héros est au niveau 1, alors on verra que la variable 6=variable5 et donc, par logique, lé héros gagnera un niveau.
Ce qui fous fera effectuer les opérations suivantes:
Variable 2:Niveaux: +1 (Le héros aura gagné un niveau), Variable 5: Niveau du héros: +1 (Rendra plus long le temps entre ce niveau ci et le niveau suivant) et remettre à 0 la variable 6: Niveau+.
Prenons un autre exemple, si le héros est au niveau 50, alors tous les 600 frames, tant que la variable Niveau+ ne sera pas égale à 50, elle augmentera d'1.
Et lorsqu'elle atteindra 50, alors le héros gagnera 1 niveau.
J'espère que vous avez compris, si vous n'avez pas compris, alors foutez le code comme ça, c'est pas grave :p
Nan, si vous avez pas compris, demandez-moi par mp.
Récupérer son héros proprement
On va ensuite s'attaquer aux pages 2, 3, 4 et 5 de l'évènement de la réceptionniste.
Etant donné que chaque page est en fonction du héros envoyé dans la salle, je ne vous montrerai en screen que la page 2, et vous expliquerai la suite logique à respecter pour les pages suivantes.
- Spoiler:
Comme vous pouvez le voir dans le screen, nous allons tout d'abord vérifier si la variable des Niveaux est supérieure ou égale à 1.
Si elle ne l'est pas, affichez un message disant que le héros envoyé dans la salle n'a pas encore gagné de niveau, puis vous devrez désactiver l'interrupteur faisant fonctionner l'évènement commun.
Vous devrez afficher ensuite un choix pour demander si vous souhaitez récupérer ou non votre héros.
Nous verrons ensemble plus tard les actions à faire pour faire revenir votre héros.
Ensuite;
Si la variable est bien supérieure ou égale à 1, alors désactivez l'interrupteur faisant fonctionner l'évènement commun.
Affichez un message disant le nombre de niveaux que le héros a gagné en tapant le code « \V[2] » puis demandez, dans le même message, si le joueur souhaite faire revenir son héros ou non.
Nous allons ensuite effectuer une opération permettant de déterminer quel sera le prix.
Etant donné que chaque niveau coûte 100€, alors nous devrons multiplier la variable des niveaux par 100 pour donner le prix.
Utilisons alors la variable 7:Prix, et rendons la égale à la variable 2:Niveaux.
Puis multipliez la variable 7:Prix par 100 (étant donné que le prix est 100 fois le nombre de niveaux)
Affichez après cette multiplication un message disant:
« C'est \V[7]€ » ou $, ou Gils, ou Pièces, osef ^^ '
Ceci étant fait, nous allons ensuite vérifier si le joueur a assez d'argent pour faire revenir son héros.
Placez donc une condition:
La condition vérifiera si la variable Argent (que nous avons réglé au début de ce tuto) est supérieure ou égale à la variable 7:Prix.
Si la variable est inférieure, affichez donc un message expliquant que le joueur n'a pas assez d'argent.
Faites ensuite déplacer la réceptionniste jusqu'à l'entrée, faites la disparaître, attendez 100 frames, puis faites la réapparaître puis se déplacer dans son coin.
Activez ensuite l'interrupteur en fonction de la personne envoyée dans la salle, puis faites la se déplacer jusque vous.
Bougez la réceptionniste pour qu'elle revienne à sa position de départ.
Faites l'opération Argent – Variable Prix.
C'est ici que cela se compliquera un peu, et surtout là où je me suis bien embrouillé la tête, peut-être pour rien car:
Lorsque le héros revient, il n'a plus sa place de départ dans l'équipe, par exemple, Ralf, qui était premier, sera dernier lorsqu'il reviendra. Ce qui posera problème pour les combats, mais aussi pour l'apparence du héros qui se modifiera pour devenir celle du premier héros actuel, Ulirika par exemple si c'était Ralf qui avait été envoyé.
Bref, je me suis peut-être pris la tête pour rien, car j'ai fait un énorme bazarre que je ne saurais vous expliquer.
Tout ceci permettra à Ralf de redevenir premier du groupe et aux autres de se remettre dans l'ordre.
Ajoutez ensuite les niveaux du héros en fonction de la variable Niveaux.
Remettez cette variable à 0 ainsi que toutes les autres et, peut-être inutilement mais par précaution, remettez le héros en apparence Ralf
Puis désactivez l'interrupteur A.
Si vous dites « Non » lorsque la réceptionniste vous demande si vous souhaitez faire revenir votre héros, réactivez l'interrupteur faisant fonctionner l'évènement commun.
Pour en revenir à nos départs, si le héros n'a pas encore gagné de niveaux mais que vous souhaitez le faire revenir tout de même, alors effectuez exactement les mêmes opérations que s'il avait gagné des niveaux, sans... lui ajouter des niveaux bien sûr x)
Pages suivantes
Vous devrez donc, pour les pages suivantes, modifier le personnage à faire revenir, modifier l'interrupteur qui active un des évènements en fonction du personnage envoyé, activer l'interrupteur A, B, C ou D toujours en fonction de la même chose, puis, très important:
Pour la page 3, lorsque vous faites revenir votre héros et que celui-ci doit se retrouver à la même place qu'avant, faites ceci:
Changer l'équipe: Retirer Ralf
Changer l'équipe: Retirer Penetto
Changer l'équipe: Ajouter Ralf.
Changer l'équipe: Retier Ilfa.
Changer l'équipe: Ajouter Ulurika
Changer l'équipe: Ajouter Penetto
Changer l'équipe: Ajouter Ilfa.
Modifier les niveaux de Ulurika en fonction de la variable Niveaux.
Pour la page 4:
Changer l'équipe: Retirer Ralf
Changer l'équipe: Retirer Ulurika
Changer l'équipe: Ajouter Ralf.
Changer l'équipe: Retirer Ilfa.
Changer l'équipe: Ajouter Ulurika
Changer l'équipe: Ajouter Penetto
Changer l'équipe: Ajouter Ilfa.
Modifier les niveaux de Penetto en fonction de la variable Niveaux.
Pour la page 5:
Changer l'équipe: Retirer Ralf
Changer l'équipe: Retirer Ulurika
Changer l'équipe: Ajouter Ralf.
Changer l'équipe: Retirer Penetto.
Changer l'équipe: Ajouter Ulurika
Changer l'équipe: Ajouter Penetto
Changer l'équipe: Ajouter Ilfa.
Modifier les niveaux de Ulurika en fonction de la variable Niveaux.
Et voilà!
Grâce à tout ceci, vous pourrez donc gérer un système de salle d'entraînement!
Veuillez m'excuser pour les utilisations en désordre des Variables, car vu que c'était une phase test, j'ai mis quelque peu le bordel dans le projet.
Bref...
Enjoy!
Flavii3n
EDIT: Démo disponible ICI.