- ganondorf701Membre
- Nombre de messages : 3
Distinction : aucune
Date d'inscription : 22/08/2012
[PLUGIN] gestion cycle jour/nuit + horloge interne
Sam 25 Avr 2020 - 15:37
Hello tout le monde.
Je viens à vous pour partager une modification de script que j'ai faite.
A l'origine je cherchais un moyen de gérer le temps dans un jeu sous MV sans coder cela dans des évènements.
Je suis alors tomber sur le script de Gummy adapté par Palbolsky (et Sphinx il me semble) pour rpg Maker MV.
Cela me plaisais bien mais ne faisait pas ce que je voulais (oui je suis chiant je sais.. )
Question : Qu'est ce que tu voulais de plus ?
Réponse : Savoir quelle heure il est et quel jour ou est dans mon jeu
Le tout en créant éventuellement un univers derrière (les jours ne sont pas obligé de s'appeler Lundi, Mardi, etc...)
Question : C'est cool mais tu n'a rien trouvé sur internet en faisant ta recherche en anglais plutôt ?
Réponse : Oui mais non car j'avais envie de mettre les mains dans le cambouis et de trifouillé les entrailles de MV
Voilà, voilà.
Donc ce plugin que fait-il ?
Il vous permet de définir des tons d'affichage lors des différentes transitions (aube vers jour, etc...)
Il vous permet également de ne pas bénéficier de ces effets dans une carte intérieure en y ajoutant une note.
Définir quand débute chaque période (aube, jour, etc...)
Question : Euh... en gros tu es en train de dire que tu déposes le script de Gummy et Palbolsky ?
Réponse : J'ai effectivement repris une partie du code de ce script pour apprendre et également car je le trouve très bien. J'ai ensuite rajouter des fonctionnalités pour qu'il réponde a ce que j'en attends.
Vous pouvez donc également configurer
Le nombre de jours qu'il y a dans une semaine
Le nom de ces jours
La durée d'une journée en minutes réelles (24h de jeu = 1min en réel, 2 minutes etc)
Le nombre d'heures dans une journée (24, 26 ,32 , 12 suivant votre univers)
Le nombre de minutes dans une heure (60, 70, toujours suivant votre univers)
Récupérer ces valeurs dans des variables afin de les afficher, retravailler dans l'éditeur.
Le script va ensuite calculer ce qu'il faut afin que votre journée de jeu s'écoule dans le temps que vous avez indiqué.
Il s'occupera également de faire les effets de teinte d'écran pour simuler l'aube, le jour, le crépuscule et la nuit.
Il s'occupera également de faire les transitions lorsque vous rentrerez dans une maison.
Et il s'occupera également de gérer les variables que vous souhaitez implémenter.
Une image des paramètres (peut être plus parlante)
Pour l'installer il vous suffit d'enregistrer un fichier G701_TimeManagement_System.js dans le dossier js/plugins de votre jeu
Et voici le code
Si vous notez des bugs et autres je suis preneur
Si cela ne sert a personne et bien... tant pis sinon tant mieux
Je viens à vous pour partager une modification de script que j'ai faite.
A l'origine je cherchais un moyen de gérer le temps dans un jeu sous MV sans coder cela dans des évènements.
Je suis alors tomber sur le script de Gummy adapté par Palbolsky (et Sphinx il me semble) pour rpg Maker MV.
Cela me plaisais bien mais ne faisait pas ce que je voulais (oui je suis chiant je sais.. )
Question : Qu'est ce que tu voulais de plus ?
Réponse : Savoir quelle heure il est et quel jour ou est dans mon jeu
Le tout en créant éventuellement un univers derrière (les jours ne sont pas obligé de s'appeler Lundi, Mardi, etc...)
Question : C'est cool mais tu n'a rien trouvé sur internet en faisant ta recherche en anglais plutôt ?
Réponse : Oui mais non car j'avais envie de mettre les mains dans le cambouis et de trifouillé les entrailles de MV
Voilà, voilà.
Donc ce plugin que fait-il ?
Il vous permet de définir des tons d'affichage lors des différentes transitions (aube vers jour, etc...)
Il vous permet également de ne pas bénéficier de ces effets dans une carte intérieure en y ajoutant une note.
Définir quand débute chaque période (aube, jour, etc...)
Question : Euh... en gros tu es en train de dire que tu déposes le script de Gummy et Palbolsky ?
Réponse : J'ai effectivement repris une partie du code de ce script pour apprendre et également car je le trouve très bien. J'ai ensuite rajouter des fonctionnalités pour qu'il réponde a ce que j'en attends.
Vous pouvez donc également configurer
Le nombre de jours qu'il y a dans une semaine
Le nom de ces jours
La durée d'une journée en minutes réelles (24h de jeu = 1min en réel, 2 minutes etc)
Le nombre d'heures dans une journée (24, 26 ,32 , 12 suivant votre univers)
Le nombre de minutes dans une heure (60, 70, toujours suivant votre univers)
Récupérer ces valeurs dans des variables afin de les afficher, retravailler dans l'éditeur.
Le script va ensuite calculer ce qu'il faut afin que votre journée de jeu s'écoule dans le temps que vous avez indiqué.
Il s'occupera également de faire les effets de teinte d'écran pour simuler l'aube, le jour, le crépuscule et la nuit.
Il s'occupera également de faire les transitions lorsque vous rentrerez dans une maison.
Et il s'occupera également de gérer les variables que vous souhaitez implémenter.
Une image des paramètres (peut être plus parlante)
Pour l'installer il vous suffit d'enregistrer un fichier G701_TimeManagement_System.js dans le dossier js/plugins de votre jeu
Et voici le code
- Code:
//=============================================================================
// G701_TimeManagement_System.js
//=============================================================================
/*:
* @plugindesc gestion du temps et transition jour/nuit
* @author ganondorf701 & Palbolsky & Gummy
*
* par Gummy - rpgmakervx-fr.com - v 1.0 - 01/2012
* Grand merci à Cidiomar et Mist' pour leur aide.
*
* par Palbolsky - adaptation en plugin - v 1.0 - 13/03/2016
* Grand merci à Sphinx pour son aide.
*
* par ganondorf701 - rajout de la gestion des heures et des jours
* @param Activer la gestion des minutes
* @desc Permet d'activer ou non la gestion des minutes dans le jeu false = désactiver, true = activer
* @default true
*
* @param Activer la gestion des heures
* @desc Permet d'activer ou non une horloge interne au jeu false = désactiver, true = activer
* @default true
*
* @param Activer la gestion des jours
* @desc Permet d'activer ou non la gestion des jours dans le jeu false = désactiver, true = activer
* @default true
*
* @param Démarrer le jour
* @desc Permet de démarrer l'horloge le jour ou la nuit false = la nuit, true = le jour
* @default true
*
* @param Durée d'une journée en minutes
* @desc détermine la durée d'une journée dans le jeu en minutes (minimum 1)
* @default 6
*
* @param Nb minutes dans une heure
* @desc détermine le nombre d'heure en chaque jour
* @default 60
*
* @param Nb heures dans une journée
* @desc détermine le nombre d'heure en chaque jour
* @default 24
*
* @param Nb jours dans la semaine
* @desc détermine le nombre de jour dans une semaine
* @default 7
*
* @param ID variable minutes
* @desc détermine la variable sur laquelle on incrémente les minutes
* @default 1
*
* @param ID variable heures
* @desc détermine la variable sur laquelle on incrémente les heures
* @default 2
*
* @param ID variable jours
* @desc détermine la variable sur laquelle on incrémente les jours
* @default 3
*
* @param ID variable jour de la semaine
* @desc détermine la variable sur laquelle on détermine le jour de la semaine
* @default 4
*
* @param Liste des jours de la semaine
* @desc détermine le nom des jours de la semaine. Minimum 1 caractère par jour
* @default Dimanche, Lundi, Mardi, Mercredi, Jeudi, Vendredi, Samedi
*
* @param Heure début aube
* @desc détermine l'heure a laquelle l'aube débute
* @default 6
*
* @param Heure début jour
* @desc détermine l'heure a laquelle le jour débute
* @default 8
*
* @param Heure début crépuscule
* @desc détermine l'heure a laquelle le jour décroit (crépuscule)
* @default 19
*
* @param Heure début nuit
* @desc détermine l'heure a laquelle la nuit tombe
* @default 21
*
* @param Ton de l'écran lors de l'aube
* @desc Ordre des couleurs : Rouge, Vert, Bleu, Saturation
* @default 0, -34, 22, 0
*
* @param Ton de l'écran lors du jour
* @desc Ordre des couleurs : Rouge, Vert, Bleu, Saturation
* @default 0, 0, 0, 0
*
* @param Ton de l'écran lors du crépuscule
* @desc Ordre des couleurs : Rouge, Vert, Bleu, Saturation
* @default 68, -34, -34, 0
*
* @param Ton de l'écran lors de la nuit
* @desc Ordre des couleurs : Rouge, Vert, Bleu, Saturation
* @default -68, -68, 0, -68
*
* @help
* //==========================================================================
* // Plugin : G701_TimeManagement_System
* // Date : 22 Avril 2020
* // Auteur : ganondorf701
* // Plugin original : Day&Night_System
* // Date : 13 mars 2016
* // Auteur : Palbolsky & Gummy
* //==========================================================================
* Ce script vous permet de gèrer une horloge interne au jeu suivant vos besoins.
* Tout est paramétrable ou presque.
*
* Il permet également de gèrer les transistions jour/nuit aube etc aux heures
* que vous voulez.
* Pour ne pas afficher les tons de couleur dans des espaces intérieurs ou autre,
* il suffit de mettre <in> dans la remarque des propriétés de la map.
*/
function Time_Manager_plus() {}
// Ensemble des paramètres
Time_Manager_plus.Parameters = PluginManager.parameters("G701_TimeManagement_System");
//activation de la gestion des minutes
Time_Manager_plus.TimeManagementMinutes = Time_Manager_plus.Parameters["Activer la gestion des minutes"] === "true";
//activation de la gestion des heures
Time_Manager_plus.TimeManagementHours = Time_Manager_plus.Parameters["Activer la gestion des heures"] === "true";
//activation de la gestion des jours
Time_Manager_plus.TimeManagementDays = Time_Manager_plus.Parameters["Activer la gestion des jours"] === "true";
//démarrage du chronomètre le jour ou la nuit
Time_Manager_plus.StartAtDay = Time_Manager_plus.Parameters["Démarrer le jour"] === "true";
//Détermine la durée d'une journée complète dans le jeu en minutes.
Time_Manager_plus.Total_Day_Length = parseInt(Time_Manager_plus.Parameters["Durée d'une journée en minutes"], 10) || 6;
if(Time_Manager_plus.Total_Day_Length < 1)
Time_Manager_plus.Total_Day_Length = 6;
//Détermine la valeur du nb de minutes dans une heure
Time_Manager_plus.MinustesInHour = parseInt(Time_Manager_plus.Parameters["Nb minutes dans une heure"], 10) || 60;
if(Time_Manager_plus.MinustesInHour < 0)
Time_Manager_plus.MinustesInHour = 60;
//Détermine la valeur du nb d'heures dans une journée
Time_Manager_plus.HoursInDay = parseInt(Time_Manager_plus.Parameters["Nb heures dans une journée"], 10) || 24;
if(Time_Manager_plus.HoursInDay < 0)
Time_Manager_plus.HoursInDay = 24;
//Détermine la valeur du nb de jours dans une semaine
Time_Manager_plus.DaysInWeek = parseInt(Time_Manager_plus.Parameters["Nb jours dans la semaine"], 10) || 7;
if(Time_Manager_plus.DaysInWeek < 0)
Time_Manager_plus.DaysInWeek = 7;
//Détermine le temps qu'une minute va mettre a s'écouler en secondes
Time_Manager_plus.Minutes_Length = parseInt((((Time_Manager_plus.HoursInDay * Time_Manager_plus.MinustesInHour * window.FPSMeter.defaults.maxFps) / ((Time_Manager_plus.Total_Day_Length * window.FPSMeter.defaults.maxFps) * Time_Manager_plus.MinustesInHour)) ), 10);
//Détermine le temps qu'une heure va mettre a s'écouler en secondes
Time_Manager_plus.Hours_Length = parseInt((Time_Manager_plus.Minutes_Length * Time_Manager_plus.MinustesInHour), 10) || 240;
//Détermine le temps qu'une journée va mettre a s'écouler en secondes
Time_Manager_plus.Day_Length = parseInt((Time_Manager_plus.Hours_Length * Time_Manager_plus.HoursInDay), 10) || 5760;
//Détermine la variable sur laquelle modifier les minutes.
Time_Manager_plus.Var_Minutes_ID = parseInt(Time_Manager_plus.Parameters["ID variable minutes"], 10) || 1;
//Détermine la variable sur laquelle modifier les heures.
Time_Manager_plus.Var_Hours_ID = parseInt(Time_Manager_plus.Parameters["ID variable heures"], 10) || 2;
//Détermine la variable sur laquelle modifier les jours.
Time_Manager_plus.Var_Days_ID = parseInt(Time_Manager_plus.Parameters["ID variable jours"], 10) || 3;
//Détermine la variable sur laquelle modifier le jour de la semaine.
Time_Manager_plus.Var_DayOfWeek_ID = parseInt(Time_Manager_plus.Parameters["ID variable jour de la semaine"], 10) || 4;
//Détermine la valeur par défaut de la liste des jours de la semaine
Time_Manager_plus.List_DayOfWeek_Default = ["Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"];
Time_Manager_plus.List_DayOfWeek = Time_Manager_plus.Parameters["Liste des jours de la semaine"] || Time_Manager_plus.List_DayOfWeek_Default;
/*
var _Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand;
Game_Interpreter.prototype.pluginCommand = function(command, args) {
_Game_Interpreter_pluginCommand.call(this, command, args);
if(command == "testPandaScriptTest") {
console.log("Je suis dans le if de la commande du tM plugin");
$gameVariables.setValue(16, 72);
$gameVariables.setValue(17, 26);
$gameVariables.setValue(18, 9);
}
};
*/
if (Time_Manager_plus.List_DayOfWeek instanceof Array) {
var value;
for(var i = 0 ; i < Time_Manager_plus.DaysInWeek ; i++) {
value = String(Time_Manager_plus.List_DayOfWeek[i]);
if (typeof value === String
&& value.length > 1) {
Time_Manager_plus.List_DayOfWeek [i] = value;
}
else {
Time_Manager_plus.List_DayOfWeek = Time_Manager_plus.List_DayOfWeek_Default;
break;
}
}
}
else
Time_Manager_plus.List_DayOfWeek = Time_Manager_plus.List_DayOfWeek_Default;
//détermine la valeur de début de l'aube
Time_Manager_plus.DawnHour = parseInt(Time_Manager_plus.Parameters["Heure début aube"], 10) || 6;
if(Time_Manager_plus.DawnHour <0
|| Time_Manager_plus.DawnHour > Time_Manager_plus.HoursInDay)
Time_Manager_plus.DawnHour = 6;
//détermine la valeur de début du jour
Time_Manager_plus.DayHour = parseInt(Time_Manager_plus.Parameters["Heure début jour"], 10) || 8;
if(Time_Manager_plus.DayHour < Time_Manager_plus.DawnHour
|| Time_Manager_plus.DayHour <0
|| Time_Manager_plus.DayHour > Time_Manager_plus.HoursInDay)
Time_Manager_plus.DayHour = Time_Manager_plus.DawnHour + 2;
//détermine la valeur de début du crépuscule
Time_Manager_plus.TwilightHour = parseInt(Time_Manager_plus.Parameters["Heure début crépuscule"], 10) || 19;
if(Time_Manager_plus.TwilightHour < Time_Manager_plus.DayHour
|| Time_Manager_plus.TwilightHour <0
|| Time_Manager_plus.TwilightHour > Time_Manager_plus.HoursInDay)
Time_Manager_plus.TwilightHour = Time_Manager_plus.DayHour + 11;
//détermine la valeur de début de la nuit
Time_Manager_plus.NightHour = parseInt(Time_Manager_plus.Parameters["Heure début nuit"], 10) || 21;
if(Time_Manager_plus.NightHour < Time_Manager_plus.TwilightHour
|| Time_Manager_plus.NightHour <0
|| Time_Manager_plus.NightHour > Time_Manager_plus.HoursInDay)
Time_Manager_plus.NightHour = Time_Manager_plus.TwilightHour + 2;
// Ton de l'écran lors de l'aube (Rouge,Vert,Bleu,Saturation)
Time_Manager_plus.Dawn_Tone_Default = [0, -34, 22, 0];
Time_Manager_plus.Dawn_Tone = Time_Manager_plus.Parameters["Ton de l'écran lors de l'aube"];
if (Time_Manager_plus.Dawn_Tone instanceof Array) {
if (Time_Manager_plus.Dawn_Tone.length === 4) {
var value;
for(var i = 0 ; i < 4 ; i++) {
value = parseInt(Time_Manager_plus.Dawn_Tone[i], 10);
if (isNaN(value)) {
Time_Manager_plus.Dawn_Tone = Time_Manager_plus.Dawn_Tone_Default;
break;
}
Time_Manager_plus.Dawn_Tone[i] = value;
}
}
else
Time_Manager_plus.Dawn_Tone = Time_Manager_plus.Dawn_Tone_Default;
}
else
Time_Manager_plus.Dawn_Tone = Time_Manager_plus.Dawn_Tone_Default;
// Ton de l'écran lors du jour (Rouge,Vert,Bleu,Saturation)
Time_Manager_plus.Day_Tone_Default = [0, 0, 0, 0];
Time_Manager_plus.Day_Tone = Time_Manager_plus.Parameters["Ton de l'écran lors du jour"];
if (Time_Manager_plus.Day_Tone instanceof Array) {
if (Time_Manager_plus.Day_Tone.length === 4) {
var value;
for(var i = 0 ; i < 4 ; i++) {
value = parseInt(Time_Manager_plus.Day_Tone[i], 10);
if (isNaN(value)) {
Time_Manager_plus.Day_Tone = Time_Manager_plus.Day_Tone_Default;
break;
}
Time_Manager_plus.Day_Tone[i] = value;
}
}
else
Time_Manager_plus.Day_Tone = Time_Manager_plus.Day_Tone_Default;
}
else
Time_Manager_plus.Day_Tone = Time_Manager_plus.Day_Tone_Default;
// Ton de l'écran lors du crépuscule (Rouge,Vert,Bleu,Saturation)
Time_Manager_plus.Twilight_Tone_Default = [68, -34, -34, 0];
Time_Manager_plus.Twilight_Tone = Time_Manager_plus.Parameters["Ton de l'écran lors du crépuscule"];
if (Time_Manager_plus.Twilight_Tone instanceof Array) {
if (Time_Manager_plus.Twilight_Tone.length === 4) {
var value;
for(var i = 0 ; i < 4 ; i++) {
value = parseInt(Time_Manager_plus.Twilight_Tone[i], 10);
if (isNaN(value)) {
Time_Manager_plus.Twilight_Tone = Time_Manager_plus.Twilight_Tone_Default;
break;
}
Time_Manager_plus.Twilight_Tone[i] = value;
}
}
else
Time_Manager_plus.Twilight_Tone = Time_Manager_plus.Twilight_Tone_Default;
}
else
Time_Manager_plus.Twilight_Tone = Time_Manager_plus.Twilight_Tone_Default;
// Ton de l'écran lors de la nuit (Rouge,Vert,Bleu,Saturation)
Time_Manager_plus.Night_Tone_Default = [-68, -68, 0, -68];
Time_Manager_plus.Night_Tone = Time_Manager_plus.Parameters["Ton de l'écran lors de la nuit"];
if (Time_Manager_plus.Night_Tone instanceof Array) {
if (Time_Manager_plus.Night_Tone.length === 4) {
var value;
for(var i = 0 ; i < 4 ; i++) {
value = parseInt(Time_Manager_plus.Night_Tone[i], 10);
if (isNaN(value)) {
Time_Manager_plus.Night_Tone = Time_Manager_plus.Night_Tone_Default;
break;
}
Time_Manager_plus.Night_Tone[i] = value;
}
}
else
Time_Manager_plus.Night_Tone = Time_Manager_plus.Night_Tone_Default;
}
else
Time_Manager_plus.Night_Tone = Time_Manager_plus.Night_Tone_Default;
function Minutes_Timer() {
this.initialize.apply(this, arguments);
}
Minutes_Timer.prototype.initialize = function() {
this._minutes_count = 1;
this._minutes = 0;
if(Time_Manager_plus.StartAtDay){
this._hours = Time_Manager_plus.DayHour;
this._toPeriod = 1;
}
else {
this._hours = Time_Manager_plus.NightHour;
this._toPeriod = 3;
}
this._day = 0;
this._week = 1;
this.start();
};
Minutes_Timer.prototype.start = function() {
/* console.log("je suis dans le start.\n Var min id = "+Time_Manager_plus.Var_Minutes_ID);
console.log("Tableau des jours : "+Time_Manager_plus.List_DayOfWeek);
console.log("Valeur d'une sec irl en min : "+Time_Manager_plus.Minutes_Length);
console.log("Valeur de fpsmeter : "+window.FPSMeter.defaults.maxFps);
console.log("heure de début : "+this._hours);
console.log("jour de début : "+this._day+" nom du jour : "+Time_Manager_plus.List_DayOfWeek[this._day]);
console.log("minute count début : "+this._minutes_count);
console.log("to period = : "+this._toPeriod);
console.log("heure de l'aube = : "+Time_Manager_plus.DawnHour);
console.log("heure de jour = : "+Time_Manager_plus.DayHour);
console.log("heure crépuscule = : "+Time_Manager_plus.TwilightHour);
console.log("heure nuit = : "+Time_Manager_plus.NightHour);*/
if(Time_Manager_plus.TimeManagementMinutes)
$gameVariables.setValue(Time_Manager_plus.Var_Minutes_ID, this._minutes);
if(Time_Manager_plus.TimeManagementHours)
$gameVariables.setValue(Time_Manager_plus.Var_Hours_ID, this._hours);
if(Time_Manager_plus.TimeManagementDays) {
$gameVariables.setValue(Time_Manager_plus.Var_Day_ID, this._day);
$gameVariables.setValue(Time_Manager_plus.Var_DayOfWeek_ID, Time_Manager_plus.List_DayOfWeek[this._day]);
}
this.setup_screen_tone();
};
Minutes_Timer.prototype.setup_screen_tone = function () {
this._IwasIn = false;
if ($dataMap.meta.in) {
$gameScreen.startTint(Time_Manager_plus.Day_Tone, 1);
this._IwasIn = true;
}
console.log("dans setup screen. To period = "+this._toPeriod);
switch(this._toPeriod) {
case 1: // Aube -> Jour
if (!$dataMap.meta.in){
if(!this._IwasIn)
$gameScreen.startTint(Time_Manager_plus.Day_Tone, 180);
else
$gameScreen.startTint(Time_Manager_plus.Day_Tone, 1);
// console.log("dans setup screen. dans le if 111 : "+Time_Manager_plus.Day_Tone);
}
break;
case 2: // Jour -> Crépuscule
if (!$dataMap.meta.in) {
if(!this._IwasIn)
$gameScreen.startTint(Time_Manager_plus.Twilight_Tone, 180);
else
$gameScreen.startTint(Time_Manager_plus.Twilight_Tone, 1);
// console.log("dans setup screen. dans le if 222 : "+Time_Manager_plus.Twilight_Tone);
}
break;
case 3: // Crépuscule -> Nuit
if (!$dataMap.meta.in){
if(!this._IwasIn)
$gameScreen.startTint(Time_Manager_plus.Night_Tone, 180);
else
$gameScreen.startTint(Time_Manager_plus.Night_Tone, 1);
//console.log("dans setup screen. dans le if 333 : "+Time_Manager_plus.Night_Tone);
}
break;
case 4: // Nuit -> Aube
if (!$dataMap.meta.in){
if(!this._IwasIn)
$gameScreen.startTint(Time_Manager_plus.Dawn_Tone, 180);
else
$gameScreen.startTint(Time_Manager_plus.Dawn_Tone, 180);
//console.log("dans setup screen. dans le if 444 : "+Time_Manager_plus.Dawn_Tone);
}
break;
}
};
Minutes_Timer.prototype.update = function() {
//var tmpMin = 0;
if(this._minutes_count > 0)
this._minutes_count -= 1;
if(this._minutes_count === 0){
this._minutes += (Time_Manager_plus.Minutes_Length / window.FPSMeter.defaults.maxFps);
//tmpMin = (Time_Manager_plus.Minutes_Length / 60);
this._minutes_count = 1;
}
// console.log("Minustes incrémentées : "+tmpMin+" arrondi : "+Math.round(tmpMin));
if(this._minutes >= Time_Manager_plus.MinustesInHour){
if(this._minutes === Time_Manager_plus.MinustesInHour)
this._minutes = 0;
else
this._minutes = this._minutes - Time_Manager_plus.MinustesInHour;
this._hours += 1;
}
if(this._hours >= Time_Manager_plus.HoursInDay){
this._hours = 0;
this._day += 1;
}
if(this._day >= Time_Manager_plus.DaysInWeek){
this._day = 0;
this._week += 1;
}
//nuit => aube
if(this._hours >= Time_Manager_plus.DawnHour)
this._toPeriod = 4;
//aube => jour
if(this._hours >= Time_Manager_plus.DayHour)
this._toPeriod = 1;
//jour => crépuscule
if(this._hours >= Time_Manager_plus.TwilightHour)
this._toPeriod = 2;
//crépuscule => nuit
if(this._hours >= Time_Manager_plus.NightHour)
this._toPeriod = 3;
this.setup_screen_tone();
if(Time_Manager_plus.TimeManagementMinutes)
$gameVariables.setValue(Time_Manager_plus.Var_Minutes_ID, this._minutes);
if(Time_Manager_plus.TimeManagementHours)
$gameVariables.setValue(Time_Manager_plus.Var_Hours_ID, this._hours);
if(Time_Manager_plus.TimeManagementDays) {
$gameVariables.setValue(Time_Manager_plus.Var_Day_ID, this._day);
$gameVariables.setValue(Time_Manager_plus.Var_DayOfWeek_ID, Time_Manager_plus.List_DayOfWeek[this._day]);
}
/*
console.log("je suis dans le UPDATE.\n");
console.log("Minutes in Hour : "+Time_Manager_plus.MinustesInHour+" minutes count : "+ this._minutes_count);
console.log("Hours in day : "+Time_Manager_plus.HoursInDay+" hours count : "+ this._hours);
*/
};
$Minutes_Timer = null;
var _DataManager_makeSaveContents = DataManager.makeSaveContents;
DataManager.makeSaveContents = function() {
var contents = _DataManager_makeSaveContents.call(this);
contents.TimeManagement_System = $Minutes_Timer;
return contents;
}
var _DataManager_extractSaveContents = DataManager.extractSaveContents;
DataManager.extractSaveContents = function(contents) {
_DataManager_extractSaveContents.call(this, contents);
$Minutes_Timer = contents.TimeManagement_System;
}
var _Scene_Base_start = Scene_Base.prototype.start;
Scene_Base.prototype.start = function() {
_Scene_Base_start.call(this);
if (SceneManager._scene.constructor.name == "Scene_Map" && $Minutes_Timer == null) {
$Minutes_Timer = new Minutes_Timer();
}
}
var _Scene_Base_update = Scene_Base.prototype.update;
Scene_Base.prototype.update = function() {
_Scene_Base_update.call(this);
if (SceneManager._scene.constructor.name == "Scene_Map")
$Minutes_Timer.update();
};
Si vous notez des bugs et autres je suis preneur
Si cela ne sert a personne et bien... tant pis sinon tant mieux
- KingdommangasMembre
- Nombre de messages : 1403
Localisation : Ma tête
Distinction : Débrouillarde notoire é_è [Mist']
Ou celle qui partageait plus vite que son ombre [Gel']
Poisson 2017 [Amal]
Grâce à elle, tout le forum appelle Yamashi "Mamashi" [Yama]
Entraide d'Or
Règne dans l'ombre de la commu'
Youtubeuse beauté reconvertie dans le gaming [Amal']
Date d'inscription : 05/05/2015
Re: [PLUGIN] gestion cycle jour/nuit + horloge interne
Sam 25 Avr 2020 - 17:47
nice
- ganondorf701Membre
- Nombre de messages : 3
Distinction : aucune
Date d'inscription : 22/08/2012
Re: [PLUGIN] gestion cycle jour/nuit + horloge interne
Mar 28 Avr 2020 - 10:42
Merci
Il reste un léger bug au niveau des transitions mais je vais regarder çà
Il reste un léger bug au niveau des transitions mais je vais regarder çà
- sayanoMembre
- Nombre de messages : 5
Distinction : aucune
Date d'inscription : 25/06/2021
Salut
Ven 25 Juin 2021 - 21:37
J'ai essayé le script et le problème c est que des fois j'utilise le tons de l'écran et à cause du script, mes tons s'enlève. Et quand je met in avec les crochets dans l'édit de la map, plus aucun ton est fonctionnel. J'espère vous m'avez compris bonne journée.
- SofreackMembre
- Nombre de messages : 14
Age : 36
Distinction : aucune
Date d'inscription : 14/06/2014
Re: [PLUGIN] gestion cycle jour/nuit + horloge interne
Jeu 1 Juil 2021 - 17:24
Salut! Petite question? Peut-on figer le temps si on souhaite faire une scène où le ton ne change pas et peut-on définir une heure précise voulu?
Exemple: on est le soir, je vais vers mon lit et choisi de me reposer jusqu'au matin. Une fois le matin une scènes s'enclanche et le ton ne change pas tant que la scène n'est pas terminée.
Si c'est possible de faire ça avec des switch et variable en gros? Sauter à une heure voulue et stopper/reprendre l'écoulement du temps?
Exemple: on est le soir, je vais vers mon lit et choisi de me reposer jusqu'au matin. Une fois le matin une scènes s'enclanche et le ton ne change pas tant que la scène n'est pas terminée.
Si c'est possible de faire ça avec des switch et variable en gros? Sauter à une heure voulue et stopper/reprendre l'écoulement du temps?
- sayanoMembre
- Nombre de messages : 5
Distinction : aucune
Date d'inscription : 25/06/2021
Re: [PLUGIN] gestion cycle jour/nuit + horloge interne
Sam 3 Juil 2021 - 23:58
on dirait que ce site est mort, ça te dit de parler avec moi et de s'entraider?
- KingdommangasMembre
- Nombre de messages : 1403
Localisation : Ma tête
Distinction : Débrouillarde notoire é_è [Mist']
Ou celle qui partageait plus vite que son ombre [Gel']
Poisson 2017 [Amal]
Grâce à elle, tout le forum appelle Yamashi "Mamashi" [Yama]
Entraide d'Or
Règne dans l'ombre de la commu'
Youtubeuse beauté reconvertie dans le gaming [Amal']
Date d'inscription : 05/05/2015
Re: [PLUGIN] gestion cycle jour/nuit + horloge interne
Lun 5 Juil 2021 - 15:48
Sur ce script je sais pas, mais si tu fait ca en event c'est possible oui.Sofreack a écrit:Salut! Petite question? Peut-on figer le temps si on souhaite faire une scène où le ton ne change pas et peut-on définir une heure précise voulu?
Exemple: on est le soir, je vais vers mon lit et choisi de me reposer jusqu'au matin. Une fois le matin une scènes s'enclanche et le ton ne change pas tant que la scène n'est pas terminée.
Si c'est possible de faire ça avec des switch et variable en gros? Sauter à une heure voulue et stopper/reprendre l'écoulement du temps?
- SofreackMembre
- Nombre de messages : 14
Age : 36
Distinction : aucune
Date d'inscription : 14/06/2014
Re: [PLUGIN] gestion cycle jour/nuit + horloge interne
Jeu 8 Juil 2021 - 16:03
Vraiment désolé Sayano je n'ai pas vu ton message!
Et merci pour ta réponse Kingdommangas, finalement c'est ce que j'ai décidé de faire. En Event c'est plutôt simple de faire une horloge et puis j'aurais plus de contrôle dessus. Je souhaite faire un système s'approchant des jeux "Atelier", si tu connais tu devrais voir à peu prêt. On à vite tendance à trop ce fier aux scripts alors que parfois ils sont plus compliqué que les events.
Et merci pour ta réponse Kingdommangas, finalement c'est ce que j'ai décidé de faire. En Event c'est plutôt simple de faire une horloge et puis j'aurais plus de contrôle dessus. Je souhaite faire un système s'approchant des jeux "Atelier", si tu connais tu devrais voir à peu prêt. On à vite tendance à trop ce fier aux scripts alors que parfois ils sont plus compliqué que les events.
- KingdommangasMembre
- Nombre de messages : 1403
Localisation : Ma tête
Distinction : Débrouillarde notoire é_è [Mist']
Ou celle qui partageait plus vite que son ombre [Gel']
Poisson 2017 [Amal]
Grâce à elle, tout le forum appelle Yamashi "Mamashi" [Yama]
Entraide d'Or
Règne dans l'ombre de la commu'
Youtubeuse beauté reconvertie dans le gaming [Amal']
Date d'inscription : 05/05/2015
Re: [PLUGIN] gestion cycle jour/nuit + horloge interne
Mar 13 Juil 2021 - 19:14
Atelier, yep je connais.
Apres tu n’es pas obligé de faire une vraie horloge pour ce type de jeu.
Dans Atelier Rorona, les jours ne passe qu'en voyage. Dans Totori ce sont tes actions qui font passer le temps comme cueillir coute 5 tps sur 10 et combattre en coute 3.
Apres tu n’es pas obligé de faire une vraie horloge pour ce type de jeu.
Dans Atelier Rorona, les jours ne passe qu'en voyage. Dans Totori ce sont tes actions qui font passer le temps comme cueillir coute 5 tps sur 10 et combattre en coute 3.
- SofreackMembre
- Nombre de messages : 14
Age : 36
Distinction : aucune
Date d'inscription : 14/06/2014
Re: [PLUGIN] gestion cycle jour/nuit + horloge interne
Mer 14 Juil 2021 - 4:59
Je vais tester avec le système de voyage.
Chaque fois qu'on utilisera le fast-travel cela fera avancer le temps en heure, à chaque changement de map dans la même zone un avancement en minute, et peut être au nombre de pas également. Je vais me baser sur 1 seconde réel = 1 minute de jeu pour commencer je verrais par la suite.
Chaque fois qu'on utilisera le fast-travel cela fera avancer le temps en heure, à chaque changement de map dans la même zone un avancement en minute, et peut être au nombre de pas également. Je vais me baser sur 1 seconde réel = 1 minute de jeu pour commencer je verrais par la suite.
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum