Partagez
Aller en bas
avatar
Elemsis
Membre

Nombre de messages : 426
Age : 27
Localisation : Pyrénées-Orientales
Distinction : aucune
Date d'inscription : 05/01/2009
http://elemsischronicles.blogspot.fr/

RPG Maker MV Système Craft / Calendrier

le Mar 25 Juil 2017 - 14:09
Recoucou tout le monde!

Voici un nouveau tuto d'eventing, qui vous permettra de créer un système de craft couplé à un calendrier (jours qui passent, périodes dans la journée, et gestion des dates).

SYSTEME CRAFT / CALENDRIER


Plateforme concernée : RMMV

Objectif : permettre de créer un système de craft avec une gestion simple des temps de respawn, le tout couplé à des features comme le calendrier affichable et le passage du temps dans la journée.

Description du tutoriel : Nous aurons besoin de plusieurs choses:
- 5 interrupteurs
- 10 variables
- 7 événement commun
- 1 événement de lit/auberge (à copier à chaque endroit nécessaire durant le développement du jeu)
- 1 événement de craft (à copier adapter aussi, celui-ci n'est qu'une base)
- 1 événement en début de jeu

Déroulement :

I. Préparation du terrain

Les explications viendront après. Pour le moment, préparez ce dont nous aurons besoin, ça facilitera les choses.

*5 interrupteurs


*10 variables


*Ajoutez ces 2 plugins à votre projet, ils sont absolument nécessaires:
Wait Options, de SRD.
Self Switches & Variables, de Yanfly.

II. Les événements communs

Maintenant, passons aux choses sérieuses.
Le plus gros du système se passe dans les évènements communs.
Il y en aura 7, alors accrochez vous.

Evènement commun 1 : Le calendrier
Spoiler:
Qu'est-ce que ça veut dire ? Il s'agit là de l’événement sur lequel vous allez pouvoir paramétrer votre calendrier. Les lignes contrôlant une variable se terminant par "TEXTE" sont les éléments paramétrables. Il suffit de modifier la variable, en utilisant la dernière ligne (script), et d'y écrire "votre texte". En n'oubliant pas les guillemets, sinon, ça ne fonctionnera pas. Ici, l'événement permet un mois de 7 jours, une année de 12 mois, et un système d'années en rotation (du style chinois) avec 10 noms d'années différents.
Screen de l'affichage en appelant cet évènement commun:
Spoiler:

> Premier jour de la semaine, du premier mois de l'année, de la première année du jeu.

Evènement commun 2: Passage du temps
Spoiler:
Qu'est-ce que ça veut dire ?
Cet événement gère à la fois deux choses. La variable "JOUR", qui est chiffrée, et gère dans la suite du tuto le temps de respawn des crafts. Les autres jeux de variables mettent à jour le calendrier.

Evènement commun 3: L'Aube (+1 jour)
Spoiler:
Qu'est-ce que ça veut dire ? Cet événement permet de démarrer une nouvelle journée automatiquement, dans le cas où l'on aurait laissé le temps défiler (donc, pas quand on décide d'aller dormir à l'auberge par exemple).

Evènement commun 4: L'Aube
Spoiler:
Qu'est-ce que ça veut dire ? Comme son frère du dessus, il permet de gérer l'aube d'une nouvelle journée, mais cette fois-ci, après un gros dodo du joueur. Cette fois-ci donc,  il ne prend pas en charge la mise à jour du calendrier car l'événement de lit ou d'auberge (qui est décrit plus loin dans ce tuto) s'en occupe déjà.

Evènement commun 5: Journée
Spoiler:
Qu'est-ce que ça veut dire ? Simple passage au "plein jour". Interrupteur, ton d'écran, tout ça.

Evènement commun 6: Crépuscule
Spoiler:
Qu'est-ce que ça veut dire ? Rien à ajouter, c'est comme au dessus.

Evènement commun 7: Nuit
Spoiler:
Qu'est-ce que ça veut dire ? Rien à ajouter, c'est comme au dessus.


A noter, les événements concernant l'aube, la journée, le crépuscule et la nuit sont gérés par des interrupteurs.
Cela vous permet donc de créer des événements en lien avec l'une de ces périodes, comme des magasins clandestins qui n'ouvrent que la nuit par exemple.
Le temps de chaque période est aussi paramétrable, il suffit de modifier la ligne qui indique "Wait X minutes".
Petit détail important aussi, avec le système tel que programmé  ici, le décompte de la nouvelle journée, pour le craft et pour le calendrier, ne se déroule pas à minuit, mais au passage à l'aube.

