Night.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker

RM 95
RM 2000/2003
RM XP
RM VX/VX Ace
RM MV/MZ

Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Sorties: Star Trek: Glorious Wolf - (...) / Sorties: Dread Mac Farlane - episode 3 / News: Plein d'images cools créées par (...) / Sorties: Star Trek: Glorious Wolf - (...) / Jeux: Final Fantasy 2.0 / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

260 connectés actuellement

29187455 visiteurs
depuis l'ouverture

2506 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

Offgame

Kingdom Ultimate

RPG Fusion

Guelnika & E-magination

Le Temple de Valor

Tous nos partenaires

Devenir
partenaire



forums

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


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

❤ 0

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

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts/Plugins | Ressources graphiques / sonores | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
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
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers