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
| =begin
#----Script créé par Josué Alvarez (RPG-Man)---#
Script repris par : Mattew_Phoenyx_Eon, Le 06/06/2013
Ajouts :
• Automatisation des noms de quête, et des noms des images selon un format laissé au choix.
• Plus besoin de cliquer pour afficher l'image de la quête, l'image montrée à droite est mise à jour automatiquement.
• Simplification du code, en passant par des fonctions plutot que de traiter au cas par cas avec un "CAS ... PARMIS"
• Sûrement un gain de temps de processeur
Rappels :
• Les images sont à placer dans le dossier "Graphics/Picture" du jeu
• L'appel du journal des quêtes se faii grâce à : "$scene = Scene_Quete.new"
=end
module Menu_Quetes_Voc
# ===== Les principales modifications se réalisent ici :
# Apellation des quêtes non disponibles :
Q_verrouillee = "Verrouillée"
# Apellation des quêtes accessibles :
Index_quete = "Quête n°" #Le numéro de quête sera automatiquement ajouté, en commençant par "Quête n°1"
# Nom de l'image pour les quêtes indisponibles :
Image_cache = "Quete_cache"
# A noter que les noms des images des quêtes disponibles seront, pour la Quete n°1 :
# Q1 -> Pour l'image de la quête n°1 en cours
# Q1f -> Pour l'image de la quête n°1 terminée
end # Fin du module de vocabulaire
# AUTRES MODIFICATIONS POSSIBLES ET UTILES :
# Ligne 130 et 132 : ID des interrupteurs pour activer l'accès à une quête (L.130), ou valider la quête finie (L.132).
# Ligne 165 et 170 : Ajoutez comme précisé pour augmenter le nombre de quêtes (avec un maximum de 17 par page)
#-_-_-_-_-_-_-_-_-_-_-_-_-_Class Scene_Quete_-_-_-_-_-_-_-_-_-_-_-_-_-#
class Scene_Quete
#____________________#
#________Main________#
def main
create_command_window
Graphics.transition(10)
Input.update
loop do
Graphics.update
Input.update
update
changement_page
break if $scene != self
end
Graphics.update
pre_terminate
Graphics.freeze
terminate
end
#______________________#
#________Update________#
def update
@command_window.update
if @command_window.active
update_command_selection
elsif @status_window.active
update_actor_selection
update_command_selection
end
end
#_______________________________#
#________changement_page________#
def changement_page
if @attendre < 0
# Si on passe à la page suivante
if Input.press?(Input::RIGHT)
@menu_page += 1
@command_window.close
#@command_window.dispose
if @menu_page > 1
@menu_page = 0
end
create_command_window
@attendre = 10
update_command_selection
# Si on passe à la page précédente
elsif Input.press?(Input::LEFT)
@menu_page -= 1
@command_window.close
#@command_window.dispose
if @menu_page < 0
@menu_page = 1
end
create_command_window
@attendre = 10
end
else
@attendre-=1
end
end
#___________________________#
#________pre_terminate________#
def pre_terminate
@command_window.close
@picture_back = nil
begin
@command_window.update
Graphics.update
end
end
#________________________#
#________terminate________#
def terminate
@command_window.dispose
end
#_______________________#
#________Initialize________#
def initialize(menu_index = 0, menu_page=0) #Initialize, Soit le Constructeur
@attendre = 0
@menu_index = menu_index
@menu_page = menu_page
@txt1 = Array.[]
# === Table des ID des switchs des quêtes disponibles
@Tab_Qdispo = [2, 3, 4, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 200, 200]
# === Table des ID des switchs des quêtes terminées
@Tab_Qterm = [41, 42, 43, 44, 45, 46, 47, 48, 19, 50, 51, 52,53, 54, 55, 56, 57, 58, 59, 60, 200, 200]
end
#_______________________#
#________Affichage________#
# Modification interne effectuée n°1
def affichage(id)
@image_a = id
img_quete(@Tab_Qterm[id],@Tab_Qdispo[id])
end
#_________________________#
#________nom_quete________#
# Modification interne effectuée n°2
def nom_quete(id1=0, id2=0)
@txt1[@i] = "#{Menu_Quetes_Voc::Q_verrouillee}"
if ($game_switches[id1] or $game_switches[id2]) == true
@titre =
@txt1[@i] = "#{Menu_Quetes_Voc::Index_quete}#{@i+1}"
end
end
#_____________________________________#
#________create_command_window________# Ouvre la fenêtre pour la liste des choix
def create_command_window
#Initialisation si jamais menu_page n'a pas de valeur
if @menu_page == nil
@menu_page = 0
end
case @menu_page
when 0
for @i in 0..16 # Pour les quêtes 1 à 17
nom_quete(@Tab_Qdispo[@i],@Tab_Qterm[@i])
@command_window = Window_Command.new(160, [@txt1[0], @txt1[1] ]) # Ici ajouter de @txt1[0] jusque @txt1[16]
end # pour augmenter le nombre de quêtes
when 1
for @i in 0..2 # Pour les quêtes 17 à 33
nom_quete(@Tab_Qdispo[@i+16],@Tab_Qterm[@i+16])
@command_window = Window_Command.new(160, [@txt1[0], @txt1[1] ]) # Ici ajouter de @txt1[17] jusque @txt1[32]
end # pour augmenter le nombre de quêtes
end
@command_window.index = @menu_index
@command_window.openness = 0
@command_window.open
end
#_________________________#
#________img_quete________#
# Affiche l'image de la quête : terminée, sinon disponible, sinon indisponible
def img_quete(id_quete_term, id_quete_dispo)
if @image == nil
@image = Sprite.new
if $game_switches[id_quete_term] == true
@image.bitmap = Cache.picture("Q#{@image_a+1}f")
elsif $game_switches[id_quete_dispo] == true
@image.bitmap = Cache.picture("Q#{@image_a+1}")
else
@image.bitmap = Cache.picture("#{Menu_Quetes_Voc::Image_cache}")
end
end
end
#_______________________________________#
#________update_command_selection________#
def update_command_selection
if Input.trigger?(Input::B)
Sound.play_cancel
$scene = Scene_Map.new
@picture_back = nil
@image = nil
end
if @image != nil
@image.dispose # rafraichit l'image de la mission
end
@image = nil
case @menu_page
when 0 # Si le joueur est dans la page n°1 :
affichage (@command_window.index)
when 1 # Si le joueur est dans la page n°2 :
affichage (@command_window.index + 17)
end
end
end #Fin de classe |