| Membre VIP |
 |
 |
Inscrit le: 06 Déc 2006, 01:00 Messages: 341 Niveau RPG Maker: Confirmé Logiciel(s) préféré(s): RPG Maker XP Point(s) Fort(s): Les events et scénarios Points d'aide: 39/60
Créations :
- Eude Tension
Voir ses créations
|
C'est Zeus81 qui en est vraisemblablement l'auteur. Comment je peux l'affirmer, bah déjà il est scripteur plutôt confirmé: Ce qui penche pour luiLuxx et John Et les deux là? Bah deux scripts discutables dont un manifestement même pas testé et l'autre à la limite de l'utile Donc le script non bugué: - Code: Tout sélectionner
#================================= # 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
Je l'ai testé, à première vue il marche parfaitement, faites juste attention au retour à la ligne, logiquement les numeros de ligne doivent se suivre du genre: 0/001/001/000/000/0 : J'ai froid 0/001/006/001/004/0 : Moi aussi Et non pas: 0/001/001/000/000/0 : J'ai froid dans une matinée d'automne glaciale 0/001/006/001/004/0 : Ouais moi aussi Et non plus: 0/001/001/000/000/0 : oui0/001/006/001/004/0 : non Ca pourrai eventuellement créer un bug même si j'ai pas pu en constater. Je n'ai donc fait aucune modif du script ci dessus puisse qu'il marche, lui. Bonne continuations Ps: C'est Lidenvice pas Lidenvide. Décidément, je dois avoir un pseudo si troublant qu'on a du mal à le lire Mais si ça se trouve je suis troublant!!! Arg non pas ca!!! En fait si, ça me va bien de troubler le monde avec mon antinormique attitude.
_________________
 Faire, chercher, persévérer et s'appliquer sont les verbes du maker
|
|