[RPG-MAKER.FR] Oniromancie: tout l'univers de RPG Maker en français - Les forums - MOG Time System AddOns Rendez-Vous !

Oniromancie: Les forums - MOG Time System AddOns Rendez-Vous !


Comment ça marche?

Aëdemphia
Par Sylvanor

Fighting Robots Quest
Par Boulon

Geex
Par roys

Inexistence
Par Falco

La Légende d'Ibabou
Par Zaitan

Nylu
Par NanakyTim

Sarcia
Par Kaëlar

Super Mario RPG - Lost Souls
Par Omegabowser

Jeux: The Best Game In The World / News: Le samedi, c'est best of des (...) / Sorties: Superstar Hero / Tutos: Event-scripting001 - (...) / News: 10 000 000 /

Chat  (62 connectés)

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

114 connectés actuellement

10014065 visiteurs
depuis l'ouverture

820 visiteurs
aujourd'hui

Groupe Facebook

Barre de séparation

Partenaires






TOP
GAMEMAKING


Les 5 plus
visités

Akademiya RPG Maker

Alex d'Or

Blog of Chaos17

BloGecko

ConsoleFun

Au hasard

Lumen

New RPG Maker

Eclipso

Les deux derniers

Zarok

Akademiya RPG Maker

Nos autres partenaires

Devenir
partenaire


Barre de séparation

Un site du réseau
War Paradise

Annuaires référenceurs




forums

Index du forum > Scripts > MOG Time System AddOns Rendez-Vous !


esziaprez game - posté le 09/04/2018 à 18:33:37. (429 messages postés)

Je suis dans le game !

Voici un petit script pour Améliorer MOG_TimeSystem.js que j'utilise dans mon projet.
Il permet de définir des Rendez-vous et de générer automatiquement rappel, annonce, répétions, délai d'expiration...
Je publierai à la suite:
la Scene_MenuAgenda
Le hud qui affiche les RDV proches sur la map
un Json de dates préétablies et un code de récupération des datas;
Un gestionnaire d'appel d'event et/ou de scripts en fonction des rdv. (lié à un système de quêtes)
Un système d'autoActivation cyclique d'autoSwitches d'event (pour un système d'agriculture notamment)
mes autres systèmes que je vais rebuilt sur cette base...




Liste Actuelle

>>> 0mnipr3z_SC_rdv.js




0mnipr3z_SC_rdv.js


REQUIRE : MOG_TimeSystem.js (à éditer un peu)


Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
 
//======================================
// * 0mnipr3z_SC_rdv.js
//======================================
 
/*:
 * @plugindesc (v0.1) Système de gestion de rendez-vous (AddOn de MOG_TimeSystem.js)
 * @author Moghunter 0mnipr3z
 *
 * @help
 * Pour créer une date de RDV appellez un script et entrez les valeur suivantes:
 *
 * var hr = <entrez ici l'heure du RDV>;
 * var jr = <entrez ici le jour du RDV>;
 * var ms = <entrez ici le mois du RDV>;
 * var an = <entrez ici l'année du RDV>;
 * var rpl = <entrez ici le nombre d'heures avant le RDV
 *                              effectuera un rappel, 0 ou - pas de rappel>;
 * var dl = <entrez ici le nombre d'heures après le RDV
 *                              où le rdv sera "expiré">;
 * var vsbl = <true=affiché sur la carte et sur la map, false=invisible>;
 * var rpt = <Definir la repetition 0=jamais; 1=quotidien; 2=Lundi à Vendredi;
 *                                      3=WE 4=hebdomadaire; 5= mensuel; 6=annuel>;
 * var msg =[<Message affiché en rappel>,<Message affiché à l'heure>,
 *                      <message affiché expire>, <nom affiché dans l'agenda et sur la map>];
 *              
 * $gameSystem.setRdv(hr,jr,ms,an,msg,rpl,dl,vsbl,rpt);
*/
 
//======================================================
// ** Fonctions
//======================================================
 
