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

Apprendre
RPG Maker

Guides
Tutoriels
Making-of

Dans le
Forum

Section Entraide

Jeux: Beetle Ninja / Jeux: Le Miroir de Philéas / Tutos: Améliorer les rencontres (...) / Tutos: Quelques tests géométriques (...) / Programmes: LiceCAP / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

89 connectés actuellement

10795629 visiteurs
depuis l'ouverture

7 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Hellsoft

Planète Glutko

Alex d'Or

Le Comptoir Du clickeur

Lunae - le bazar d'Emz0

New RPG Maker

RPG Fusion

Tous nos partenaires

Devenir
partenaire



Correcteur d'orthographe
Script pour RPG Maker XP
Ecrit par zeus81
Publié par zeus81 (lui envoyer un message privé)
Signaler un script cassé

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 fais ce script pour vous aider à corriger vos fautes d'orthographe.

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
#=================================
# 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é.")
        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)

❤ 0

On fait comment pour qu'il marche ? Oo :D

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)

❤ 0

Lis les commentaires en haut du script...


parasoft - posté le 23/08/2011 à 13:16:27 (214 messages postés)

❤ 0

« 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)

❤ 0

ile meu fo seu scripte xD


Elverion - posté le 08/11/2014 à 20:32:36 (14 messages postés)

❤ 0

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)

❤ 0

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:

image

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)

❤ 0

Vieux bug d'oniro qui corrompt les 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
#=================================
# 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é.")
        return false
      end
    end
    return true
  end
 
end


spurdo - posté le 22/02/2015 à 22:32:52 (3 messages postés)

❤ 0

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

image


zeus81 - posté le 23/02/2015 à 18:11:45 (11071 messages postés)

❤ 0

Ç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)

❤ 0

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 (24 messages postés)

❤ 0

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 (2456 messages postés) - staff -

❤ 0

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.

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

Haut de page

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

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Articles perso | 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 | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Jeux complets | Tous les jeux | 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