Bienvenue visiteur !
|
Désactiver la neige
Statistiques
Liste des membres
Contact
Mentions légales
424 connectés actuellement
30912590 visiteurs depuis l'ouverture
2226 visiteurs aujourd'hui
Partenaires
Tous nos partenaires
Devenir partenaire
|
| | Domaine concerné: événement
Logiciel utilisé: RPG Maker VX Ace
Bonjour, Bonsoir,
Voila j'ai fait un événement pour faire pousser une plante. Donc je crée un événement je fais plusieurs page avec chaque étape de la plante (creuser=>planter graine=>arroser=>plante qui pousse=>arroser=>plante qui pousse=>cueillir) bon jusqu'ici c'est basique mais voila que j'ai deux problèmes pour rendre cet événement plus crédible.
Le premier c'est que j'aimerais faire une boucle pour qu'une fois la plante cueillie on revienne à l'étape "planter graine" mais je n'arrive pas à la faire malgré le fait que je mette à la fin de la dernière page l’interrupteur "planter graine" et ce malgré le fait que j'ai encore des graines dans la poche. Donc la question est comment faire?
Le deuxième problème est que je n'arrive pas à faire en sorte que plusieurs jours passe avant la prochaine étape de la plante (genre 2 jours avant que la plante ne passe au Niv.2) et ajouter aussi une condition pour que le joueur soit obliger d'arroser la plante tout les jours sinon elle meurt. Il faut savoir que j'ai crée en événement commun pour que le temps existe dans le jeu (les secondes qui deviennent des minutes qui deviennent des heures qui deviennent des jours,etc.... ). Mais la encore je bûche car j'ai beau mettre une condition avec la variable "jour" est égal 2 pour les chaque étapes, cela ne marche pas.
Donc voila voila, j’espère que j'ai été clair et qu'une âme charitable puisse m'aider car j'ai beau avoir chercher les solutions sur différents forums, je n'arrive pas à trouver quoi ce soit. Merci beaucoup et bonne soirée
|
timtrack -
posté le 25/09/2020 à 20:25:27 (665 messages postés)
| Plop | Est-ce que tu n'as qu'une seule plante ou bien il y a plusieurs événements plantes ?
Tu utilises VX ou VX Ace ?
Si tu utilises VX Ace et plusieurs plantes, je te recommandes d'utiliser l'Event Extender ou RPG maker Extender pour pouvoir gérer des variables locales, sinon ça risque d'être gourmand en variables (k par plantes).
Pour ton premier problème, si y a aucune différence visuelle ou en condition d'interaction, c'est ptet plus simple de synthétiser quelques pages, le modèle suivant considère que tu as 2 niveaux visuels de plante :
Citation: - page1 (page de départ) : creuser active l'interrupteur A
- page2 (page pour planter, nécessite A) : planter une graine active l'interrupteur B
- page3 (lvl1, nécessite B) : arroser active C
- page4 (lvl2, si jour suivant et C) : arroser active D
- page5 (prête à la cueillette, si 2e jour suivant et D) : cueillir désactive B,C,D
- page6 (plante morte, si jour trop tard) : interaction désactive B,C,D pas de gain |
Le problème avec ce modèle est :
-savoir quand on est le "jour suivant", il y a une stratégie à 2 variables, mais c'est pénible et je vais te l'épargner
-on est limité dans la croissance de la plante : 1 page par étapes/image de la plante, nombre d'interrupteurs limités.
Voici une solution plus générale, qui demande 2 interrupteurs locaux 1 interrupteur géré en dehors (peut être local via script), 2 variables (locales si possible) et une gestion visuelle de la progression de la plante.
Tu as 2 événements :
Celui de ta graine et un invisible qui gère la croissance (inutile si ton temps se met à jour sur une map distincte et que ta plante n'a pas d'aspect visuel distinct). Les deux variables locales sont v1 et v2, l'interrupteur est i1. N est le nombre de jours avant maturité.
Event 1 (la plante) :
Citation: - page1 (page de départ) : creuser active l'interrupteur A
- page2 (page pour planter, nécessite A) : planter une graine -> active l'interrupteur B, v1 = aujourd'hui, v2 = 0, i1 = false
- page3 (phase d'arrosage, nécessite B) : si i1 alors arroser -> v1 = aujourd'hui, v2 +=1 et i1 = false/ sinon rien à faire
- page4 (prête à la cueillette, si B et i1 et v2 >= N (environ)) : cueillir désactive B, v1 = 0 et v2 = 0, i1 = false
- page5 (plante morte/oubliée, si B et v2 >= N + 1) : interaction désactive B pas de gain, v1 = 0 et v2 = 0 et i1 = false |
Event 2 (le gestionnaire) :
Citation: page1 (page de départ, processus parallèle) :
pour chaque plante de la carte :
si aujourd'hui - v1 = 1 jour -> i1 = true
sinon si aujourd'hui - v1 >= 2 jours -> v2 = N + 1
si v2 = 1 :
modifier apparence plante 1
sinon si v2 = 2 :
modifier apparence plante 2
...
|
C'est hyper compliqué pour pas grand chose, mais c'est pour supporter le temps dynamique, en temps "statique" c'est plus simple à gérer. Hésite pas si t'as des questions, c'est ptet confus ce que j'ai écrit ahah.
|
Projet actuel |
| | Alors pour l'instant j'avoue que je n'ai qu'une seule plante en événement mais j'aimerais qu'il y ait plusieurs plantes sur une map (avec plusieurs types de plantes).
Je suis sur Vx Ace cependant je ne connais pas Event Extender et Rpg Maker extender. Ceux sont des logiciel ou c'est en plus de RPG maker ?
J'avoue que le deuxième modèle que tu me propose à l'air d’être plus intéressant et plus simple pour les variable jour que celui que je tente de mettre en oeuvre depuis le début x)
je vais essayer de suivre ce modèle et voir si je m'en sort mieux.
En tout cas merci de ta réponse, je pense que j'ai bien compris l'idée ^^ si jamais je m'en sort pas je reviendrais en pleurant xD
Merci encore
|
Aurora -
posté le 26/09/2020 à 12:04:34 (437 messages postés)
| | Je vais peut-être dire une connerie mais si je devais faire ça sur XP, j'insérerais une variables @time dans le game_event et la gérerais avec $game_map.events[@event_id].time
J'utilise ce genre de système dans mes projets, même s'il est conseillé de ne pas toucher aux scripts d'origine, ce n'est pas une petite variable ou deux qui vont changer grand chose...
Ce ne serait pas plus facile?
Je suis presque certain que c'est faisable sur vx, et ce genre d'event pourrait tenir sur une page au lieu des x pages avec conditions.
Il faudrait juste créer d'autre variables dans le game_event, afin de tester si par exemple une graine est plantée, etc..
Je peux tenter de te faire une démo mais ce sera sur RM XP si tu le souhaites et même t'inclure une gestion à la souris.
Mais sache que peut importe la version, xp, vx, ace, si ton champ (de blé par exemple) est trop grand, ça pourrait ralentir le jeu car ce seraient des événement en processus parallèle..
|
| | Alors je ne mis connais pas trop dans les changements du système donc je pourrais pas confirmer mais si tu dis qu'il est possible de faire ça, je veux bien que tu fasse une démo ^^ car en effet je compte faire plusieurs plantes et j'avais peur que ça lague avec tout les évènements sur une map.
En tout cas merci pour ton aide
|
Aurora -
posté le 28/09/2020 à 04:40:22 (437 messages postés)
| | Je t'ai envoyé un message privé.
Au moment ou j'écris ceci, j'ai terminé le gestion du semis et récolte. Tout ça sur une seule page
Il y a juste une page A activée en plus pour remettre tout à 0 et temporiser après la récolte car j'utilise Press pour la touche afin de pouvoir laisser le bouton appuyé et juste passé sur les tiles, sans la temporisation ça resème directement. Trigger au lieu de Press impliquerait de cliquer sur chaque event et ce serait chiant!
Il y a 3 niveaux graphique de pousse, celle du début, une intermédiaire et la finale quand tu peux récolter.
Quand tu as récolté, tu peux de nouveau ressemer le morceau de terrain (tile)
J'ai testé la fonction de sauvegarde et ça sauvegarde bien les étapes de chaque pousse.
J'ai créé plusieurs variables internes dans le game_event pour gérer tout ça.
Au début de l'event tu peux définir le temps de pousse nécessaire pour qu'elle arrive à maturité.
Chaque event est évidemment indépendant.
La gestion de tout ça se fait à la souris, mais le reste (menu, écran titre, etc) se gère toujours normalement au clavier.
Seul souci, les events sont en processus parallèle et donc plus il y en aura sur la map, plus tu perdras de fps. Tu devras donc te limiter à environs entre 30 et 40 pousses par map.
Je vais tenter d'intégrer une fonction qui se basera sur l'horloge du pc pour gérer le temps réel en jeu, en gros, si tu sèmes le matin et que tu quitte le jeu et y reviens le soir, tout aura poussé.
C'est faisable mais ça demande un peu plus de réflexion et de travail.
Si la fonction de semer ne t'intéresse pas, je pourrai adapter pour que ça pousse tout seul dès que c'est récolté, comme dans Dofus.
Et éventuellement rendre ça jouable avec les touches au lieu de la souris, mais ce sera bien plus long pour semer / récolter.
@EDIT : en relisant ta demande je vois que tu veux inclure creuser et l'arrosage et d'autre chose, rien de bien compliqué, je vais l'ajouter.
|
timtrack -
posté le 28/09/2020 à 11:13:20 (665 messages postés)
| Plop | Aurora : Je veux bien que tu me l'envoie aussi si possible (ou que tu fasses partager à plus de gens ?), je suis curieux de voir comment c'est fait.
|
Projet actuel |
Aurora -
posté le 28/09/2020 à 14:40:48 (437 messages postés)
| | Voilà ce que ça donne de base :
Spoiler (cliquez pour afficher)
|
Ephy -
posté le 28/09/2020 à 15:20:05 (30119 messages postés)
- | [BIG SHOT] | C'est stylé Aurora. Tu devrais partager ça (un tuto? un script? ou un truc tout fait que les gens peuvent utiliser comme base pour un jeu?).
|
Power Level: 1 148 355,38|Mystic Slayer (Value!+)|Le monde d'Adélaïde|Reikon no Yume|★ H-Project|Toho Danmaku Arena|Loli versus Ponies|Mes vidéos|Ma galerie|Débuter sur VX:10, 11|Tuto: Importation de ressources|Mapper avec les RTP VX|Touhou|Fan de Omenides|Fan de Estheone|Eph'ille: 14 |
Aurora -
posté le 28/09/2020 à 15:31:50 (437 messages postés)
| | C'est prévu mais je vais essayer de faire en sorte que ce soit simple à placer dans un projet, j'ai d'ailleurs recréé un Game_event pour ne pas toucher à l'original, il suffira de copier les events d'un projet à l'autre pour les utiliser.
Et si ça se passe bien j'essayerai d'inclure une window pour afficher les ressources récoltées ou autres, comme les semi, etc.
Là je viens d'inclure le changement d’icône de la souris pour afficher des icônes différentes selon l'action.
J'utilise l'input ultimate de Zeus81 pour la gestion de souris mais je pense que ça doit facilement être faisable avec un curseur dirigé par les flèches directionnelles pour ne pas obliger le créateur à utiliser la souris.
Je vais juste faire ce que l'auteur demande parce ce que c'est la base de la demande et je verrai ensuite pour proposer plus de choses sur un plus grand projet.
Ça sera surement perfectible et celui qui voudra l'améliorer sera le bienvenu.
|
Index du forum > Entraide > [RESOLU] [RPG Maker VX ] Aide événement Jardin
|
|
|