Game_System.prototype.minutePasse = function(){
        this.updateRdv()
}
Game_System.prototype.updateRdv = function(){
        this.rdv = this.rdv || [];
        if(this.minute() == 0){
                for(i=0; i< this.rdv.length; i++){
                        
                        //definition des variables RDV
                        var _hr =       this.rdv[i].heure;
                        var _jr =       this.rdv[i].jour;
                        var _ms =       this.rdv[i].mois;
                        var _an =       this.rdv[i].an;
                        var _rpl =      this.rdv[i].rappel; //si !=0 heure de rappel du rdv
                        var _dl =       this.rdv[i].delai; //si !=0 heure de rappel du delai
                        //definition des variables rappel
                        var _hrRpl = _hr - _rpl;
                        var _jrRpl = _jr;
                        var _msRpl = _ms;
                        var _anRpl = _an;
                        //definition des variables delai
                        var _hrDl = _hr + _dl;
                        var _jrDl = _jr;
                        var _msDl = _ms;
                        var _anDl = _an;
                        
                        //---------------------------
                        //RAPPEL
                        if(_rpl >= 1){
                                
                                //concretisation de la date
                                while(_hrRpl<0){
                                        _jrRpl--;
                                        _hrRpl+=24;
                                        while(_jrRpl<1){
                                                _msRpl--;
                                                _jrRpl+=30;
                                                while(_msRpl<1){
                                                        _anRpl--;
                                                        _msRpl+=12;
                                                };
                                        };
                                };
                                
                                //test
                                if(     this.compareDate(_hrRpl,_jrRpl,_msRpl,_anRpl) ){
                                        this.rdv[i].rappel =0;//
                                        this.rappel(this.rdv[i]);
                                };
                        };
                        
                        //---------------------
                        //RENDEZ VOUS
                        if(     this.compareDate(_hr,_jr,_ms,_an) ){
                                this.date(this.rdv[i]);
                                
                        };
                        
                        //---------------------------
                        //DELAI
                        if(_dl >= 1){
                                
                                //concretisation de la date
                                while(_hrDl>=24){
                                        _jrDl++;
                                        _hrDl-=24;
                                        while(_jrDl>30){
                                                _msDl++;
                                                _jrDl-=30;
                                                while(_msDl>12){
                                                        _anDl++;
                                                        _msDl-=12;
                                                };
                                        };
                                };
                                
                                //test-----------------
                                if(     this.compareDate(_hrDl,_jrDl,_msDl,_anDl) ){
                                        this.delai(this.rdv[i]);
                                };
                        };
                        
                };
                //on ajoute une minute pour eviter la répétition
                this.add_minute(1);
        };
};
Game_System.prototype.compareDate = function (hr,jr,ms,an){
        if(     hr == this.hour() &&
                jr == this.day() &&
                ms == this.month() &&
                an == this.year()){
                return true;
        }else{
                return false;
        };
};
Game_System.prototype.setRdv = function(hr,jr,ms,an,msg, rpl, dl, vsbl, rpt){
        this.rdv = this.rdv || [];
        var _rdv={};
        _rdv.heure = hr;
        _rdv.jour = jr;
        _rdv.mois = ms;
        _rdv.an = an;
        _rdv.rappel = rpl;
        _rdv.delai = dl;
        _rdv.msg = msg;
        _rdv.repeat = rpt || 0;
        _rdv.visible = vsbl || true;
        this.rdv[this.rdv.length] = _rdv;
};
Game_System.prototype.setRdvDelai= function (hr,msg){
        this.rdv = this.rdv || [];
        var _rdv={};
        _rdv.heure = this.hour()+1;
        if(_rdv.heure>=24){_rdv.heure = 0};
        _rdv.jour = this.day();
        _rdv.mois = this.month();;
        _rdv.an = this.year();;
        _rdv.rappel = 0;
        _rdv.delai = hr;
        _rdv.msg = msg;
        this.rdv[this.rdv.length] = _rdv;
}
 
//Evenement qui se déclenche à l'heure d'un rdv
Game_System.prototype.date = function (evt){
        if(evt){
                $gameMessage.add( String(evt.msg[1]));
                SoundManager.playCursor();
        };
        if(evt.delai == 0){
                $gameMessage.add( String(evt.msg[2]));
                SoundManager.playOk();
                this.rdvRepeat(evt);
                this.rdvHistoric = this.rdvHistoric || [];
                this.rdvHistoric.push(evt);
                this.rdv.splice(i,1);
        };
};
 
Game_System.prototype.rdvRepeat = function (evt){
        if(evt.repeat){
                switch(evt.repeat){
                case 0: // ne pas répété
                break;
                case 1: // tout les jours
                        evt.jour++;
                break;
                case 2: // que la semaine
                        if(this.day_week < 7){
                                evt.jour++;
                        }else{
                                evt.jour= evt.jour+3;
                        };
                break;
                case 3: // que le weekend
                        if(this.day_week == 7){
                                evt.jour++;
                        }else{
                                evt.jour= evt.jour+7;
                        };
                break;
                case 4: // hebdomadaire
                        evt.jour= evt.jour+7;
                break;
                case 5: // mensuel
                        evt.mois++;
                break;
                case 6: // annuel
                        evt.an++;
                break;
                default:
                break;
        };
};
 
Game_System.prototype.rappel = function (evt){
        if(evt){
                $gameMessage.add( String(evt.msg[0]));
                SoundManager.playCursor();
        };
};
Game_System.prototype.delai = function (evt){
        if(evt){
                $gameMessage.add( String(evt.msg[2]));
                SoundManager.playBuzzer();
                this.rdvRepeat(evt);
                this.rdvHistoric = this.rdvHistoric || [];
                this.rdvHistoric.push(evt);
        };
};
Game_System.prototype.update_seconds = function() {
        $gameVariables._data[this._sec_variableId] += this.time_speed();
        if ($gameVariables._data[this._sec_variableId]  >= this.max_time(this._sec_variableId)) {
        this.refresh_time(1,this._min_variableId);
        this.minutePasse();
        };
    this.check_max_time(this._sec_variableId);
};
 
 



ATTENTION !
! Vous devez supprimer Game_System.prototype.update_seconds de MOG_TimeSystem.js pour que mon addon fonctionne (je sais c'est barbare mais j'ai fais au plus rapide.)
! Le système est optimisé pour un calendrier "classique"(an=12mois; mois=30jrs; jours=24hrs). J'aurais pu le faire adapté aux modifications de paramètres du plugin de MOG mais j'en ressent pas personnellement l’intérêt.

Projet en cours: INRAL / En pause :NEOTORI /// Pause : L'ANKH DE KINBRA /// Pause : GRASS SHOPPER  /// GALERIE

Index du forum > Scripts > MOG Time System AddOns Rendez-Vous !

repondre up

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site:

Activité: Accueil | News | Forum | Flash-news | Chat | Commentaires | Galerie | Blogs | Screen de la semaine | Sorties | Articles perso | Palmarès | Livre d'or | Recherche
Télécharger: Programmes | Scripts | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Index jeux séparés | Top Classiques | Top Originaux | Les autres | Collection Oniro | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Jeux complets | Proposer
Rubriques: Le Wiki | Tutoriels | Guides | Gaming-Live | Tests | Making-of | Interviews | Articles perso | OST | L'Annuaire | Divers
Hébergés: Aëdemphia | Fighting Robots Quest | Geex | Inexistence | La Légende d'Ibabou | Nylu | Sarcia | Super Mario RPG - Lost Souls
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis