Bienvenue visiteur !
|
Désactiver la neige
Statistiques
Liste des membres
Contact
Mentions légales
304 connectés actuellement
30765831 visiteurs depuis l'ouverture
2569 visiteurs aujourd'hui
Partenaires
Tous nos partenaires
Devenir partenaire
|
◂
| Correcteur d'orthographe
[Outil d'aide au développeur] Vous aidera à corriger les fautes d'orthographe de votre jeu en créant un fichier texte avec tous les dialogues de votre jeu (carte, événement commun, combat). | Script pour RPG Maker XP Ecrit par zeus81 Publié par zeus81 (lui envoyer un message privé) Signaler un script cassé
|
▸
|
❤ 1Roi of the Suisse Auteur : Zeus81
Logiciel : RPG Maker XP
Nombre de scripts : 1
Fonctionnalité
Des fois quand je teste des jeux je me dis "Mon Dieu ce n'est pas possible, même à l'école primaire je faisais moins de fautes d'orthographe !" Etant donné que d'apprendre le français à 1 million d'illettrés serait trop long, j'ai fait ce script pour vous aider à corriger vos fautes d'orthographe.
- Génère un fichier texte de tous les dialogues du jeu (carte, événement commun, combat)
Installation
A installer au-dessus de Main.
Utilisation
Les explications sont dans le script.
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
| #=================================
# Correcteur d'orthographe
# Script créé par Zeus81
#=================================
#
#
# Comment ça marche ?
#
# Tout d'abord il faut le lancer en écrivant dans un script $scene = Scene_Scan2.new
# Ensuite vous faites Analyser les messages.
# Le script va générer un fichier texte dans lequel seront listés tous les messages utilisés dans le jeu.
# Ensuite il y deux façons de corriger les fautes d'orthographes dans votre jeu.
#
# 1ère méthode (manuelle) :
# Vous détectez les fautes avec un logiciel (Word par exemple).
# Puis vous lisez le code du début de la ligne pour savoir d'où vient le message et vous allez le corriger directement dans le jeu.
# Exemple d'une ligne :
# 0/012/037/003/072/0 : J'est mal aux doigt.
# Le code se lit de la manière suivante :
# - Le premier chiffre indique le type d'évènement :
# 0 -> Evènement d'une map
# 1 -> Evènement commun
# 2 -> Evènement de combat
# - Le trois chiffres suivants indiquent l'id de la map (entre 001 et 999).
# Si c'est un évènement commun ou de combat il y a 000.
# - Le trois chiffres suivants indiquent l'id de l'évènement.
# - Le trois chiffres suivants indiquent la page de l'évènement (moins un).
# - Le chiffres suivants indiquent la ligne dans les commandes de l'évènement (moins un).
# - Le dernier chiffre indique le type du message :
# 0 -> Affichage d'un message
# 1 -> Premier choix dans une proposition de choix
# 2 -> Deuxième choix dans une proposition de choix
# 3 -> Troisième choix dans une proposition de choix
# 4 -> Quatrième choix dans une proposition de choix
# Dans cet exemple on a donc :
# type d'évènement : 0 -> Evènement d'une map
# id de la map : 012 -> Map n°12
# id de l'évènement : 037 -> Evènement n°37
# page : 003 -> Page n°4
# ligne : 072 -> Ligne n°73
# type du message : 0 -> Affichage d'un message
#
# 2ème méthode (automatique) :
# Vous corrigez les fautes dans le fichier avec votre logiciel.
# Vous enregistrez le fichier corrigé avec un codage Unicode UTF-8 en le renommant "Messages OK.txt".
# Le codage UTF-8 est le codage utilisé par RPG Maker, on est donc obligé de le respecter.
# Vous fermez RPG Maker afin qu'il n'interfère pas dans les modifications.
# Vous relancez votre jeu à partir du Game.exe
# Vous ré-exécutez le script mais cette fois vous faites Corriger les messages.
# Le script va remplacer les messages erronés du jeu par les messages corrigés du fichier "Messages OK.txt".
class Window_Scan2 < Window_Selectable
def initialize
super(0, 0, 640, 480)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = "Comic Sans MS"
@item_max = 5
@index = 0
refresh
end
def refresh
self.contents.clear
self.contents.fill_rect(0, 48, 608, 1, normal_color)
self.contents.fill_rect(0, 400, 608, 1, normal_color)
self.contents.fill_rect(304, 64, 1, 320, normal_color)
self.contents.fill_rect(404-50, 240, 200, 1, normal_color)
self.contents.font.size = 28
self.contents.font.color = knockout_color
self.contents.draw_text(0, 0, 608, 48, "Correcteur d'orthographe", 1)
self.contents.font.size = 20
self.contents.font.color = normal_color
self.contents.draw_text(0, 64, 300, 24, "Pas à pas", 1)
self.contents.draw_text(432-50, 128, 176, 32, "Evènements des maps")
self.contents.draw_text(432-50, 160, 176, 32, "Evènements communs")
self.contents.draw_text(432-50, 192, 176, 32, "Evènements des combats")
self.contents.draw_text(400-50, 256, 208, 32, "Analyser les messages", 1)
self.contents.draw_text(400-50, 288, 208, 32, "Corriger les messages", 1)
self.contents.font.size = 18
self.contents.draw_text(0, 88, 300, 24, "- Sélectionner les évènements à analyser")
self.contents.draw_text(0, 112, 300, 24, "- Faire analyser les messages")
self.contents.draw_text(0, 136, 300, 24, "- Corriger les fautes d'orthographe")
self.contents.draw_text(0, 160, 300, 24, " à l'aide d'un logiciel de traitement de texte")
self.contents.draw_text(0, 184, 300, 24, "- Enregistrer le fichier corrigé au format unicode")
self.contents.draw_text(0, 208, 300, 24, " 'UTF-8' en le renommant 'Messages OK.txt'.")
self.contents.draw_text(0, 232, 300, 24, " Pour enregistrer au bon format faire")
self.contents.draw_text(0, 256, 300, 24, " 'Enregistrer sous' 'Format *.txt' 'Codage UTF-8'")
self.contents.draw_text(0, 280, 300, 24, " (Ca y est même dans le bloc note)")
self.contents.draw_text(0, 304, 300, 24, "- Fermer RPG Maker puis lancer le jeu avec le 'Game.exe'")
self.contents.draw_text(0, 328, 300, 24, "- Faire corriger les messages")
self.contents.draw_text(0, 352, 300, 24, "- Et c'est fini")
draw_states
end
def draw_states
draw_state(408-50, 128, $scene.map_events_scan)
draw_state(408-50, 160, $scene.common_events_scan)
draw_state(408-50, 192, $scene.battle_events_scan)
end
def draw_state(x, y, state)
if state == true
color = Color.new(255, 0, 0)
else
color = Color.new(128, 128, 128)
end
self.contents.fill_rect(x+3, y+11, 10, 10, Color.new(29, 82, 129))
self.contents.fill_rect(x+4, y+12, 8, 8, Color.new(255, 255, 255))
self.contents.fill_rect(x+5, y+13, 6, 6, color)
end
def update_cursor_rect
y = @index*32 + 128
y += 32 if @index > 2
self.cursor_rect.set(400-50, y, 208, 32)
end
end
class Scene_Scan2
attr_reader :map_events_scan
attr_reader :common_events_scan
attr_reader :battle_events_scan
def initialize
GC.disable
Thread.new do
loop do
Graphics.update
sleep(1)
end
end
$data_system = load_data("Data/System.rxdata")
$game_system = Game_System.new
@map_events_scan = true
@common_events_scan = true
@battle_events_scan = true
end
def main
@scan_window = Window_Scan2.new
Graphics.transition
loop do
update
Graphics.update
Input.update
end
end
def update
@scan_window.update
if Input.trigger?(Input::C)
$game_system.se_play($data_system.decision_se)
case @scan_window.index
when 0
@map_events_scan = !@map_events_scan
when 1
@common_events_scan = !@common_events_scan
when 2
@battle_events_scan = !@battle_events_scan
when 3
start_scan
when 4
start_correction
end
@scan_window.draw_states
end
end
def read_data
@data_common_events = load_data("Data/CommonEvents.rxdata")
@data_troops = load_data("Data/Troops.rxdata")
@data_maps = []
for map_id in 1..999
filename = sprintf("Data/Map%03d.rxdata", map_id)
next if FileTest.exist?(filename) == false
@data_maps[map_id] = load_data(filename)
end
end
def save_corrected_data
for map_id in 1..999
next if @data_maps[map_id] == nil
save_data(@data_maps[map_id], sprintf("Data/Map%03d.rxdata", map_id))
end
save_data(@data_common_events, "Data/CommonEvents.rxdata")
save_data(@data_troops, "Data/Troops.rxdata")
end
def start_scan
read_data
@messages = []
@messages[0] = "\357\273\277Ce fichier a été enregistré avec un codage Unicode UTF-8.\n"
@messages[1] = "Si vous voyez des caractères bizarres à la place des accents, c'est que votre logiciel ne lit pas ce codage.\n"
@messages[2] = "Pour convertir le fichier en codage standard ouvrez le avec le bloc note et faites \"Enregistrer sous\" avec un codage ANSI\n"
@messages[3] = "Le fichier corrigé final devra être enregistré avec un codage Unicode UTF-8.\n"
@messages[4] = "Ce fichier devra impérativement s'appeler \"Messages OK.txt\".\n"
@messages[5] = "Ne modifiez pas le code au début de chaque ligne.\n"
@messages[6] = "Ne rajoutez aucune ligne.\n"
@messages[7] = "Ne supprimez pas ces lignes.\n\n"
check_maps if @map_events_scan == true
check_common_events if @common_events_scan == true
check_battle_events if @battle_events_scan == true
file = File.open("Messages.txt", "w")
file.write(@messages.to_s)
file.close
print(" L'analyse est terminé !\n",
" Le résultat se trouve dans le fichier\n",
"\"Messages.txt\" dans le dossier de votre jeu.")
end
def check_maps
for map_id in 1..999
next if @data_maps[map_id] == nil
for event_id in @data_maps[map_id].events.keys.sort
for page_id in 0...@data_maps[map_id].events[event_id].pages.size
for list_id in 0...@data_maps[map_id].events[event_id].pages[page_id].list.size
name = sprintf("%01d/%03d/%03d/%03d/%03d/", 0, map_id, event_id, page_id, list_id)
check_event_command(@data_maps[map_id].events[event_id].pages[page_id].list[list_id], name)
end
end
end
end
end
def check_common_events
for event_id in 1...@data_common_events.size
for list_id in 0...@data_common_events[event_id].list.size
name = sprintf("%01d/%03d/%03d/%03d/%03d/", 1, 0, event_id, 0, list_id)
check_event_command(@data_common_events[event_id].list[list_id], name)
end
end
end
def check_battle_events
for event_id in 1...@data_troops.size
for page_id in 0...@data_troops[event_id].pages.size
for list_id in 0...@data_troops[event_id].pages[page_id].list.size
name = sprintf("%01d/%03d/%03d/%03d/%03d/", 2, 0, event_id, page_id, list_id)
check_event_command(@data_troops[event_id].pages[page_id].list[list_id], name)
end
end
end
end
def check_event_command(event, name)
if event.code == 101 or event.code == 401
@messages.push(name+"0 : "+event.parameters[0]+"\n")
elsif event.code == 102
for i in 0...event.parameters[0].size
@messages.push(name+(i+1).to_s+" : "+event.parameters[0][i]+"\n")
end
end
end
def start_correction
if FileTest.exist?("Messages OK.txt") == false
print("Le fichier \"Messages OK.txt\" est introuvable !\n",
"La correction n'a donc pas pu s'effectuer !!!")
return
end
if $DEBUG == true
print("Pour corriger votre projet doit être fermé !")
return
end
file = File.open("Messages OK.txt", "r")
@messages = file.readlines
file.close
if @messages[0][0, 3] != "\357\273\277"
print("Le fichier \"Messages OK.txt\" n'a pas été enregistré en codage Unicode \"UTF-8\".")
return
end
read_data
if correction_scan == false
print("La correction automatique a été annulé !")
return
else
save_corrected_data
print("La correction automatique est terminée !")
end
end
def correction_scan
for i in 8...@messages.size
next if @messages[i][0, 1] == "\n"
type = @messages[i][0, 1].to_i
map_id = @messages[i][2, 3].to_i
event_id = @messages[i][6, 3].to_i
page_id = @messages[i][10, 3].to_i
j = 3
6.times do
break if @messages[i][14+j, 1] == " "
j += 1
end
list_id = @messages[i][14, j].to_i
message_type = @messages[i][13+j, 1].to_i
erreur = false
erreur |= (type > 2)
erreur |= (@messages[i][1, 1] != "/")
erreur |= (@messages[i][5, 1] != "/")
erreur |= (@messages[i][9, 1] != "/")
erreur |= (@messages[i][13, 1] != "/")
erreur |= (@messages[i][12+j, 1] != "/")
erreur |= (@messages[i][14+j, 3] != " : ")
if erreur == true
print("Le code d'une ligne a été modifié.")
return false
end
@messages[i][0, 17+j] = ""
@messages[i][-1, 1] = ""
case type
when 0
event = @data_maps[map_id].events[event_id].pages[page_id].list[list_id]
when 1
event = @data_common_events[event_id].list[list_id]
when 2
event = @data_troops[event_id].pages[page_id].list[list_id]
end
if message_type == 0 and (event.code == 101 or event.code == 401)
event.parameters[0] = @messages[i]
elsif message_type > 0 and message_type < 5 and event.code == 102
event.parameters[0][message_type-1] = @messages[i]
else
print("Une ligne a été rajoutée.")
return false
end
end
return true
end
end |
Mis à jour le 4/7/2020.
|
Jimmos -
posté le 01/02/2011 à 11:08:17 (1 messages postés)
| | On fait comment pour qu'il marche ? Oo
Edit : je sais comment faire marcher un script mais je vois pas ou ils fait un correcteur ! ^^
|
krashx -
posté le 06/02/2011 à 14:43:53 (457 messages postés)
| | Lis les commentaires en haut du script...
|
parasoft -
posté le 23/08/2011 à 13:16:27 (251 messages postés)
| « Tant qu’il y aura des hommes, il y aura la guerre. » Albert Einstein | Merci, très utile !
|
Découvrez Détective Alice (un jeu d'enquête non linéaire) ! Téléchargez maintenant la démo de Détective Alice ! |
Reonmineur -
posté le 10/01/2014 à 22:29:00 (19 messages postés)
| | ile meu fo seu scripte xD
|
Elverion -
posté le 08/11/2014 à 20:32:36 (14 messages postés)
| | Hello tous, desole pour le necropost, mais voila, j'aurais vraiment vraiment besoin de ce script sous version VX ace, Est-ce possible ???
Encore merci d'avance !!!
|
spurdo -
posté le 21/02/2015 à 20:58:43 (3 messages postés)
| | Pour moi, le script fonctionne à moitié. Explication:
J'insère le script comme d'hab au-dessus de main, puis je suis les instructions. J'appel le script avec $scene = Scene_Scan2.new comme expliqué. J'analyse les messages des évènements de map et les évènements communs, et il me créer sans problème le fichier txt.
Jusque là, pas de trouble.
Par la suite, je corrige le fichier (sans rajouter ni supprimer de ligne), j'enregistre le tout en codage utf-8, sous le nom: Messages OK.txt.
Après je démarre game.exe (donc sans projet ouvert) puis je réappel le script. Cette fois-ci je clique sur "analyser les messages", et puis, soudain, une erreur s'affiche:
Tout aide est apprécié (même si cest un vieux post)
|
zeus81 -
posté le 21/02/2015 à 22:42:32 (11071 messages postés)
| | Vieux bug d'oniro qui corrompt les scripts.
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
| #=================================
# Correcteur d'orthographe
# Script créé par Zeus81
#=================================
#
#
# Comment ça marche ?
#
# Tout d'abord il faut le lancer en écrivant dans un script $scene = Scene_Scan2.new
# Ensuite vous faites Analyser les messages.
# Le script va générer un fichier texte dans lequel seront listés tous les messages utilisés dans le jeu.
# Ensuite il y deux façons de corriger les fautes d'orthographes dans votre jeu.
#
# 1ère méthode (manuelle) :
# Vous détectez les fautes avec un logiciel (Word par exemple).
# Puis vous lisez le code du début de la ligne pour savoir d'où vient le message et vous allez le corriger directement dans le jeu.
# Exemple d'une ligne :
# 0/012/037/003/072/0 : J'est mal aux doigt.
# Le code se lit de la manière suivante :
# - Le premier chiffre indique le type d'évènement :
# 0 -> Evènement d'une map
# 1 -> Evènement commun
# 2 -> Evènement de combat
# - Le trois chiffres suivants indiquent l'id de la map (entre 001 et 999).
# Si c'est un évènement commun ou de combat il y a 000.
# - Le trois chiffres suivants indiquent l'id de l'évènement.
# - Le trois chiffres suivants indiquent la page de l'évènement (moins un).
# - Le chiffres suivants indiquent la ligne dans les commandes de l'évènement (moins un).
# - Le dernier chiffre indique le type du message :
# 0 -> Affichage d'un message
# 1 -> Premier choix dans une proposition de choix
# 2 -> Deuxième choix dans une proposition de choix
# 3 -> Troisième choix dans une proposition de choix
# 4 -> Quatrième choix dans une proposition de choix
# Dans cet exemple on a donc :
# type d'évènement : 0 -> Evènement d'une map
# id de la map : 012 -> Map n°12
# id de l'évènement : 037 -> Evènement n°37
# page : 003 -> Page n°4
# ligne : 072 -> Ligne n°73
# type du message : 0 -> Affichage d'un message
#
# 2ème méthode (automatique) :
# Vous corrigez les fautes dans le fichier avec votre logiciel.
# Vous enregistrez le fichier corrigé avec un codage Unicode UTF-8 en le renommant "Messages OK.txt".
# Le codage UTF-8 est le codage utilisé par RPG Maker, on est donc obligé de le respecter.
# Vous fermez RPG Maker afin qu'il n'interfère pas dans les modifications.
# Vous relancez votre jeu à partir du Game.exe
# Vous ré-exécutez le script mais cette fois vous faites Corriger les messages.
# Le script va remplacer les messages erronés du jeu par les messages corrigés du fichier "Messages OK.txt".
class Window_Scan2 < Window_Selectable
def initialize
super(0, 0, 640, 480)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = "Comic Sans MS"
@item_max = 5
@index = 0
refresh
end
def refresh
self.contents.clear
self.contents.fill_rect(0, 48, 608, 1, normal_color)
self.contents.fill_rect(0, 400, 608, 1, normal_color)
self.contents.fill_rect(304, 64, 1, 320, normal_color)
self.contents.fill_rect(404-50, 240, 200, 1, normal_color)
self.contents.font.size = 28
self.contents.font.color = knockout_color
self.contents.draw_text(0, 0, 608, 48, "Correcteur d'orthographe", 1)
self.contents.font.size = 20
self.contents.font.color = normal_color
self.contents.draw_text(0, 64, 300, 24, "Pas à pas", 1)
self.contents.draw_text(432-50, 128, 176, 32, "Evènements des maps")
self.contents.draw_text(432-50, 160, 176, 32, "Evènements communs")
self.contents.draw_text(432-50, 192, 176, 32, "Evènements des combats")
self.contents.draw_text(400-50, 256, 208, 32, "Analyser les messages", 1)
self.contents.draw_text(400-50, 288, 208, 32, "Corriger les messages", 1)
self.contents.font.size = 18
self.contents.draw_text(0, 88, 300, 24, "- Sélectionner les évènements à analyser")
self.contents.draw_text(0, 112, 300, 24, "- Faire analyser les messages")
self.contents.draw_text(0, 136, 300, 24, "- Corriger les fautes d'orthographe")
self.contents.draw_text(0, 160, 300, 24, " à l'aide d'un logiciel de traitement de texte")
self.contents.draw_text(0, 184, 300, 24, "- Enregistrer le fichier corrigé au format unicode")
self.contents.draw_text(0, 208, 300, 24, " 'UTF-8' en le renommant 'Messages OK.txt'.")
self.contents.draw_text(0, 232, 300, 24, " Pour enregistrer au bon format faire")
self.contents.draw_text(0, 256, 300, 24, " 'Enregistrer sous' 'Format *.txt' 'Codage UTF-8'")
self.contents.draw_text(0, 280, 300, 24, " (Ca y est même dans le bloc note)")
self.contents.draw_text(0, 304, 300, 24, "- Fermer RPG Maker puis lancer le jeu avec le 'Game.exe'")
self.contents.draw_text(0, 328, 300, 24, "- Faire corriger les messages")
self.contents.draw_text(0, 352, 300, 24, "- Et c'est fini")
draw_states
end
def draw_states
draw_state(408-50, 128, $scene.map_events_scan)
draw_state(408-50, 160, $scene.common_events_scan)
draw_state(408-50, 192, $scene.battle_events_scan)
end
def draw_state(x, y, state)
if state == true
color = Color.new(255, 0, 0)
else
color = Color.new(128, 128, 128)
end
self.contents.fill_rect(x+3, y+11, 10, 10, Color.new(29, 82, 129))
self.contents.fill_rect(x+4, y+12, 8, 8, Color.new(255, 255, 255))
self.contents.fill_rect(x+5, y+13, 6, 6, color)
end
def update_cursor_rect
y = @index*32 + 128
y += 32 if @index > 2
self.cursor_rect.set(400-50, y, 208, 32)
end
end
class Scene_Scan2
attr_reader :map_events_scan
attr_reader :common_events_scan
attr_reader :battle_events_scan
def initialize
GC.disable
Thread.new do
loop do
Graphics.update
sleep(1)
end
end
$data_system = load_data("Data/System.rxdata")
$game_system = Game_System.new
@map_events_scan = true
@common_events_scan = true
@battle_events_scan = true
end
def main
@scan_window = Window_Scan2.new
Graphics.transition
loop do
update
Graphics.update
Input.update
end
end
def update
@scan_window.update
if Input.trigger?(Input::C)
$game_system.se_play($data_system.decision_se)
case @scan_window.index
when 0
@map_events_scan = !@map_events_scan
when 1
@common_events_scan = !@common_events_scan
when 2
@battle_events_scan = !@battle_events_scan
when 3
start_scan
when 4
start_correction
end
@scan_window.draw_states
end
end
def read_data
@data_common_events = load_data("Data/CommonEvents.rxdata")
@data_troops = load_data("Data/Troops.rxdata")
@data_maps = []
for map_id in 1..999
filename = sprintf("Data/Map%03d.rxdata", map_id)
next if FileTest.exist?(filename) == false
@data_maps[map_id] = load_data(filename)
end
end
def save_corrected_data
for map_id in 1..999
next if @data_maps[map_id] == nil
save_data(@data_maps[map_id], sprintf("Data/Map%03d.rxdata", map_id))
end
save_data(@data_common_events, "Data/CommonEvents.rxdata")
save_data(@data_troops, "Data/Troops.rxdata")
end
def start_scan
read_data
@messages = []
@messages[0] = "\357\273\277Ce fichier a été enregistré avec un codage Unicode UTF-8.\n"
@messages[1] = "Si vous voyez des caractères bizarres à la place des accents, c'est que votre logiciel ne lit pas ce codage.\n"
@messages[2] = "Pour convertir le fichier en codage standard ouvrez le avec le bloc note et faites \"Enregistrer sous\" avec un codage ANSI\n"
@messages[3] = "Le fichier corrigé final devra être enregistré avec un codage Unicode UTF-8.\n"
@messages[4] = "Ce fichier devra impérativement s'appeler \"Messages OK.txt\".\n"
@messages[5] = "Ne modifiez pas le code au début de chaque ligne.\n"
@messages[6] = "Ne rajoutez aucune ligne.\n"
@messages[7] = "Ne supprimez pas ces lignes.\n\n"
check_maps if @map_events_scan == true
check_common_events if @common_events_scan == true
check_battle_events if @battle_events_scan == true
file = File.open("Messages.txt", "w")
file.write(@messages.to_s)
file.close
print(" L'analyse est terminé !\n",
" Le résultat se trouve dans le fichier\n",
"\"Messages.txt\" dans le dossier de votre jeu.")
end
def check_maps
for map_id in 1..999
next if @data_maps[map_id] == nil
for event_id in @data_maps[map_id].events.keys.sort
for page_id in 0...@data_maps[map_id].events[event_id].pages.size
for list_id in 0...@data_maps[map_id].events[event_id].pages[page_id].list.size
name = sprintf("%01d/%03d/%03d/%03d/%03d/", 0, map_id, event_id, page_id, list_id)
check_event_command(@data_maps[map_id].events[event_id].pages[page_id].list[list_id], name)
end
end
end
end
end
def check_common_events
for event_id in 1...@data_common_events.size
for list_id in 0...@data_common_events[event_id].list.size
name = sprintf("%01d/%03d/%03d/%03d/%03d/", 1, 0, event_id, 0, list_id)
check_event_command(@data_common_events[event_id].list[list_id], name)
end
end
end
def check_battle_events
for event_id in 1...@data_troops.size
for page_id in 0...@data_troops[event_id].pages.size
for list_id in 0...@data_troops[event_id].pages[page_id].list.size
name = sprintf("%01d/%03d/%03d/%03d/%03d/", 2, 0, event_id, page_id, list_id)
check_event_command(@data_troops[event_id].pages[page_id].list[list_id], name)
end
end
end
end
def check_event_command(event, name)
if event.code == 101 or event.code == 401
@messages.push(name+"0 : "+event.parameters[0]+"\n")
elsif event.code == 102
for i in 0...event.parameters[0].size
@messages.push(name+(i+1).to_s+" : "+event.parameters[0][i]+"\n")
end
end
end
def start_correction
if FileTest.exist?("Messages OK.txt") == false
print("Le fichier \"Messages OK.txt\" est introuvable !\n",
"La correction n'a donc pas pu s'effectuer !!!")
return
end
if $DEBUG == true
print("Pour corriger votre projet doit être fermé !")
return
end
file = File.open("Messages OK.txt", "r")
@messages = file.readlines
file.close
if @messages[0][0, 3] != "\357\273\277"
print("Le fichier \"Messages OK.txt\" n'a pas été enregistré en codage Unicode \"UTF-8\".")
return
end
read_data
if correction_scan == false
print("La correction automatique a été annulé !")
return
else
save_corrected_data
print("La correction automatique est terminée !")
end
end
def correction_scan
for i in 8...@messages.size
next if @messages[i][0, 1] == "\n"
type = @messages[i][0, 1].to_i
map_id = @messages[i][2, 3].to_i
event_id = @messages[i][6, 3].to_i
page_id = @messages[i][10, 3].to_i
j = 3
6.times do
break if @messages[i][14+j, 1] == " "
j += 1
end
list_id = @messages[i][14, j].to_i
message_type = @messages[i][13+j, 1].to_i
erreur = false
erreur |= (type > 2)
erreur |= (@messages[i][1, 1] != "/")
erreur |= (@messages[i][5, 1] != "/")
erreur |= (@messages[i][9, 1] != "/")
erreur |= (@messages[i][13, 1] != "/")
erreur |= (@messages[i][12+j, 1] != "/")
erreur |= (@messages[i][14+j, 3] != " : ")
if erreur == true
print("Le code d'une ligne a été modifié.")
return false
end
@messages[i][0, 17+j] = ""
@messages[i][-1, 1] = ""
case type
when 0
event = @data_maps[map_id].events[event_id].pages[page_id].list[list_id]
when 1
event = @data_common_events[event_id].list[list_id]
when 2
event = @data_troops[event_id].pages[page_id].list[list_id]
end
if message_type == 0 and (event.code == 101 or event.code == 401)
event.parameters[0] = @messages[i]
elsif message_type > 0 and message_type < 5 and event.code == 102
event.parameters[0][message_type-1] = @messages[i]
else
print("Une ligne a été rajoutée.")
return false
end
end
return true
end
end |
|
spurdo -
posté le 22/02/2015 à 22:32:52 (3 messages postés)
| | Ok merci, jvais réessayer avec ce nouveau code.
1) Je tente de recorriger les messages, même procédure
2) Bon, une erreur différente cette fois-ci
|
zeus81 -
posté le 23/02/2015 à 18:11:45 (11071 messages postés)
| | Ça c'est un fichier de map qui est corrompu.
Pour savoir lequel tu peux modifier la ligne 185 :
@data_maps[map_id] = load_data(filename) rescue p map_id
|
spurdo -
posté le 28/02/2015 à 20:16:53 (3 messages postés)
| | J'ai réessayé et tout fonctionne très bien. Merci pour ce script très utile!
|
ray-yami2 -
posté le 21/10/2020 à 23:38:32 (33 messages postés)
| | Salut, perso, gros soucis, en fait la personne en charge du correcteur a fini une partie du texte, mais moi j'ai depuis ajouter de nouveau dialogue dans mon jeu, hors j'ai l'impression que le script prend pas en compte se cas de figure, et il me marque ligne ajouté, et donc il veux pas corriger
|
Gari -
posté le 21/10/2020 à 23:54:40 (5901 messages postés)
- | | Tu veux dire qu'en refaisant l'appel de script en début de jeu, il ne sort pas les nouveaux dialogues ? Ou tu utilises la méthode automatique ?
Plus la description de ton problème et de ce que tu as fait exactement sera détaillée/claire, plus il y aura de chance que quelqu'un puisse t'aider.
|
VRP024 -
posté le 22/02/2021 à 04:42:42 (24 messages postés)
| | Salut, j'adore l'autodérision!
Et pour ta ponctuation c'est pas encore ça...
Plus tard peut-être mais sinon sympa! Un script que l'on ne voit pas souvent.
C'est utile, plutôt que de se retaper toutes les maps.
Ps: #J'est mal aux doigt# J'ai ri.
|
| Chanter l'hyperchleuasme | J'ai réparé les [i] du script qui avaient été malencontreusement transformés en <i>.
ray-yami2 a dit: Salut, perso, gros soucis, en fait la personne en charge du correcteur a fini une partie du texte, mais moi j'ai depuis ajouter de nouveau dialogue dans mon jeu, hors j'ai l'impression que le script prend pas en compte se cas de figure, et il me marque ligne ajouté, et donc il veux pas corriger |
Tu ne peux pas modifier le jeu entre l'exportation des dialogues et la réimportation des dialogues corrigés.
Si tu fais ça, les numéros de ligne sont chamboulés !
Chaque message est localisé par : numéro de map > numéro d'évènement > numéro de page > numéro de ligne.
Si tu modifies le code évènementiel, ça peut créer des décalages, et le numéro de ligné exporté ne correspondra plus à rien, ne pourra pas être réimporté.
Dans ton cas, tu vas devoir réexporter tous les dialogues du jeu, et recommencer la correction. (puis réimporter les correctifs, et enfin continuer à travailler sur ton jeu)
|
Es-tu une star ? | Kujira no Hara | Muma|Rope | Polaris 03 | La 7e porte |
|
|
|