Day.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

411 connectés actuellement

29190469 visiteurs
depuis l'ouverture

5520 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

Hellsoft

Guelnika & E-magination

Planète Glutko

Tashiroworld

Lumen

Tous nos partenaires

Devenir
partenaire



Messages postés par corbac83100
Nombre de messages référencés sur Oniromancie (non supprimés): 18

Aller à la page: 1

Posté dans Forum - [VX ACE] Déplacement incorrect d'un événement au contact du héros

corbac83100 - posté le 24/08/2018 à 00:15:15. (19 messages postés)

dans le déplacement tu coche attendre da fin du déplacement?

Corbac la nuit est t'on refuge

Posté dans Forum - bonjour All [redite]

corbac83100 - posté le 29/07/2018 à 22:08:22. (19 messages postés)

a vrais dire corbac3100 est le plus vieux
et sais lui ou j'avais perdu le identifient et mot de passe.
sur le cou. Je croient que mon conte avait étais supprimé.
donc je fais corbac912... mais évidement je me suis aperçu trop tard.
que corbac83100 était toujour la et en cherchent j'ai retrouver mes
identifient et mot de passe.
donc je souhaitez supprimer corbac912... mais voilà peut pas.
U^_^ quel bordel pour un conte perdu...
enfin bref désolé pour tout sa :doute5

Corbac la nuit est t'on refuge

Posté dans Forum - bonjour All [redite]

corbac83100 - posté le 25/07/2018 à 21:58:27. (19 messages postés)

oui oui. Je sais... s'est moi aussi "corbac912"
pour une obscure raison... bref...
mais je n'arrive pas à supprimer corbac912...

Corbac la nuit est t'on refuge

Posté dans Forum - bonjour All [redite]

corbac83100 - posté le 24/07/2018 à 11:52:58. (19 messages postés)

il y a une image sur ma galerie et
4 vidéo que je fais comme sa vite fais.
dispo sur YouTube.
Mais non pas de captation pour le moment.
et tout est pas en place, il y a tant à fair et si peut de temps,
a consacré à mon projet...

Corbac la nuit est t'on refuge

Posté dans Forum - bonjour All [redite]

corbac83100 - posté le 21/07/2018 à 12:47:41. (19 messages postés)

redite: changement de conte.
bonjour a tous.
je suis: corbac83100
un homme (oui j'avais 1/2 chance) travail dans le batiment.
a une vie de famille très prenante.
et passe une parti de son temps libre sur rpg maker pour m’amusais

qui se débrouille en: image, vidéo, sond, évènement de rpg maker, 3D.
mais novice en rgss3 (ruby).

nom de mon projet: Sexy Aventura :sifflote

Genre: RPG Hentai. :pfr
Projet en coure de développement. cénario pas figet, les grande ligne
son écrite.




que dire d'autre... a vous de demandé.

Corbac la nuit est t'on refuge

Posté dans Forum - [Résolu] Problème de lecture de la BGM sur une vidéo

corbac83100 - posté le 20/07/2018 à 00:02:42. (19 messages postés)

et si dans ta vidéo tu rajoutes la musique de comba.:pense

Corbac la nuit est t'on refuge

Posté dans Forum - [VX Ace] Musique dans le menu et les extentions

corbac83100 - posté le 18/06/2018 à 20:31:42. (19 messages postés)

bah sa marche ni quel un grand Merci a toi Voximilien :bave
:sonic:banane
edit: j'ai juste couper la musique sur le menu delux et voila ;)

Corbac la nuit est t'on refuge

Posté dans Forum - [VX Ace] Musique dans le menu et les extentions

corbac83100 - posté le 17/06/2018 à 22:22:55. (19 messages postés)

bonsoir:sourit
voila les différent scripts pour les menues.:kawaii
sa marche parfaitement saufe pour ma musique de font.:(

base
http://www.rpg-maker.fr/scripts-468-xs-menu-delux-11b.html

iteme
https://yanflychannel.wordpress.com/rmvxa/menu-scripts/ace-item-menu/

statu
https://bmscripts.weebly.com/advanced-yea-status.html

equipement
https://bmscripts.weebly.com/advanced-vk-equip.html

journal
http://www.rpg-maker.fr/scripts-458-journal-de-quetes.html

bestier
http://www.rpg-maker.fr/scripts-519-bestiaire.html

option systeme
https://yanflychannel.wordpress.com/rmvxa/menu-scripts/system-options/

voila...:sifflote
oui il y en a beaucoup...:D

Corbac la nuit est t'on refuge

Posté dans Forum - [VX Ace] Musique dans le menu et les extentions

corbac83100 - posté le 17/06/2018 à 20:17:20. (19 messages postés)

bonsoir
merci Voximilien mais dommage que sa ne marche pas.:'(
s'est même pire vus que les extension (menus seconder) comme bestiaire ou journal de quest
non pas la musique du menue mais de la map...:leure3
je vais bien finir par trouvé.:lei

Corbac la nuit est t'on refuge

Posté dans Forum - [VX Ace] Musique dans le menu et les extentions

corbac83100 - posté le 16/06/2018 à 14:15:16. (19 messages postés)

Domaine concerné: script
Logiciel utilisé: Ace
bonjour a tous
ne trouvent pas sur le forum a se sujet bizarrement.
voila j'utilise Menu Delux de Nicke
http://www.rpg-maker.fr/scripts-468-xs-menu-delux-11b.html
qui est parfais pour mon projet.
mais le souci est que les extension de menu comme: le bestiaire, le journal de quet, autre...
non pas le musique de font
il y a bien un script comme:Menu BGM et BGS de Spyrojojo
http://www.rpg-maker.fr/scripts-488-vx-acemusique-dans-le-menu.html
mais le souci sais que la musique quant on revien sur la map garde la musique du menu...
donc la question:
comment fais pour rajouté le morceaux de code au déférent extension pour avoirs une musique dans le menu mais que si on quitte la musique bascule sur la musique de la map.
merci pour votre aide

Corbac la nuit est t'on refuge

Posté dans Forum - [rpg maker VXAce] probleme de compatibilité "simple"

corbac83100 - posté le 15/04/2017 à 19:16:15. (19 messages postés)

Domaine concerné: Script
Logiciel utilisé: rpg maker VXAce
bonjour a tous:salut
comme s'est écris dans le titre un petit problème de compatibilité :wouah
avec 2 script qui non rien avoir l'un avec l'autre, mais qui utilise la même fonction apriori. :fou3
les scripte:
N°1 CP's Battle Engine v1.2b de Neon Black
https://cphouseset.wordpress.com/scripts/cp_battleview_2/
et
N°2 mode 7 ace de MGC
http://www.rpg-maker.fr/scripts-454-vxace-mode-7-semi-3d.html
sa me fais si il y a un combat:

Citation:

Script'CP's Battle Engine v1.2b' line 1852: ArgumenttError occurred
wrong number of argument (2 for 1)



voila les ligne incriminé: CP's Battle Engine v1.2b ligne 1844/1902

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
  def update_animation  ## Mises à jour de chaque animation dans le tableau.
    return unless animation?
    @ani_array.each do |ani|
      ani.ani_duration -= 1
      if ani.ani_duration % ani.ani_rate == 0
        if ani.ani_duration > 0
          frame_index = ani.animation.frame_max
          frame_index -= (ani.ani_duration + ani.ani_rate - 1) / ani.ani_rate
          animation_set_sprites(ani.animation.frames[frame_index], ani)
        #animation_set_sprites est aussi utilise par mode7 et sa bug
          ani.animation.timings.each do |timing|
            animation_process_timing(timing, ani) if timing.frame == frame_index
          end
        else
          end_animation(ani)
        end
      end
    end
  end
def end_animation(ani = nil)
    dispose_animation(ani)  ## I think I took something out of this.
  end
  
  def animation_set_sprites(frame, ani = nil) #<== ici aussi
    return unless ani
    cell_data = frame.cell_data
    ani.ani_sprites.each_with_index do |sprite, i|
      next unless sprite
      pattern = cell_data[i, 0]
      if !pattern || pattern < 0
        sprite.visible = false
        next
      end
      sprite.bitmap = pattern < 100 ? ani.ani_bitmap1 : ani.ani_bitmap2
      sprite.visible = true
      sprite.src_rect.set(pattern % 5 * 192,
        pattern % 100 / 5 * 192, 192, 192)
      if ani.ani_mirror
        sprite.x = ani.ani_ox - cell_data[i, 1]
        sprite.y = ani.ani_oy + cell_data[i, 2]
        sprite.angle = (360 - cell_data[i, 4])
        sprite.mirror = (cell_data[i, 5] == 0)
      else
        sprite.x = ani.ani_ox + cell_data[i, 1]
        sprite.y = ani.ani_oy + cell_data[i, 2]
        sprite.angle = cell_data[i, 4]
        sprite.mirror = (cell_data[i, 5] == 1)
      end  ## Adjust the animation position.
      ofs = CP::BATTLERS.sideview ? 0 : CP::BATTLERS::ANIM_OFFSET
      sprite.y += ofs if ani.animation.to_screen? && @battler && @battler.actor?
      sprite.z = self.z + 300 + i
      sprite.ox = 96
      sprite.oy = 96
      sprite.zoom_x = cell_data[i, 3] / 100.0
      sprite.zoom_y = cell_data[i, 3] / 100.0
      sprite.opacity = cell_data[i, 6]  ## Ignore transparency.
      sprite.blend_type = cell_data[i, 7]
    end
  end


et le scripte mode 7 ligne 1097/1146

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
class Sprite_Base
  #--------------------------------------------------------------------------
  # * Aliased methods
  #--------------------------------------------------------------------------
  unless @already_aliased_mgc_m7a
    alias animation_set_sprites_mgc_m7a_aprite_base animation_set_sprites#<== ici :/
    @already_aliased_mgc_m7a = true
  end
  #--------------------------------------------------------------------------
  # * Set Animation Sprite
  #     frame : Frame data (RPG::Animation::Frame)
  #--------------------------------------------------------------------------
  def animation_set_sprites(frame)
    if MGC.mode7_active
      cell_data = frame.cell_data
      @ani_sprites.each_with_index do |sprite, i|
        next unless sprite
        pattern = cell_data[i, 0]
        if !pattern || pattern < 0
          sprite.visible = false
          next
        end
        sprite.bitmap = pattern < 100 ? @ani_bitmap1 : @ani_bitmap2
        sprite.visible = true
        sprite.src_rect.set(pattern % 5 * 192,
          pattern % 100 / 5 * 192, 192, 192)
        if @ani_mirror
          sprite.x = @ani_ox - cell_data[i, 1] * zoom_y_real
          sprite.y = @ani_oy + cell_data[i, 2] * zoom_y_real
          sprite.angle = (360 - cell_data[i, 4])
          sprite.mirror = (cell_data[i, 5] == 0)
        else
          sprite.x = @ani_ox + cell_data[i, 1] * zoom_y_real
          sprite.y = @ani_oy + cell_data[i, 2] * zoom_y_real
          sprite.angle = cell_data[i, 4]
          sprite.mirror = (cell_data[i, 5] == 1)
        end
        sprite.z = self.z + 300 + i
        sprite.ox = 96
        sprite.oy = 96
        sprite.zoom_x = cell_data[i, 3] * zoom_y_real / 100.0
        sprite.zoom_y = cell_data[i, 3] * zoom_y_real / 100.0
        sprite.opacity = cell_data[i, 6] * self.opacity / 255.0
        sprite.blend_type = cell_data[i, 7]
      end
    else
      animation_set_sprites_mgc_m7a_aprite_base(frame)#<== ici :/
    end
  end
end
 


voila voila si il y a un craque en programmation (car moi je suis novice).
merci d’avance de me dépatouillé de se merdier.:kawaii

Corbac la nuit est t'on refuge

Posté dans Forum - [VXA] un scrips animation Phantasy Star IV ou Lufia II?

corbac83100 - posté le 20/03/2017 à 19:42:41. (19 messages postés)

merci mickaellion2

Corbac la nuit est t'on refuge

Posté dans Forum - [VXA] un scrips animation Phantasy Star IV ou Lufia II?

corbac83100 - posté le 19/03/2017 à 17:15:59. (19 messages postés)

Domaine concerné: Scrips
Logiciel utilisé: VXA
Bonjour a tous, :salut
comme le titre du poste l'indique, je cherche un Scripts pour mon projet. :rit2
Pour l'animation en combat a la "Phantasy Star IV" ou a la "Lufia II". :ange2
Note: j'ai cherché sur le forum mais j'ai rien trouvé. :doute5
et j'ai cherché sur internet mais sois les lien son mort.:leure2
Sois les scripts ne correspondre pas a ma rechercher.
Je m’étonne d'avoir t'en de mal a trouver alors que s'est assez voisin du scripts de base...
je vous remercie. si vous connaissais un scripts qui pourrait faire la faire pensé a moi. ;)

Corbac la nuit est t'on refuge

Posté dans Scripts - Menu Deluxe 1.1b

corbac83100 - posté le 27/12/2016 à 09:46:06. (19 messages postés)

Haldhoro a dit:


Saluuut merci pour le script par contre le petit bémol, pourquoi la musique s'arrete quand on se ballade dans les sous menus comme skill items ou autre, et que dès qu'on retourne au principal elle se relance...

si on peux m'éclairer a ce sujet ce serai sympa merci d'avance...:D


je pence qui suffi de mètres dans les section comme magic skill iteme etc des menus de base la musique que tu veut... a voir

Corbac la nuit est t'on refuge

Posté dans Forum - [VXA] Bestiary Version 1.4 prblemme pour appelé scripts [resolu]

corbac83100 - posté le 21/12/2016 à 18:34:59. (19 messages postés)

non hélasse. sa ne marche pas.
ni call Scene_Bestiary ni Scene_Bestiary new ni call Bestiary ni Bestiary new
et bien d'autre...
je désesper....

redite:
j'ai trouver le problème car le script bestiary étais en dessous du menu personnalisé (XaiL System - Menu Delux)(modifiet)
et donc sa pouvet pas marcher.
et donc pour appelais le scripte directement:
scripte Menu Delux (1)
ligne 56-65

Portion de code : Tout sélectionner

1
:bestiary => ["Bestiere", "bestiere.", 5349, true, true, Scene_Bestiary]



voila voila...
merci a arttroy pour son aide.

Corbac la nuit est t'on refuge

Posté dans Forum - [VXA] Bestiary Version 1.4 prblemme pour appelé scripts [resolu]

corbac83100 - posté le 19/12/2016 à 18:19:37. (19 messages postés)

Domaine concerné: Scrips
Logiciel utilisé: VXAce
(déplacé) redit
bonjour a tous.
j'ai un souci avec un scripts, je n'arrive pas a appelé le scripte via un événement comment...ou
par le menu Delux XaiL System de Nicke
je suis sur rpg maker VX.ace, si quelqu'un peut m’aidè?
voila le dit scripts:

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
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
################################################################
# RETCON Library
# Bestiary Version 1.4
# Author: Matt (McDohl)
# Script is free for usage, but please give credit where credit 
# is due. :)
################################################################
# PURPOSE
# This script adds a bestiary (yes, it's spelled bestiary) to your
# game. It hides enemies until they've been encountered, keeps
# track of how many have been defeated, displays their stats,
# as well as a blurb about the enemy.
#
# As of right now, there is a lot of hard-coded stuff in this script.
# That will change as I get more familiar with RGSS3 and VX ACE's
# method handling.
################################################################
# UPDATE HISTORY
# 1.4 - Added description text offset.
#       Added function to module to change the variable appropriate for
#        bestiary access. Bad programming practices shoo.
# 1.3 - Added method to check if the bestiary variable exists.
#        If not, call function to create it. Mostly for users 
#        who plug in this script while loading a game save.
#       Checks for draw_text word wrap script, as now is part of
#        the RETCON library.
#       Added lock function.
#       Fixed bug wherein selecting a locked function would cause
#        a user's game to crash.
# 1.2 - Fixed bug which was not ticing off multiple enemy deaths
#         correctly.
#       More code cleaning.
# 1.1 - Added tag+method to skip a monster in the database
#       Used terms as defined in the database rather than hardcode.
#       Added columns variable.
#       Rudimentary code cleanup.
# 1.0 - First draft
################################################################
# METHODOLOGY
# Trois nouvelles classes de fenêtres sont créées:
#
# Window_Bestiary - Affiche la fenêtre bestiaire. Sous-ensemble de 
# Window_Command, C'est là que les monstres sont affichés / cachés (shown/hidden).
#
# Window_Monster - Affiche les informations essentielles de monstres sur l'être
# Sélectionné dans Window Bestiary. Sous-ensemble de Window_Selectable.
#
# Window_MonsterDesc - Affiche le numéro d'index du monstre, le nom,
# Ainsi que combien de fois vaincu.
#
# Une nouvelle classe de scène est créée:
#
# Scene_Bestiary - Gère toutes les fenêtres du bestiaire.
#
# Five previously initialized classes are modified.
#
# Window_MenuCommand - Modified to include the bestiary method to the 
# menu.
#
# Scene_Menu - Affiche la commande bestiaire dans le menu.
#
# Game_Party - Initalizes and saves the bestiary hash, as well as
# making it referable. This is where the bestiary hash is saved as well, so
# make sure to start a new game when testing this script, or to comment it out
# if you want to continue.
#
# Game_Troop - Le rend si ennemis vu sont mis à vrai dans le hash bestiaire.
#
# Game_Battler - Tics the bestiary hash when an enemy is defeated.
################################################################
# USAGE
# Dans la section Notes de l'onglet Monstres de la base de données, vous pouvez
# Description au monstre à analyser dans le bestiaire. Tags pour le
# Bestiaire suivre ce format:
#
# <bestiary: *.* />
#
# Où *. * Est remplacé par le texte descripteur que vous souhaitez afficher
# Dans le bestiaire. Il s'agit de deux lignes, et nécessite des retours manuels de carrage, donc utilisez
# \ N pour délimiter où la fonction draw_text_ex devrait passer à la ligne suivante.
# 
# Example:
# <bestiary: The legendary white tiger. His fangs are said\nto be able to crush diamonds. />
#
# Remarque: Si le script wrapper de texte draw_text est chargé, \ n n'est pas nécessaire. Ce sera
# Afficher le texte normalement.
#
# Si vous souhaitez sauter un monstre dans la base de données d'être classé dans le hash,
# (Utilisé comme une sorte delinear, pas prêt à être implémenté, ou quelle que soit la raison),
# Il suffit d'ajouter cette balise dans les notes:
# <skipbestiary />
#
# Pour modifier l'accès Bestiaire, appelez la fonction script suivante dans votre jeu
#                   RETCON::Bestiary::bestiary_access(bool)
# Replace 'bool' with either 'true' (accessible) or 'false' (inaccessible)
################################################################
# CONCERNS
#-If enemies "revive", it will not detract from their kill count.
#-There is a potential collision issue should an actor name have
#  the same name as a monster during the same fight and an actor dies.
#  This is due to the Game_Battler class not distinguishing between
#  actors and enemies.
#-Assumes all listings in the database are monsters. If you're organizing
#  your monsters by adding blanks and such, make sure you use the skipbestiary
#  tag.
################################################################
# CUSTOMIZATION
 
module RETCON
  module Bestiary
 
  #Nom du bestiaire dans le menu de commande.
    Name = "Bestiaire"
 
  #Largeur du menu monstre. Réglez sur 544, ou la largeur maximale.
    Width = 544
 
  #What to display in the bestiary when an enemy is locked.
    Hidden = "???"
 
  #Number of columns to display on the bestiary.
    Columns = 2
    
  # Faire le bestiaire accessible dans le menu. Définissez sur true pour la rendre disponible,
   #set à false pour le rendre indisponible, au début de votre jeu.
    Available = true
    
  #Offset pour la description du bestiaire. Mesuré par pixels.
   #Make négatif pour soulever le texte. Assurez-vous de baisser le texte.
   #line_height est de 24 pixels.
    DescOffset = 0
 
################################################################
#Customization ends here!
#You shouldn't really edit below here, but if you know what
#you're doing, it won't be a big deal. Edit at your own risk and
#all that jazz.
################################################################
 
    def self.check_for_bestiary
      $game_party.make_the_bestiary if $game_party.bestiary.nil?
    end
    
    def self.bestiary_access(bestiarybool)
      $game_party.bestiary_accessible = bestiarybool
    end
  end
end
 
 
#################
#CLASS ORIGINALS#
#################
 
#The bestiary command window, activates when selected.
class Window_Bestiary < Window_Command
  def initialize
    super(0, fitting_height(1))
  end
  
  def window_height
    Graphics.height - fitting_height(1)
  end
  
  def window_width
    return RETCON::Bestiary::Width
  end
  
  #Interprets bestiary hash to display commands.
  def make_command_list
    RETCON::Bestiary::check_for_bestiary
    i = 0
    $game_party.bestiary.each {|k, v|
    i += 1
    if v[0] == false
      add_command(RETCON::Bestiary::Hidden, :bestiary_blank)
      else
      add_command("%03d" %i.to_s  + ". #{k}", :bestiary_lookup)
    end
    }
  end
  
  def col_max
    return RETCON::Bestiary::Columns
  end
  
  #Masquer et afficher les fonctions qui masquent le menu de commande lorsque vous affichez un ennemi
  def hide
    self.opacity = 0
    self.contents_opacity = 0
  end
  
  def show
    self.opacity = 255
    self.contents_opacity = 255
  end
end
 
#Window to display the monster once selected.
class Window_Monster < Window_Selectable
  def initialize
    super(0, fitting_height(1), Graphics.width, Graphics.height - fitting_height(1))
    draw_horz_line(line_height * 11)
    self.openness = 0
    open
  end
  
  #three methods to display the monster window
  def display_monster(enemyindex)
    monsterdb = $data_enemies[enemyindex]
    get_the_entry(monsterdb)
    draw_monster(monsterdb)
    draw_stats(monsterdb)
  end
  
  def get_the_entry(db)
    #draws the bestiary description text as set in notes.
    monstentry = db.note
    if monstentry =~ /<bestiary: (.*) \/>/i
        monstentry = $1.to_str
        if !$imported.nil? && $imported["RETCON-wordwrap"] == true
          draw_text(4, line_height * 12 + RETCON::Bestiary::DescOffset, Graphics.width, line_height * 4, monstentry)  
        else
          monstentry = monstentry.gsub(/\\n/, "\n")
          draw_text_ex(4, line_height * 12 + RETCON::Bestiary::DescOffset, monstentry)  
        end
      end
  end
  
  #calls and displays the monster image, including hues.
  def draw_monster(db)
    @monstviewport = Viewport.new(6, fitting_height(1) + 6, 412, Graphics.height - fitting_height(5))
    @monstviewport.z = 1000
    
    @monstpicture = Sprite.new(@monstviewport)    
    @monstpicture.bitmap = Cache.battler(db.battler_name, db.battler_hue)
 
    #determines centers of the viewpoint and currently loaded image
    ox = @monstviewport.rect.width / 2
    oy = @monstviewport.rect.height / 2
    obx = @monstpicture.bitmap.width / 2
    oby = @monstpicture.bitmap.height / 2
    
    #realigns the image so it's centered in the viewport
    @monstpicture.x = ox - obx
    @monstpicture.y = oy - oby
  end
  
  #displays the monsters stats. Does not show MP.
  #Same lines for each stat, but one is aligned left and one aligned right.
  def draw_stats(db)
    stat_window_width = Graphics.width - 430
    stat_window_x = 403
    stats = Array.new
    params = Array.new
    
    stats = [Vocab::param(0), Vocab::param(2), Vocab::param(3), Vocab::param(4), Vocab::param(5), Vocab::param(6), Vocab::param(7)]
    change_color(system_color)
    7.times{|i| draw_text(stat_window_x, fitting_height(i-1), stat_window_width, line_height, stats[i])}
 
    params = [db.params[0], db.params[2], db.params[3], db.params[4], db.params[5], db.params[6], db.params[7]]
    change_color(normal_color)
    7.times {|i| draw_text(stat_window_x, fitting_height(i-1), stat_window_width, line_height, params[i], 2)}
 
    change_color(text_color(17))
    draw_text(stat_window_x, fitting_height(6), stat_window_width, line_height, Vocab::currency_unit)
    
    change_color(normal_color)
    draw_text(stat_window_x, fitting_height(7), stat_window_width, line_height, db.gold, 2)
    
    change_color(text_color(23))
    draw_text(stat_window_x, fitting_height(8), stat_window_width, line_height, "EXP")
    
    change_color(normal_color)
    draw_text(stat_window_x, fitting_height(9), stat_window_width, line_height, db.exp, 2)
  end
 
  
  def draw_horz_line(y)
    line_y = y + line_height / 2 - 1
    contents.fill_rect(0, line_y, contents_width, 2, line_color)
  end
  
  def line_color
    color = normal_color
    color.alpha = 128
    color
  end
  
  #erases the picture when window closes.
  def clear_pic
    @monstpicture.dispose 
  end
  
  def window_width
    return Graphics.width
  end
end
 
#description window when displaying monster. Shows name as well as times defeated.
class Window_MonsterDesc < Window_Selectable
  def initialize
    super(0, 0, Graphics.width, fitting_height(1))
    self.openness = 0
    open
  end
 
  def display_desc(enemyname, enemyindex)
    enemynumindex = "%03d" %enemyindex.to_s
    change_color(text_color(6))
    draw_text(0, 0, width-30, line_height, "Entrée #" + enemynumindex + ": " + enemyname)  
    change_color(normal_color)
    draw_text(0, 0, width-30, line_height, "Nombre de défaits: " + $game_party.bestiary[enemyname][1].to_s, 2)
  end
end    
 
#Displays the scene 
class Scene_Bestiary < Scene_MenuBase
  def initialize
    super
    create_bestiary
  end
  
  #shows the command window for the bestiary
  def create_bestiary
    @monsterlisting = Window_Bestiary.new
    @monsterlisting.set_handler(:bestiary_blank, method(:play_error))
    @monsterlisting.set_handler(:bestiary_lookup, method(:monst_display))
    @monsterlisting.set_handler(:cancel, method(:backout))
    @monsterlisting.active = true
  end
  
  def backout
    SceneManager.return
  end
  
  #when a monster is selected, initializes the new windows and makes
  #them the focus
  def monst_display
    @monster = Window_Monster.new
    @monsterdesc = Window_MonsterDesc.new
    monster_info
    @monster.set_handler(:cancel, method(:clear_monster))
    @monsterdesc.set_handler(:cancel, method(:clear_monster))
    @monsterlisting.hide
    @monster.active = true
    @monsterdesc.active = true
  end
  
  #sends information to window classes to display correct information
  def monster_info
    subjectnumber = @monsterlisting.index+1
    subject = $data_enemies[subjectnumber].name
    @monsterdesc.display_desc(subject, subjectnumber)
    @monster.display_monster(subjectnumber)
  end
  
  #dummy function to do nothing when locked enemy is selected
  def play_error
    @monsterlisting.active = true
    Sound::play_buzzer
  end
  
  #refocuses the bestiary command list
  def clear_monster
    @monster.clear_pic
    @monster.close
    @monsterdesc.close
    @monsterlisting.show
    @monsterlisting.active = true
  end
end
 
###############
#CLASS ADDENDA#
###############
 
#Ajoute l'option bestiaire à la fenêtre, en ajoutant add_original_commands
class Window_MenuCommand < Window_Command
  alias bestiary_command add_original_commands
  def add_original_commands
    bestiary_command
    add_command(RETCON::Bestiary::Name, :bestiary, $game_party.bestiary_accessible)
  end
end
 
#adds the bestiary option to the command menu
class Scene_Menu < Scene_MenuBase
  alias bestiary_command_window create_command_window
  def create_command_window
    bestiary_command_window
    #the addition
    @command_window.set_handler(:bestiary,   method(:command_bestiary))
  end
  
  def command_bestiary
    SceneManager.call(Scene_Bestiary)
  end
end
 
#initializes the bestiary hash, as well as makes it accessible.
class Game_Party < Game_Unit 
  attr_accessor   :bestiary
  attr_accessor   :bestiary_accessible
  
  alias beastiary_retain_previous initialize
  def initialize
    beastiary_retain_previous
    make_the_bestiary
  end
  
  #initalizes the bestiary hash.
  def make_the_bestiary
    enemies = $data_enemies
    monsterlist = Array.new
    @bestiary = Hash.new
    @bestiary_accessible = RETCON::Bestiary::Available
    
    i = 0
    while i < enemies.length
      if i == 0
        i = 1
      end
      if enemies[i].note =~ /<skipbestiary \/>/i
        p i-1 ##skip method
      else
        monsterlist[i-1] = enemies[i].name
        @bestiary.merge! monsterlist[i-1] => [false, 0]
      end
      i += 1
    end
  end
end
 
#upon battle initialization, unlocks enemies in the bestiary
class Game_Troop < Game_Unit
  alias bestiary_setup setup
  def setup(troop_id)
    bestiary_setup(troop_id)
    seen_the_enemy
  end
  
  def seen_the_enemy
    RETCON::Bestiary::check_for_bestiary
    members.each do |enemy|
      if $game_party.bestiary[enemy.original_name][0] == false
        $game_party.bestiary[enemy.original_name][0] = true
      end
    end
  end
end
 
#checks death in a battle to see if it was enemy or ally.
#if enemy, then add a tick to the bestiary hash.
class Game_Battler < Game_BattlerBase
  alias bestiary_die die
  def die
    bestiary_die
    enemy_check
  end
 
  def enemy_check
    enemy_dead = false
     $game_troop.members.each do |enemy|
       if enemy.original_name == @original_name && enemy_dead == false
        $game_party.bestiary[enemy.original_name][1] += 1
        enemy_dead = true
        end
      end
    end
end


merci d’avance.

j'ai essayé :bestiary => ["Bestiere", "bestiere.", 5349, true, true, Scene_Bestiary]
mais sans sucés.

Corbac la nuit est t'on refuge

Posté dans Scripts - Quest Journal 1.0.3

corbac83100 - posté le 19/12/2016 à 18:05:52. (19 messages postés)

Naksu a dit:


Salut.
J'ai pris le script de corbac83100 et j'ai corrigé les fautes d'orthographes.

Le voici le voilà :


merci ^^U...
et pour l'appel via le script XaiL System - Menu Delux
ligne 57 a 66

Portion de code : Tout sélectionner

1
:quest => ["Journal", "Journal de quêtes", 5349, true, true, Scene_Quest],


pour appelé le journal.

Corbac la nuit est t'on refuge

Posté dans Scripts - Quest Journal 1.0.3

corbac83100 - posté le 18/12/2016 à 11:16:03. (19 messages postés)

bonjour il a l'aire bien mais je n'arrive pas a applet le scipts via un éventement ou un envenimement communs. comment faire?

Citation:

Astellan - posté le 15/12/2016 à 19:07:00. (1 messages postés)
Bonjour, j'ai un pitit problème que je ne sais résoudre, à l'avant dernière ligne et la dernière il me met un message d'erreur.



note: le scripts et trop long pour l’afficher donc va sur le lien pour récupéré le scripts originale. car il manque une bonne parti.

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
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
#==============================================================================
#    Quest Journal [VXA]
#    Version: 1.0.3
#    Author: modern algebra (rmrk.net)
#    Date: 24 September 2012
#    Support: http://rmrk.net/index.php/topic,45127.0.html
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# La description:
#
# Ce script fournit une interface graphique pour montrer les progrès de la quête. Il
# Est axée sur les objectifs, ce qui signifie que vous choisissez lors de révéler les objectifs et
# Vous pouvez le configurer de sorte qu'ils apparaissent comme terminée ou a échoué. Cela dit, cette
# Script ne construit pas des quêtes pour vous; il est seulement une scène supplémentaire pour
# Les montrer. En tant que tel, vous avez besoin à l'événement toutes les quêtes vous et
# Progrès de la quête de mise à jour via l'appel de script. Par conséquent, faites attention à
# Les instructions ici et dans les régions éditables sur les lignes 232 et 612.
# +++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++
# Instructions:
#
# Collez ce script dans son propre ou les fentes, au-dessus et au-dessous principale
# Matériaux. Si vous utilisez la fonctionnalité d'accès au menu, vous devez mettre tout
# autres scripts de menu ci-dessus celui-ci.
#
# Tous de la configuration se fait dans le module Quête données. Bien qu'il ne soit pas
# Nécessaire, il est recommandé de séparer le module de configuration
# Du reste du script en coupant et collant dans sa propre fente
# Script Editor (comme vous le verrez si vous avez la démo). La raison pour
# Ceci est que, si et quand ce script est mis à jour, vous pouvez préserver la
# Section de configuration et seulement remplacer les autres parties du script. Si
# Que vous souhaitez faire, vous devez couper tout de la première ligne vers le bas pour
# L'extrémité finale du module. Les premières lignes du script de corps devrait être
# Les égaux bar juste au-dessus # ** Game_Quest. Encore une fois, il est à vous si
# Tu le fais.
#
# Vous pouvez aller à EDITABLE REGION A à la ligne 232 pour configurer la valeur par défaut
# paramètres du script. Tous ces éléments vont bien fonctionner sans modification,
# Bien sûr, mais même si vous ne voulez pas configurer maintenant, vous devez familiariser
#-Vous avec tous les paramètres afin que vous puissiez tirer le meilleur parti de votre
# Script. J'ai inclus des tonnes de paramètres de sorte que vous pouvez faire la quête
# Journal unique pour votre jeu, même jusqu'à l'ordre dans lequel chaque section
# De la fenêtre d'information est tirée. Une brève description de chaque réglage est
# Inclus soit à droite ou directement au-dessus de chaque constante.
#
# EDITABLE REGION B est le vrai coeur du script mais - ceci est où
# Vous remplissez tous les détails pour les quêtes. Lisez les instructions à
# Ligne 612 très attentivement!
#
# Vous pouvez activer et accéder à une quête avec ce code dans l'événement Script
# Commande:
#
# Quest (quest_id)
# Quest_id: l'ID d'entier de la quête que vous voulez accéder
#
# De là, vous pouvez accéder ou modifier les données pertinentes stockées dans la quête,
# Comme nom, description, objectifs, etc ... Exemple:
# Quête (1) .name = "Rest in Pieces"
#
# Plus pertinente, en ce qui concerne le contrôle de l'état d'avancement des quêtes les
# codes suivants peuvent être utilisés dans une commande d'événement Script. Les arguments sont
# La même chose pour chaque commande donc je n'expliquer une fois. Elles sont toutes
# Assez explicite et en utilisant l'un d'eux va activer la quête
# (Sauf si vous utilisez le MANUEL Révéler la mise à la ligne 267).
#
# Reveal_objective (quest_id, objective_id_1, ..., objective_id_n)
# Quest_id: l'ID d'entier de la quête que vous souhaitez accéder.
# Objective_id_1, ..., objective_id_n: une liste des ID de la
# objectifs que vous souhaitez opérer. Il peut être aussi peu qu'une ou comme
# Autant que chacun d'entre eux.
# Montrera les objectifs énumérés dans les informations de la Quête
#
# Conceal_objective (quest_id, objective_id_1, ..., objective_id_n)
# Cachera les objectifs énumérés dans les informations de la Quête
#
# Complete_objective (quest_id, objective_id_1, ..., objective_id_n)
# Change la couleur des objectifs énumérés à la couleur terminée.
# La quête est terminée une fois que tous les objectifs principaux sont.
#
# Uncomplete_objective (quest_id, objective_id_1, ..., objective_id_n)
# Change l'état des objectifs complets énumérés retour à actif
#
# Fail_objective (quest_id, objective_id_1, ..., objective_id_n)
# Change la couleur des objectifs énumérés à la couleur a échoué.
# La quête a échoué une fois un objectif premier est.
#
# Unfail_objective (quest_id, objective_id_1, ..., objective_id_n)
# Change l'état des objectifs énumérés échoué vers actif
#
# Change_reward_status (quest_id, valeur)
# Valeur: vrai ou faux. Si exclus, par défaut à true.
# Totalement facultatif, mais ceci est juste un interrupteur personnel que vous pouvez
# Tour quand la récompense est donnée. Vous pouvez alors faire une condition
# Afin de ne pas récompenser les joueurs plus d'une fois. (Voir la ligne 180)
#
# EXEMPLES:
# Reveal_objective (1, 0)
# Ce serait révéler le premier objectif de la quête avec ID 1
# Complete_objective (6, 2, 3)
# Ceci compléterait les troisième et quatrième objectifs de la quête avec ID 6
# Change_reward_status (8)
# Ce serait mettre le commutateur de récompense à vrai pour la recherche avec l'ID 8.
#
# Une autre nouveauté est la possibilité de définir des récompenses qui apparaîtra dans le
# Menu (voir EDITABLE REGION B). En plus de cela, vous pouvez utiliser ce qui suit
# Code pour distribuer automatiquement les récompenses spécifiées pour une quête si le
# Quête est terminée et aucune récompense n'a encore été donné:
#
# distribute_quest_rewards (quest_id)
# Quest_id: l'ID de la quête dont les récompenses que vous voulez distribuer
#
# Bien sûr, il ne peut distribuer les récompenses matérielles (objets, armes,
# blindages, or, ou exp). Il ne distribuera pas les récompenses que vous spécifiez par chaîne.
# À cette fin cependant, vous pouvez également utiliser ce code dans une branche conditionnelle et
# Elle sera satisfaite que si elle distribue les récompenses. Ainsi, si vous
# Voulait ajouter quelques récompenses spéciales ou faire des choses comme cela, vous pouvez simplement mettre
# Que dans la branche pour quand il est vrai. Cette fonctionnalité est pas vraiment
# Recommandé, car je pense qu'il est préférable de le faire par les événements.
#
# D'autres codes pour la commande d'événement Script qui peut être utile sont:
#
# Reset_quest (quest_id)
# Quest_id: l'ID d'entier de la quête que vous souhaitez accéder.
# Cette ré-initialiser la recherche, ce qui signifie tous les progrès de quête pour
# Date sera perdu
#
# Delete_quest (quest_id)
# Désactive la quête et réinitialise
#
# Conceal_quest (quest_id)
# Désactive la quête afin de ne pas apparaître dans la scène, mais les progrès
# Est enregistré
#
# Reveal_quest (quest_id)
# Active ou réactive la quête. Cette commande est nécessaire si
# MANUAL_REVEAL à la ligne 284 est vrai ou il a déjà été
# Caché. Sinon, il suffit simplement d'opérer sur la quête
#
# Change_quest_access (symbole:)
#: Symbole doit être l'une des six options (inclure le colon!):
#: Disable - empêche l'accès à la scène de la quête (gris dans le menu)
#: Enable - permet d'accéder à la scène de quête
#: Disable_menu - cela supprime l'option de recherche dans le menu
#: Enable_menu - ce qui ajoute l'option de recherche au menu
#: Disable_map - ce qui empêche l'accès par la clé de la carte
#: Enable_map - ce qui permet un accès par clé de la carte
#
# Change_quest_background( «bg_filename», bg_opacity, bg_blend_type)
# Bg_filename: le nom du fichier de l'image pour l'arrière-plan
# Le dossier Images
# Bg_opacity: l'opacité du graphique de fond. Si
# Exclus, la valeur par défaut à la valeur du paramètre à la ligne 434.
# Bg_blend_type: le type de l'image de fond de mélange. Si
# Exclus, la valeur par défaut à la valeur du paramètre à la ligne 437.
#
# change_quest_windows ( "windowskin_filename", le ton, l'opacité)
# Windowskin_filename: le nom de la bannière de la fenêtre dans la
# dossier Graphics System 
# Opacité: l'opacité des fenêtres. Si exclus,
# La valeur par défaut à la valeur du paramètre à la ligne 423.
# Blend_type: le blend_type des fenêtres. Si exclus,
# La valeur par défaut à la valeur du paramètre à la ligne 426.
#
# En outre, il y a quelques codes qui peuvent être utilisés dans la commande d'un script
# Branchement conditionnel. Je note ici que tous ces éléments sont en option. Vous pourriez
# interrupteur utilisation et les contrôles variables et les progrès de la quête du moniteur uniquement par
# événements. Cependant, ces commandes font un peu plus facile et ils sont:
#
# Quest_revealed? (Quest_id)
# Quest_id: l'ID d'entier de la quête que vous souhaitez accéder.
# Ceci est satisfaite si la quête a été activé.
#
# Quest_complete? (Quest_id)
# Ceci est satisfaite si tous les objectifs principaux de la recherche sont complets
#
# Quest_failed? (Quest_id)
# Ceci est satisfait si tout premier objectif de la quête a échoué
#
# Quest_rewarded? (Quest_id)
# Ceci est satisfait si vous avez modifié le statut de récompense pour vrai.
#
# Objective_revealed ? (Quest_id, objective_id_1 ... objective_id_n)
# Objective_id_1, ..., objective_id_n: une liste des ID de la
# objectifs que vous souhaitez opérer. Il peut être aussi peu qu'une ou comme
# Autant que chacun d'entre eux.
# Ceci est satisfait si les objectifs énumérés ont été révélés
#
# Objective_active ? (Quest_id, objective_id_1 ... objective_id_n)
# Ceci est satisfaite si tous les objectifs énumérés sont révélés et
# Ni complètes, ni échoué.
#
# Objective_complete? (Quest_id, objective_id_1 ... objective_id_n)
# Ceci est satisfaite si tous les objectifs énumérés ont été achevés
#
# Objective_failed ? (Quest_id, objective_id_1 ... objective_id_n)
# Ceci est satisfaite si tous les objectifs énumérés ont été omis
#
# Si vous voulez appeler la scène Quête d'un événement, vous utilisez ce qui suit
# Code dans un script d'appel:
#
# call_quest_journal
# Call_quest_journal (quest_id)
# Quest_id: ID de la quête que vous voulez ouvrir la scène sur
#
# Si vous ne spécifiez pas de quest_id (ligne 198), alors il sera tout simplement ouvrir la
# Scène comme il le ferait normalement. Si vous spécifiez un quest_id (ligne 199), alors il
# Ouvrira la scène sur cette quête aussi longtemps qu'il a été révélé et il est
# Normalement accessible via le menu de quête.
#
# Enfin, le chemin par défaut de ce script fonctionne est que les quêtes automatiquement
# Complète ou échouer en fonction de l'état des principaux objectifs. Cependant, vous
# Peut le mettre pour qu'il n'y ait pas d'objectifs premiers, dans ce cas, vous ne pouvez
# Complète, échouent, ou (re) activer une quête manuellement à travers le code suivant
# Dans un appel de script:
#
# Manually_complete_quest (quest_id)
# Quest_id: ID de la quête que vous souhaitez manuellement complète
# Manually_fail_quest (quest_id)
# Quest_id: ID de la quête que vous voulez à l'échec manuellement
# Manually_activate_quest (quest_id)
# Quest_id: ID de la quête que vous voulez activer manuellement
# ==============================================================================
 
$imported ||= {}
$imported[:"MA_QuestJournal_1.0"] = true
$imported[:"MA_QuestJournal_1.0.1"] = true
 
#==============================================================================
# *** QuestData
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#  Ce module contient toutes les données de configuration pour le journal de quête
#==============================================================================
 
module QuestData
  #\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  #  BEGIN éditable Région A
  #||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
  #  ACCÈS MENU - Si cela est vrai, vous pouvez accéder au journal de quête à travers une commande 
  # dans le menu. Si elle est fausse, il n'y aura pas une telle commande.
  MENU_ACCESS = true
  #  INDEX MENU - D'ACCES MENU est vrai, ce qui détermine où il apparaît
  MENU_INDEX = 4
  #  ACCESS MAP - Si cela est vrai, cela vous permet d'accéder au journal de quête par 
  # appuyant sur une touche sur la carte.
  MAP_ACCESS = true
  #  MAP_BUTTON - Si MAP_ACCESS est vrai, ce qui détermine quel bouton appelle la
  # Quête Journal
  MAP_BUTTON = :Q
  # OPEN_TO_LAST_REVEALED_QUEST - Si cela est vrai, alors la première fois que vous ouvrez le Journal 
  # quête après avoir révélé une nouvelle quête, il sera ouvert à la nouvelle quête.
  OPEN_TO_LAST_REVEALED_QUEST = true
  #  OPEN_TO_LAST_CHANGED_QUEST - Si cela est vrai , alors le Journal Quest ouvrir
  # La dernière quête dont le statut objectif a changé .
  OPEN_TO_LAST_CHANGED_QUEST = false
  # FENÊTRE WIDTH - La largeur, en pixels, de la fenêtre de liste
  LIST_WINDOW_WIDTH = 192
  # TYPES  DONNÉES DE BASE - Cela vous permet de configurer d'autres types de données. Juste 
  # incluent un signal d'identification dans le tableau. Ensuite, vous devez donner 
  # chaque signal une icône (dans le hachage ICONS à la ligne 322) et un texte de signal (dans 
  # le réseau de VOCAB à la ligne 333, mais il peut être une chaîne vide). Ensuite, vous 
  # pouvez définir les données lui-même lors de la configuration des quêtes en ajoutant simplement un: 
  # q [symbole] = "" 
  # ligne à la quête. Vous aurez également besoin d'inclure le type de données quelque part dans 
  # la disposition des données à la ligne 306. Comme exemple de cela, j'ai inclus: client 
  # et: emplacement par défaut. Vous pouvez CTRL + F pour rien dans cette section avec 
  # un de ces symboles (hors :) et vous y besoin d'ajouter quelque chose 
  # pour tous les nouveaux types de données que vous ajoutez.
  BASIC_DATA_TYPES = [:client, :location]
  # DONNÉES DE BASE LARGEUR - Ceci détermine combien d'espace, en pixels, est donné à 
  # tout type de données de base que vous définissez dans la fenêtre de données.
  BASIC_DATA_WIDTH = 240
  # ACTIVITÉ CONCURRENT - Si cela est vrai, alors quand dans la scène Quête Journal, vous pouvez passer 
  # catégories ou faire défiler la liste des quêtes en même temps. Si 
  # false, vous devez d'abord sélectionner une catégorie avant de pouvoir commencer 
  # faire défiler la liste de quête.
  CONCURRENT_ACTIVITY = true
  # HIDE CATEGORIE CURSOR - Si cela est vrai, alors la fenêtre Catégorie aura pas un 
  # curseur et au lieu simplement mettre en évidence la catégorie sélectionnée.
  # Ceci est mieux quand ACTIVITÉ CONCURRENT est vrai.
  HIDE_CATEGORY_CURSOR = true
  # SHOW_QUEST_ICONS - Si cela est vrai, alors l'icône que vous choisissez pour chaque quête
  # Être affiché à gauche de son nom dans la fenêtre Liste des quêtes
  SHOW_QUEST_ICONS = true
  # MANUEL Reveal - Si false, quêtes sera révélé au moment où vous 
  # premier révéler, complet, ou ne l'objectif. Si cela est vrai, vous 
  # besoin de révéler spécifiquement chaque quête via un appel de script distinct: 
  # révèle la quête (quête id)
  MANUAL_REVEAL = false
  # DATA LAYOUT - Ce contrôle la façon dont la fenêtre de quête expose toutes 
  # les données pertinentes. Si vous définissez l'une des entrées comme un tableau, alors toute 
  # des commandes, il sera établi en même y. A l'exception de: ligne, 
  # aucune des commandes sera établie si la quête est pas réglé pour avoir que 
  # données particulières. Les symboles sont: 
  #: Ligne - Dessine une ligne horizontale à travers la fenêtre. 
  #: Nom - Dessine le nom de la quête 
  #: niveau - Dessine le niveau de la quête 
  #: bannière - Dessine la bannière pour la quête 
  #: client - Dessine le client défini dans la quête (données de base) 
  #: emplacement - Dessine l'emplacement défini dans la quête (données de base) 
  #: Description - Tirages de la quête Description de 
  #: objectifs - Dessine tous les objectifs de la quête qui ont été révélées 
  #: récompenses - Dessine ce que les récompenses ont été mis en 
  # 
  # Vous aurez aussi besoin d'ajouter un entrée pour toute nouvelle BASIC_DATA que vous placez dans 
  # TYPES dE DONNÉES dE BASE à la ligne 264. 
  # 
  # Rappelez-vous de placer une virgule après chaque entrée. A noter également que ce n'est que la mise en page par défaut 
  #. Vous pouvez définir une mise en page différente pour toute quête, et quand 
  # visualiser cette quête, il sera la mise en page personnalisée qui est montré.
  DATA_LAYOUT = [
    [:line, :name, :level],
    :banner,
    :client,
    :location,
    :description,
    :objectives,
    [:line, :rewards],
    :line,
  ] # <= Ne touchez pas.
   # ICONS - C'est l'endroit où vous avez installé plusieurs des icônes utilisées dans le script. le
   # But de chacun est indiqué à côté de lui. En outre, si vous faites une coutume
   # catégories, vous devez leur donner une icône en plaçant une ligne comme
   # autres. Donc, si la nouvelle catégorie personnalisée est: la romance alors vous aurait besoin de
   # Défini comme ceci:
   # Roman: 107,
  ICONS = {
    all:         226, # L'icône de la catégorie Toutes les Quêtes
    active:      236, # L'icône de la catégorie Quêtes active
    complete:    238, # L'icône de la catégorie complète Quêtes
    failed:      227, # L'icône de la catégorie Quêtes Échec
    client:      121, # L'icône de données client. Si aucune voulait, mis à 0
    location:    231, # L'icône de données de localisation. Si aucune voulait, mis à 0
    reward_gold: 262, # L'icône pour les récompenses d'or. Si aucune voulait, mis à 0
    reward_exp:  117, # L'icône de récompenses exp. Si aucune voulait, mis à 0
  } # <= Ne touchez pas.
   # VOCABULAIRE - Cela vous permet de choisir quelques-uns des mots utilisés dans la scène de quête
  VOCAB = {
    # Étiquette de menu: Le nom de la commande dans le menu si ACCESS MENU est vrai
    menu_label:       "Quests",
    # étiquette de scène : L'étiquette en haut de la scène. Si elle est vide, pas de fenêtre
    scene_label:      "Journal de Quest",
    # Description: Le titre pour identifier la description
    description:      "Description",
    # objectifs: Le titre pour identifier les objectifs
    objectives:       "Objectives",
    # balle objectif: La balle qui apparaît à la gauche de chaque 
    # objectif. Si% d est inclus, il affiche l'ID d'objectifs.
    objective_bullet: "?",
    # récompenses: Le titre pour identifier les récompenses.
    rewards:          "Récompenses",
    # récompenser montant: Pour objets de récompense, ceci est le texte pour montrer la quantité. 
    # Il devrait inclure% d pour montrer la quantité.
    reward_amount:    "x%d",
    # récompenser l'or: texte pour identifier les récompenses d'or
    reward_gold:      "€",
    # récompense exp: texte pour identifier les récompenses exp
    reward_exp:       "",
    # niveau: Si LEVEL_ICON est 0, ceci est le texte qui précède le niveau
    level:            "Rang: ",
    # Situation: L'étiquette de texte pour l'emplacement de quête
    location:         "",
    # Lieu: L'étiquette de texte pour le client de quête
    client:           "",
  } # <= Ne touchez pas. 
  # CATEGORIES - Ce tableau vous permet de définir les catégories sont disponibles 
  # dans la scène de Quest. Les catégories par défaut sont: tous,: actif,: complet, 
  # et: a échoué, et leurs noms sont explicites. Vous pouvez ajouter des 
  # catégories, mais notez que vous devez vous assurer que chaque nouvelle 
  # catégorie a une icône située dans le hachage ICONS, ainsi qu'un jeu d'étiquettes dans le hachage 
  # CATEGORIE VOCAB (si vous utilisez MONTRER CATÉGORIE LABEL). Il est également conseillé 
  # pour lui donner un type de tri, sauf si vous êtes bien avec elle étant triés par ID 
  #, comme cela est par défaut.
  CATEGORIES = [:all, :active, :complete, :failed]
  #  MONTRER CATEGORIE LABEL - Cela vous permet de choisir d'afficher ou non le nom 
  # de la catégorie sélectionnée. Si cela est vrai, il choisira le nom sur 
  # de la table de hachage CATEGORIE VOCAB.
  SHOW_CATEGORY_LABEL = true
  #  CATEGORIE LABEL_IN_SAME_WINDOW - Si SHOW_CATEGORY_LABEL est vrai, alors ce 
  # Options vous permet de choisir si l'étiquette est affichée dans la même fenêtre que 
  # les icônes de catégorie ou dans une fenêtre séparée ci-dessous. true = même fenêtre.
  CATEGORY_LABEL_IN_SAME_WINDOW = true
  #  CATEGORIE VOCABULAIRE - Si SHOW_CATEGORY_LABEL est vrai, ce hachage vous permet de définir la 
  # étiquette pour chaque catégorie. Pour toutes les catégories personnalisées que vous créez, vous 
  # besoin d'ajouter une ligne pour chaque ci-dessous et dans le même format: #: category => "label", 
  # Ne pas oublier d'ajouter la virgule à la fin de chaque ligne.
  CATEGORY_VOCAB = {
    :all =>      "Toutes les quêtes",      # The label for the :all category
    :active =>   "Quêtes actives",   # The label for the :active category
    :complete => "Quêtes complètes", # The label for the :complete category
    :failed =>   "Quêtes échouées",   # The label for the :failed category
  } # <= Ne touchez pas. 
  # SORT TYPE - Ce hachage vous permet de choisir comment chaque catégorie est triée. 
  # Pour chaque catégorie, par défaut ou personnalisé, vous pouvez définir une autre méthode de tri 
  # Il y a sept options à choisir: 
  #: id - Les quêtes sont triées de la plus faible à ID le plus élevé 
  #: alphabet - Les quêtes sont triés par ordre alphabétique 
  # : niveau - les quêtes sont triés du plus bas au plus haut niveau 
  #: révèlent - les quêtes sont triées de la plus récemment révélé sur. 
  # Chaque fois qu'une nouvelle quête est révélée, il sera au sommet. 
  #: Changement - Les quêtes sont classifiées de celui dont le statut le plus récent 
  # changé sur. Ainsi, chaque fois qu'un objectif est modifié, cette quête 
  # sera jeté vers le haut. 
  #: Toutes - Les quêtes sont triés du plus récemment terminé sur. 
  # Chaque fois qu'une quête est terminée, il sera jeté vers le haut. 
  #: Échec - Les quêtes sont triés du plus récemment échoué sur. 
  # Chaque fois qu'une quête échoue, il sera jeté vers le haut.
  #
  # De plus, vous pouvez mettre _r à la fin de l'une des options de tri et 
  # allez inverser l'ordre. Ainsi, par exemple, si la méthode de tri pour une catégorie 
  # est: alphabet r, les quêtes s'affichera de Z-A 
  #: échoué - Les quêtes sont triées de la plus récemment échoué sur. 
  # Chaque fois qu'une quête échoue, il sera jeté vers le haut.
  SORT_TYPE = {
    :all =>      :id,       # Sort type for the All Quests category
    :active =>   :change,   # Sort type for the Active Quests category
    :complete => :complete, # Sort type for the Complete Quests category
    :failed =>   :failed,   # Sort type for the Failed Quests category
  } # <= Ne touchez pas. 
  # WINDOW PEAU - La peau de fenêtre pour chaque fenêtre dans la scène Quest. Il doit 
  # se référer à un graphique dans le dossier système de Graphics. Si elle est définie sur false, 
  # il utilisera tout ce qui est windowskin par défaut. Si vous utilisez un script qui 
  # permet au joueur de choisir le windowskin, false est la valeur recommandée.
  WINDOWSKIN = false
  #  WINDOW TO - La tonalité de chaque fenêtre. Il doit être un tableau sous la forme: TONE 
  # WINDOW = [rouge, vert, bleu, gris] 
  # gris peut être exclue, mais les trois autres doivent être présents. Si vous définissez cette 
  # valeur à false, les fenêtres ont tout ce ton est par défaut.
  WINDOW_TONE = false
  # WINDOW OPACITY - L'opacité des fenêtres de la scène Quest. Si la valeur 
  # false, il utilisera l'opacité par défaut pour les fenêtres.
  WINDOW_OPACITY = false
  # BG_PICTURE - Ceci est une chaîne faisant référence à une image dans le dossier Image
  # Graphics. Si réglé sur "", alors il n'y aura pas d'image. Dans le cas contraire, il
  # Affiche l'image sélectionnée sous les fenêtres mais au-dessus de la carte en
  # La scène Quest.
  BG_PICTURE = ""
  # BG OPACITY - Cela vous permet de définir l'opacité de l'image de fond, 
  # si vous avez sélectionné.
  BG_OPACITY = 255
  # BG_BLEND_TYPE - Cela vous permet de définir le type de l'arrière-plan de mélange
  # Photo, si vous avez sélectionné.
  BG_BLEND_TYPE = 0
  # DESCRIPTION_IN_BOX - Ceci est une option graphique, et il vous permet de
  # Choisir si la description doit être affiché dans une boîte.
  DESCRIPTION_IN_BOX = true
  #  LEVEL_ICON - This sets how levels are shown. If set to an integer, then it
  # will draw the same icon numerous times up to the level of the quest. Ie. If
  # the level's quest is 1, then the icon will only be drawn once, but if the
  # level's quest is 4, it will be drawn 4 times. LEVEL_ICONS_SPACE determines
  # the space between them. If you set LEVEL_ICON to 0, however, then it will
  # instead draw a signal for the level, corresponding to that index in the
  # LEVEL_SIGNALS array. If the LEVEL_SIGNALS array is empty, then it will just
  # draw the integer for the level. Finally, LEVEL_ICON can also be an array of
  # integers, in which case the level will be represented only by the icon set
  # which corresponds to it in the array.
  LEVEL_ICON = 125
  # NIVEAU ICÔNES SPACE - Si ICON LEVEL est un entier, cela est la quantité de 
  # espace entre chaque fois que l'icône est dessinée.
  LEVEL_ICONS_SPACE = 16
  #  SIGNAUX DE NIVEAU - Si LEVEL_ICON est 0, ce qui vous permet de définir quelle chaîne 
  # devrait être le signal pour chaque niveau. Si ce tableau est vide, alors il sera juste 
  # tirer l'entier de niveau. C'est à dire. si la quête est de niveau 4, il attirera 4.
  LEVEL_SIGNALS = ["F", "E", "D", "C", "B", "A", "S"]
  #  COLOURS - Cela vous permet de modifier la couleur des différents aspects de la scène 
  # quête. Chacun peut être défini dans l'une des trois façons: 
  #: symbole - Si vous utilisez un symbole, la couleur sera le résultat de l'appel 
  # la méthode du même nom. Par exemple, si vous définissez quelque chose à 
  #: system_color, il définir la couleur du résultat de la méthode de la couleur 
  # système Windows Base. 
  # Entier - Si vous réglez la couleur à un nombre entier, il prendra sa 
  # couleur dans la palette de windowskin, tout comme l'utilisation \ c [x] dans les messages. 
  # Array - Vous pouvez également définir les valeurs de rgba directement avec un tableau dans le format 
  #: [rouge, vert, bleu, alpha]. alpha peut être exclue, mais vous devez 
  # avoir des valeurs pour le rouge, le vert et le bleu.
  COLOURS = {
    # Actif: Ceci définit la couleur pour les quêtes actives dans la liste et le nom
    # De la quête active lorsque apparaît dans la fenêtre de données.
    active:           :normal_color,
    # Complète: Ceci définit la couleur pour les quêtes dans la liste et le
    # Nom de la quête terminée lorsque apparaît dans la fenêtre de données.
    complete:         3,
    # A échoué: Ceci définit la couleur pour les quêtes échoué dans la liste et le nom
    # De la quête a échoué lorsque affiché dans la fenêtre de données.
    failed:           10,
    # Ligne: Ceci définit la couleur des lignes ou des boîtes dessinée dans la scène de quête
    line:             :system_color,
    # Ligne ombre: Ceci définit la couleur de l'ombre pour les lignes ou les boîtes dessinée 
    # dans la scène de quête
    line_shadow: [0, 0, 0, 128],
    # Label scène: Ceci définit la couleur de l'étiquette de la scène, se montre
    scene_label:      :system_color,
    # Catégorie label: Ceci définit la couleur pour la catégorie étiquette, si montré
    category_label:   :normal_color,
    #le signal de niveau : Ceci définit la couleur pour le signal de niveau, si montré
    level_signal:     :normal_color,
    # objective_bullet: Ceci définit la couleur pour les objectifs; si mis à
    #: Maqj_objective_color, il reflétera l'état d'achèvement du
    # Objectif, mais vous pouvez le changer à autre si vous préférez quelque chose
    objective_bullet: :maqj_objective_color,
    # Montant de la récompense: La couleur de la quantité de l'article, lorsqu'elle est présentée
    reward_amount:    :normal_color,
    # rubrique: La couleur de toutes les rubriques dans le script, comme "Description"
    heading:          :system_color,
    # étiquette de base: Pour les données de base, comme client, la couleur de l'étiquette
    basic_label:      :system_color,
    # valeur de base: Pour les données de base, comme client, la couleur de la valeur
    basic_value:      :normal_color,
  } # <= Ne touchez pas. 
   # RUBRIQUE ALIGN - Cela définit l'alignement pour les aspects énumérés. 0 est à gauche; 
   # 1 est Centre; 2 est droit
  HEADING_ALIGN = {
    description: 0, # Alignement de la tête Description
    objectives:  0, # Alignement de la rubrique Objectifs
    rewards:     1, # Alignement de la rubrique Récompenses
    level:       2  # Alignement en montrant le niveau
  } # <= Do not touch.
  #````````````````````````````````````````````````````````````````````````````
  #    Aspects Font 
  # 
  # Toutes les options suivantes (noms de police, la TAILLES, FONTBOLDS et 
  # POLICES italiques) vous permettent de modifier les polices utilisées pour divers aspects de la 
  # scène. Le seul qui y est mentionnée par défaut est :, normale qui est la 
  # police utilisée par défaut pour toute la scène. Cependant, vous pouvez modifier les polices 
  # pour presque tous les aspects - tout ce que vous devez faire est d'ajouter une ligne comme ceci:
  #
  #    description: valeur,
  #
  # Et cela va changer cet aspect de la police lors de l'élaboration de la description. le
  # symboles suivants sont disponibles pour le changement:
  #
  #   normal:         La police par défaut utilisée pour chaque partie de la scène
  #   list:           La police utilisée dans la fenêtre Liste
  #   scene_label:    Tla police utilisée lors de l'élaboration du label Scène, si montré
  #   category_label: The font used when drawing the Category Label, if shown
  #   heading:        The font used when drawing any headings, like "Description"
  #   name:           The font used when drawing the quest name in data window
  #   description:    The font used when drawing the Description
  #   objectives:     The font used when drawing the objectives
  #   rewards:        The font used when drawing the rewards
  #   client:         The font used when drawing the client
  #   location:       The font used when drawing the location
  #
  # Pour l'un d'eux, vous devez définir une valeur. Qu'est-ce que la valeur peut être dépend
  # Sur lequel la police aspect que vous modifiez et est décrit ci-dessous, mais pour tout
  # De les mettre à la fausse signifie qu'il sera tout simplement utiliser la valeur par défaut
  #
  # For any that you add, remember that you must put a comma after the value.
  #````````````````````````````````````````````````````````````````````````````
  #  FONTNAMES - Here you can change the font used for any of the various
  # options. It can take any of the following types of values:
  #     false    - The default font will be used
  #     "String" - The font with the name "String" will be used.
  #     [Array]  - The array must be in the form: ["String1", "String2", ...]
  #               The font used will be the first one in the array that the
  #               player has installed.
  #
  #  EXAMPLES:
  #
  #    normal:      false,
  #     La police utilisée pour les aspects non altérées de la scène est l'étiquette 
  # scène de police par défaut: "algérien", 
  # La police utilisée pour le label de Scène sera algérienne. 
  # Description: [ "Cambria", "Times New Roman"], 
  # La police utilisée lors de l'élaboration de la description sera Cambria si le joueur 
  # a installé Cambria. Si le joueur n'a pas de Cambria 
  # installé, la police utilisée sera Times New Roman
  FONTNAMES = {
    normal: false, # normal: the default font name
  } # <= Do not touch.
  #  FONTSIZES - Here you can change the size of the font. There are two types
  # of values you can set:
  #    false   - The default fontsize will be used
  #    Integer - The fontsize will be equal to the value of the Integer.
  #  
  # For everything but the label windows, this shouldn't exceed 24, since that
  # is the line_height. However, for scene_label: and category_label:, the size
  # of the window will be adjusted to whatever size you set the font.
  FONTSIZES = {
    normal:         false, # normal: default font size
    scene_label:    28,    # scene_label: fontsize for the Scene Label window
    category_label: 24,    # category_label: fontsize for Category Label window
  } # <= Do not touch.
  #  FONTBOLDS - Here you can set whether the font will be bolded. You can set
  # it to either false, in which case it will not be bolded, or true, in which
  # case it will be bolded.
  FONTBOLDS = {
    scene_label:  true, # scene_label: whether font is bold for Scene Label
    heading:      true, # heading: whether font is bold for the headings
    level_signal: true, # level_signal: whether font is bold for level
  } # <= Do not touch.
  #  FONTITALICS - Here you can set whether the font will be italicized. You
  # can set it to either false, in which case it will not be italicized, or
  # true, in which case it will be italicized.
  FONTITALICS = {
  }
  #||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
  #  END Editable Region A
  #//////////////////////////////////////////////////////////////////////////
  CATEGORIES = [:all] if !CATEGORIES || CATEGORIES.empty?
  VOCAB.default = ""
  ICONS.default = 0
  CATEGORY_VOCAB.default = ""
  SORT_TYPE.default = :id
  COLOURS.default = :normal_color
  HEADING_ALIGN.default = 0
  FONTNAMES.default = false
  FONTSIZES.default = false
  FONTBOLDS.default = false
  FONTITALICS.default = false
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Setup Quest
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def self.setup_quest(quest_id)
    q = { objectives: [] }
    case quest_id
    #\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
    #  BEGIN Editable Region B
    #||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
    #   Configuration Quest
    #
    # Ceci est l'endroit où vous configurez les données pour toutes les quêtes dans le jeu. Tandis que
    # Il peut sembler compliqué, je vous invite à faire attention et, une fois que vous obtenez
    # Le coup de lui, je suis sûr qu'il va rapidement devenir une seconde nature.
    #
    # Chaque quête unique devrait être mis en place dans le format suivant, mais la note
    # Que si vous n'êtes pas tout ce paramètre pour un aspect particulier, vous pouvez
    # Supprimer cette ligne. Quoi qu'il en soit, voici ce que chaque quête devrait ressembler, avec
    # Les valeurs sur la gauche étant les valeurs par défaut si vous ne les définissez pas:
    #
    #  when quest_id
    #   q[:name]              = "??????"
    #   q[:icon_index]        = 0
    #   q[:level]             = 0
    #   q[:description]       = ""
    #   q[:banner]            = ""
    #   q[:banner_hue]        = 0
    #   q[:objectives][0]     = ""
    #   q[:objectives][1]     = ""
    #   q[:objectives][2]     = ""
    #   q[:objectives][n]     = ""
    #   q[:prime_objectives]  = [0, 1, 2, n]
    #   q[:custom_categories] = []
    #   q[:client]            = ""
    #   q[:location]          = ""
    #   q[:rewards]           = []
    #   q[:common_event_id]   = 0
    #   q[:layout]            = false
    #
    #  Pour chaque ligne, à l'exception des objectifs, il est seulement la valeur
    # Le droit du signe égal que vous aurez besoin de changer. Maintenant je vais
    # Expliquer chaque ligne:
    #
    # when quest_id
    #    quest_id - est un entier de votre choix, ce qui est la façon dont vous
    # Référence une quête afin de faire avancer et de faire autre chose. Il
    # Doit être unique pour chaque quête; si vous utilisez 1 pour la première quête,
    # Vous ne pouvez pas utiliser 1 pour toute autre quête.
    #
    #   q[:name]              = ""
    #     "" - Cette ligne définit le nom de la quête qui montre dans la quête
    # Liste.
    #  
    #   q[:icon_index]        = 0
    #     0  - Cette ligne définit l'icône à utiliser pour cette quête. Il montrera 
    # à la gauche du nom de l'invité dans la Liste des quêtes.
    #
    #   q[:level]             = 0
    #     0  - Cette ligne définit le niveau de la quête. Si 0 , aucun niveau sera
    # Montré . Voir les options de niveau de lignes 441-458 pour plus de détails .
    #  
    #   q[:description]       = ""
    #    "" - Cette ligne définit la description de la quête. Vous pouvez utiliser un message
    # codes dans cette chaîne , mais si vous utilisez " " alors vous devez utiliser
    # \\ Pour identifier les codes et pas seulement \ . C'est à dire. Il est \\ v [x] , pas \ v [x]
    #
    #   q[:objectives][0]     = ""
    #   q[:objectives][1]     = ""
    #   q[:objectives][2]     = ""
    #   q[:objectives][n]     = ""
    #  Les objectifs sont légèrement différents. Remarqué que, après q [objectifs] sur 
    # chaque ligne il y a un nombre entier entre crochets: 
    # [n] - Ceci est l'ID de l'objectif, et n doit être un entier. No 
    # quête peut avoir plus d'un objectif avec le même ID. Ceci est 
    # comment vous identifier quel objectif vous voulez révéler, complète ou 
    # échouez. Cela dit, vous pouvez faire autant d'objectifs que vous voulez, comme 
    # longtemps que vous leur donnez tous les ID distincts. Les ID doivent être en 
    # séquence aussi, donc il ne devrait pas être un q [objectifs] [5] si 
    # il n'y a pas q [objectifs] [4]. 
    # "" - Ceci est le texte de l'objectif. Vous pouvez utiliser des codes de message dans 
    # cette chaîne, mais si vous utilisez "" alors vous aurez besoin d'utiliser 
    # \\ pour identifier les codes et pas seulement \. Ie: Il est \\ v [x], pas \ v [x] #
    #   q[:prime_objectives]  = [0, 1, 2, n]
    #     [0, 1, 2, n] - Ce tableau détermine quels objectifs doivent être
     # Achevé pour que la quête soit complète. En d'autres termes,
     # Tous les objectifs avec les ID de ce tableau doivent être
     # Complet pour la quête pour être complète. Si l'un d'eux est
     # A échoué, la quête sera échoué. Si vous supprimez cette ligne
     # Tout à fait, tous les objectifs sont premiers. Si vous réglez cette option sur [],
     # Puis la quête ne sera jamais automatiquement terminée ou a échoué et
     # Vous devez utiliser les options manuelles décrites aux lignes 208-219.
    #
    #   q[:custom_categories] = []
    #     [] - Cela vous permet de définir un éventail de catégories personnalisées pour cette 
    # quête, ce qui signifie que cette quête sera affiché dans chacune de ces 
    # catégories si vous l'ajoutez au tableau CATÉGORIES à la ligne 370. 
    # Notez que chaque catégorie que vous faites doit être identifié par un unique, 
    #: symbole, et vous devez configurer tous les détails des catégories pour ce 
    #: symbole.
    #
    #   q[:banner]            = ""
    #     "" - Cette ligne définit la bannière à utiliser pour une quête. Il doit être
    # Nom de l'image dans le dossier Images de Graphics.
    #
    #   q[:banner_hue]        = 0
    #     0 - La teinte de la bannière graphique, si elle est utilisée
    #
    #   q[:client]            = ""
    #     "" - Cette ligne définit le nom du client pour cette quête. (donnee de base)
    #
    #   q[:location]          = ""
    #     "" - Cette ligne définit l'emplacement de la quête. (donnee de base)
    #
    #   q[:rewards]           = []
    #    [] - Dans ce tableau, vous pouvez identifier notamment les récompenses qui seront
    # arriver. Chaque récompense devrait être dans son propre réseau et peut être l'un des
    # le suivant:
    #          [:item, ID, n],
    #          [:weapon, ID, n],
    #          [:armor, ID, n],
    #          [:gold, n],
    #          [:exp, n],
    #       où ID est l'ID de l'élément, l'arme ou l'armure que vous voulez 
    # distribué et n est la quantité de l'élément, arme, armure, or, 
    # ou de l'expérience que vous voulez distribué. En outre, vous pouvez également définir 
    # texte à apparaître dans le format de récompenses, mais qui ne serait pas 
    # distribué automatiquement. Vous auriez besoin de spécifier ce type de texte 
    # récompense dans le format suivant: 
    # [: string, icon_index, "string", "vocab"], 
    # où l'index de l'icône est l'icône pour être montré, "string" est ce que vous 
    # apparaîtrait comme la quantité, et "vocab" est ce qui apparaîtra comme une étiquette 
    # entre l'icône et le montant.
    #      
    #
    #   q[:common_event_id]   = 0
    #     0  - Cela vous permet d'appeler immédiatement l'événement commun identifiés
    # Et automatiquement une fois la quête terminée. Il est en général
    # Pas recommandé, comme pour la plupart des quêtes que vous devriez le contrôlez
    # Assez pour ne pas avoir besoin de cette fonctionnalité.
    #
    #   q[:layout]            = false
    #     false - La valeur par défaut pour ce qui est faux , et quand il est fausse, le
    # Mise en page pour la quête sera héritée de la valeur par défaut que vous définissez à
    # 302. Cependant, vous pouvez également donner la quête de sa propre mise en page - la
    # Le format serait le même que celui défini pour la valeur par défaut à la ligne 307 .
    #  
    # Template:
    #
    #  Lorsque vous effectuez une nouvelle quête , je recommande que vous copiez et collez le
    # Suivant modèle, la suppression selon les lignes que vous ne voulez pas modifier .
    # Naturellement, vous devez retirer le # ~ . Vous pouvez le faire en mettant en évidence
    # La chose entière et en appuyant sur CTRL + Q :
# ~ when 2 # < = RAPPEL: La Quête ID DOIT être unique
#~       q[:name]              = "??????"
#~       q[:icon_index]        = 0
#~       q[:level]             = 0
#~       q[:description]       = ""
#~       # RAPPEL: Vous pouvez faire autant d'objectifs que vous le souhaitez, mais chacun doit
# ~      # Ont un identifiant (ID) unique.
#~       q[:objectives][0]     = ""
#~       q[:objectives][1]     = ""
#~       q[:objectives][2]     = ""
#~       q[:prime_objectives]  = [0, 1, 2]
#~       q[:custom_categories] = []
#~       q[:banner]            = ""
#~       q[:banner_hue]        = 0
#~       q[:client]            = ""
#~       q[:location]          = ""
#~       q[:rewards]           = []
#~       q[:common_event_id]   = 0
    when 1 # Quest 1 - SAMPLE QUEST
      q[:name]              = "misson infiltration"
      q[:level]             = 1
      q[:icon_index]        = 7
      q[:description]       = "infiltre la base rebelle et volet le prototipe de chasseur."
      q[:objectives][0]     = "prendre l'assenceur 2 et monté au 3eme"
      q[:objectives][1]     = "passet les controle"
      q[:objectives][2]     = "piraté les basse de donné"
      q[:objectives][3]     = "fuire avec les chasseur"
      q[:prime_objectives]  = [1, 2]
      q[:custom_categories] = []
      q[:banner]            = ""
      q[:banner_hue]        = 0
      q[:client]            = "Magort"
      q[:location]          = "basse rebelle"
      q[:common_event_id]   = 0
      q[:rewards]           = [
        [:item, 1, 3],
        [:gold, 500],
      ]
      q[:layout]            = false
    #||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
    #  END Editable Region B
    #//////////////////////////////////////////////////////////////////////
    end
    q
  end
end
 
#==============================================================================
# *** DataManager
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#  Summary of Changes:
#    aliased method - self.extract_save_contents
#==============================================================================
 
class << DataManager
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Extract Save Contents
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  alias maqj_extractsavecons_2kw5 extract_save_contents
  def extract_save_contents(*args, &block)
    maqj_extractsavecons_2kw5(*args, &block) # Call Original Method
    if $game_party.quests.nil?
      $game_party.init_maqj_data
      $game_system.init_maqj_data
    end
  end
end
 
#==============================================================================
# ** MAQJ_SortedArray
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#  This module mixes in to an array to maintain the sorted order when inserting
#==============================================================================
 
module MAQJ_SortedArray
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Insert to Array
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def maqj_insert_sort(el, &block)
    index = bsearch_index(el, 0, size, &block)
    index ? insert(index, el) : push(el)
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Retrieve Index from Binary Search
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def bsearch_index(el, b = 0, e = size, &block)
    return bsearch_index(el, b, e) { |a,b| a <=> b } if block.nil?
    return b if b == e # Return the discovered insertion index
    return if b > e
    m = (b + e) / 2    # Get Middle
    block.call(el, self[m]) > 0 ? b = m + 1 : e = m 
    bsearch_index(el, b, e, &block) 
  end
end
 
#==============================================================================
# ** Game_Quest
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#  This class holds all instance data for a quest
#==============================================================================
 
class Game_Quest
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Public Instance Variables
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  attr_reader   :id                  # Unique identifier for this quest
  attr_reader   :name                # The name to be shown for the quest
  attr_reader   :level               # The level of difficulty of the quest
  attr_reader   :objectives          # An array of objective strings
  attr_reader   :prime_objectives    # An array of crucial objective IDs
  attr_reader   :revealed_objectives # An array of revealed objective IDs
  attr_reader   :complete_objectives # An array of completed objective IDs
  attr_reader   :failed_objectives   # An array of failed objective IDs
  attr_reader   :custom_categories   # An array of category symbols
  attr_accessor :icon_index          # Icon associated with this quest
  attr_accessor :common_event_id     # ID of common event to call upon complete
  attr_accessor :description         # The description for the quest
  attr_accessor :banner              # Picture shown to represent the quest
  attr_accessor :banner_hue          # The hue of the banner
  attr_accessor :layout              # The layout of this quest in scene
  attr_accessor :rewards             # An array of rewards to show
  attr_accessor :reward_given        # Boolean tracking if quest was rewarded
  attr_accessor :concealed           # Whether or not the quest is visible
  attr_accessor :manual_status       # Quest status if not using prime objectives
  QuestData::BASIC_DATA_TYPES.each { |data_type| attr_accessor(data_type) }
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Object Initialization
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def initialize(quest_id)
    @id = quest_id
    @concealed = default_value_for(:concealed)
    @reward_given = default_value_for(:reward_given)
    reset
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Reset
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def reset
    data = QuestData.setup_quest(@id)
    data_symbol_array.each { |meth| instance_variable_set(:"@#{meth}", 
      data[meth] ? data[meth] : default_value_for(meth)) }
    @revealed_objectives = [].send(:extend, MAQJ_SortedArray)
    @complete_objectives = [].send(:extend, MAQJ_SortedArray)
    @failed_objectives =   [].send(:extend, MAQJ_SortedArray)
    @manual_status = default_value_for(:manual_status)
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Data Symbol Array
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def data_symbol_array
    [:name, :level, :objectives, :prime_objectives, :custom_categories, 
      :icon_index, :description, :banner, :banner_hue, :common_event_id, 
      :layout, :rewards] + QuestData::BASIC_DATA_TYPES
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Default Value
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def default_value_for(method)
    case method
    when :name then "??????"
    when :description, :banner then ""
    when :level, :banner_hue, :icon_index, :common_event_id then 0
    when :objectives, :rewards, :custom_categories then []
    when :prime_objectives then Array.new(objectives.size) { |x| x }
    when :concealed then QuestData::MANUAL_REVEAL
    when :manual_status then :active
    when :layout, :reward_given then false
    else ""
    end
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Reveal/Conceal Objective
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def reveal_objective(*obj)
    valid_obj = obj.select {|x| x < objectives.size && !@revealed_objectives.include?(x) }
    valid_obj.each {|i| @revealed_objectives.maqj_insert_sort(i) }
    quest_status_changed unless valid_obj.empty?
  end
  def conceal_objective(*obj)
    quest_status_changed unless (obj & @revealed_objectives).empty?
    obj.each { |obj_id| @revealed_objectives.delete(obj_id) }
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Complete/Uncomplete Objective
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def complete_objective(*obj)
    valid_obj = obj.select {|x| x < objectives.size && !@complete_objectives.include?(x) }
    reveal_objective(*valid_obj)
    unfail_objective(*valid_obj)
    was_complete = status?(:complete)
    valid_obj.each {|i| @complete_objectives.maqj_insert_sort(i) }
    quest_status_changed unless valid_obj.empty?
    # If just completed
    if status?(:complete) && !was_complete
      $game_temp.reserve_common_event(common_event_id)
      $game_party.quests.add_to_sort_array(:complete, @id)
    end
  end
  def uncomplete_objective(*obj)
    quest_status_changed unless (obj & @complete_objectives).empty?
    obj.each { |obj_id| @complete_objectives.delete(obj_id) }
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Fail/Unfail Objective
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def fail_objective(*obj)
    valid_obj = obj.select {|x| x < objectives.size && !@failed_objectives.include?(x) }
    reveal_objective(*valid_obj)
    uncomplete_objective(*valid_obj)
    was_failed = status?(:failed)
    valid_obj.each {|i| @failed_objectives.maqj_insert_sort(i) }
    quest_status_changed unless valid_obj.empty?
    $game_party.quests.add_to_sort_array(:failed, @id) if status?(:failed) && !was_failed
  end
  def unfail_objective(*obj)
    quest_status_changed unless (obj & @failed_objectives).empty?
    obj.each { |obj_id| @failed_objectives.delete(obj_id) }
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Updates when the quest status has been changed
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def quest_status_changed
    $game_party.quests.add_to_sort_array(:change, @id) 
    $game_system.last_quest_id = @id if QuestData::OPEN_TO_LAST_CHANGED_QUEST
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Objective Status?
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def objective_status?(status_check, *obj)
    return false if obj.empty?
    case status_check
    when :failed   then !(obj & @failed_objectives).empty?
    when :complete then obj.size == (obj & @complete_objectives).size
    when :revealed then obj.size == (obj & @revealed_objectives).size
    when :active then objective_status?(:revealed, *obj) && 
      !objective_status?(:complete, *obj) && !objective_status?(:failed, *obj)
    end
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Status?
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def status?(status_check)
    case status_check
    when :failed  
      @prime_objectives.empty? ? @manual_status == :failed : 
        !(@failed_objectives & @prime_objectives).empty?
    when :complete
      @prime_objectives.empty? ? @manual_status == :complete : !status?(:failed) && 
        ((@prime_objectives & @complete_objectives) == @prime_objectives)
    when :active then !concealed && !status?(:complete) && !status?(:failed)
    when :reward then @reward_given
    end
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Set Name
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def name=(new_name)
    @name = new_name
    $game_party.quests.add_to_sort_array(:alphabet, @id) if $game_party && 
      $game_party.quests
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Set Level
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def level=(new_lvl)
    @level = new_lvl
    $game_party.quests.add_to_sort_array(:level, @id) if $game_party && 
      $game_party.quests
  end
end
 
#==============================================================================
# ** Game_Quests 
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#  This is a wrapper for an array holding Game_Quest objects
#==============================================================================
 
class Game_Quests
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Object Initialization
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def initialize
    @data = {}
    @sort_arrays = {
      reveal: [], change: [], complete: [], failed: [],
      id:       [].send(:extend, MAQJ_SortedArray),
      alphabet: [].send(:extend, MAQJ_SortedArray),
      level:    [].send(:extend, MAQJ_SortedArray)
    }
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Get Quest
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def [](quest_id)
    reset_quest(quest_id) if !@data[quest_id]
    @data[quest_id]
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Set Quest <- Not sure when this would ever be useful.
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def []=(quest_id, value)
    @data[quest_id] = value
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * List
  #    list_type : the type of list to return
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def list(list_type = :all, sort_type = $game_system.quest_sort_type[list_type])
    sort_type_s = sort_type.to_s
    reverse = !(sort_type_s.sub!(/_r$/, "")).nil?
    sort_type = sort_type_s.to_sym
    list = @sort_arrays[sort_type].select { |quest_id| include?(quest_id, list_type) }
    list.reverse! if reverse
    list.collect { |quest_id| @data[quest_id] }
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Include?
  #    determines whether to include a particular quest depending on list type
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def include?(quest_id, list_type = :all)
    return false if !revealed?(quest_id)
    case list_type
    when :all then true
    when :complete, :failed, :active then @data[quest_id].status?(list_type)
    else
      @data[quest_id].custom_categories.include?(list_type)
    end
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Revealed? 
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def revealed?(quest_id)
    (!@data[quest_id].nil? && !@data[quest_id].concealed)
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Setup Quest
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def setup_quest(quest_id)
    return if @data[quest_id]
    @data[quest_id] = Game_Quest.new(quest_id)
    # Open to this quest next time the QJ is opened
    $game_system.last_quest_id = quest_id if QuestData::OPEN_TO_LAST_REVEALED_QUEST
    # Save sorting order in separate arrays to avoid re-sorting every time
    @sort_arrays.keys.each { |sym| add_to_sort_array(sym, quest_id) }
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Delete Quest
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def delete_quest(quest_id)
    @data.delete(quest_id)
    @sort_arrays.values.each { |ary| ary.delete(quest_id) }
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Reset Quest
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def reset_quest(quest_id)
    delete_quest(quest_id)
    setup_quest(quest_id)
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Add to Sorted Array
  #    sort_type : array to alter
  #    quest_id  : ID of the quest to add.
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def add_to_sort_array(sort_type, quest_id)
    @sort_arrays[sort_type].delete(quest_id) # Make sure always unique
    case sort_type
    when :reveal, :change, :complete, :failed
      @sort_arrays[sort_type].unshift(quest_id)
    when :id
      @sort_arrays[sort_type].maqj_insert_sort(quest_id)
    when :alphabet 
      @sort_arrays[sort_type].maqj_insert_sort(quest_id) { |a, b| @data[a].name.downcase <=> @data[b].name.downcase }
    when :level
      @sort_arrays[sort_type].maqj_insert_sort(quest_id) { |a, b| @data[a].level <=> self[b].level }
    end
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Find Location
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def find_location(quest_id, cat = nil)
    if revealed?(quest_id)
      categories = $game_system.quest_categories.dup
      # If cat specified, check in that category first.
      if cat && categories.include?(cat)
        categories.delete(cat)
        categories.unshift(cat)
      end
      for category in categories # Check all categories
        index = list(category).index(@data[quest_id])
        return category, index if index != nil
      end
    end
    return nil, nil
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Clear
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def clear
    @data.clear
  end
end
 
#==============================================================================
# ** Game System
#++++++++++++++++++++++++++++++++++++++++++++++++++++++


c'est une petite parti du scripts

Corbac la nuit est t'on refuge

Aller à la page: 1

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