III. Les événements sur map

*Le lit ou auberge
Spoiler:
Ça dit quoi? Cet évènement donne deux choix. Le repos court, qui fera récupérer vos personnages sans influer sur le temps. Ou le bon gros dodo, qui va faire passer la journée en cours, vous amener à l'aube suivante, et gérer le calendrier.

*L'exemple de craft

Nous utilisons ici deux variables locales, grâce au plugin de Yanfly linké en début de tuto.
Pourquoi? Parce qu'en combinant les possibilités offertes par les variables locales et les interrupteurs locaux, nous pouvons gérer l'intégralité des crafts du jeu, sans limite de nombre, avec seulement 2 variables et aucun interrupteur. Plutôt pratique.

-Page 1-
Spoiler:
Ça dit quoi? Voici donc un exemple de craft, avec un rocher à miner. La variable locale mise à jour enregistre le jour actuel. Cela servira ensuite à l’événement pour auto calculer son temps de respawn.

-Page 2-
Spoiler:
Ça dit quoi? Cette page est un processus parallèle. Ici, on fait plusieurs choses. Déjà, on fait en sorte que la variable locale utilisée se réinitialise si elle est égale à 9999, tout comme la variable JOUR le fait de son côté dans les évènements communs. Pourquoi? Pour ne jamais être bloqué par une limite de valeur de variable. Ensuite, la seconde variable locale est soumise à des calculs, pour déterminer combien de temps s'est passé depuis le craft. Ici, on laisse respawn le rocher si la variable locale en question obitent une valeur inférieure ou égale à -3. Cela veut dire que ce rocher a un temps de respawn de 3 jours (c'est connu, les cailloux repoussent, et en 3 jours, no comment...  bounce )

-Page 3-
Spoiler:
Ça dit quoi? C'est simplement la suite du processus de respawn. Cette page réactive l'apparition du rocher en désactivant les interrupteurs locaux, mais en prenant soin aussi de réinitialiser la seconde variable locale sur une valeur nulle, pour que ça marche correctement au prochain craft.

*Pour finir


Notre système est fin prêt. Cependant, pour que ça fonctionne, il vous faudre faire une dernière chose.
Un événement en Exécution Automatique, à activer une seule fois au tout début du jeu, pour initialiser les valeur de départ.
Spoiler:

> Cela va de soit, les variables en lien avec le calendrier peuvent démarrer sur la valeur que vous désirez, on n'est pas obligé de démarrer le premier jour de la semaine ni le premier mois.
-----------------------------

Note de l'auteur: Le code event de tout ça est peut-être encore optimisable. Pour le moment, il est déjà tout à fait fonctionnel, cependant, si vous notez une amélioration possible (qui fonctionne après test tout de même), alors bravo, et n'hésitez pas à le signaler!
avatar
Yamashi
Administrateur

Nombre de messages : 2955
Age : 23
Localisation : Alentours de Nancy
Distinction : Éternel Floodeur [Gel']
666 (SPY)
+2500pts pour sa folie des 1000 messages [Gel']
Génie intergalactique... ou pas [Gel']
Voix suave number one [Amal']
Collectionneur de distinctions (mais moins que Gel) [Yama]
Ouiche lorraine [Zeal']
L'homme aux casquettes [Mist']
Date d'inscription : 20/09/2014
http://www.rpgmakervx-fr.com/

RPG Maker MV Re: Système Craft / Calendrier

le Mar 25 Juil 2017 - 15:54
Très sympa comme tuto.
Je n'aurais pas fais comme ça, mais je trouve toujours ça très agréable de voir comment font les autres Smile .
avatar
Elemsis
Membre

Nombre de messages : 426
Age : 27
Localisation : Pyrénées-Orientales
Distinction : aucune
Date d'inscription : 05/01/2009
http://elemsischronicles.blogspot.fr/

RPG Maker MV Re: Système Craft / Calendrier

le Mer 26 Juil 2017 - 1:42
C'était pas ma première idée de faire comme ça non plus, mais les autres solutions que j'ai trouvées tournaient mal à un moment donné. Ça avait l'air fonctionnel et puis je découvrais un "cas" où pan ça merdait. Cette manière est la seule que j'ai actuellement trouvé pour que ça fonctionne bien. Ce qui ne signifie pas que c'est la seule, évidemment. =)
Contenu sponsorisé

RPG Maker MV Re: Système Craft / Calendrier

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum