RPG Creator : créez votre MMORPG ou RPG sans aucune connaissance en programmation


Disponible le 4 Juin !




- Jouez à votre jeu sur tablettes tactiles, Smartphones et navigateurs Web
- Personnalisez vos menus
- Dessinez facilement et rapidement vos cartes
- Créez des actions pour le combat A-RPG


www.rpgcreator.net


Heures au format UTC + 1 heure [ Heure d’été ]


Règles du forum


Consultez la liste des Scripts : cliquez ici



Publier un nouveau sujet Répondre au sujet  [ 6 messages ] 
Auteur Message
 Sujet du message: Correcteur d''orthographe
MessagePublié: 14 Fév 2008, 15:12 
Villageois (Nv 2)

Inscrit le: 18 Nov 2007, 01:00
Messages: 37
Points d'aide: 0/60

Créations :

Voir ses créations

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.
Code: Tout sélectionner
#=================================
# Correcteur d'orthographe
# Script créé par Luxx et John
#=================================
#
#
# 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] = "357273277Ce fichier a été enregistré avec un codage Unicode UTF-8.
"
@messages[1] = "Si vous voyez des caractères bizarres à la place des accents, c'est que votre logiciel ne lit pas ce codage.
"
@messages[2] = "Pour convertir le fichier en codage standard ouvrez le avec le bloc note et faites "Enregistrer sous" avec un codage ANSI
"
@messages[3] = "Le fichier corrigé final devra être enregistré avec un codage Unicode UTF-8.
"
@messages[4] = "Ce fichier devra impérativement s'appeler "Messages OK.txt".
"
@messages[5] = "Ne modifiez pas le code au début de chaque ligne.
"
@messages[6] = "Ne rajoutez aucune ligne.
"
@messages[7] = "Ne supprimez pas ces lignes.

"
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é !
",
" Le résultat se trouve dans le fichier
",
""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]+"
")
elsif event.code == 102
for i in 0...event.parameters[0].size
@messages.push(name+(i+1).to_s+" : "+event.parameters[0][i]+"
")
end
end
end


def start_correction
if FileTest.exist?("Messages OK.txt") == false
print("Le fichier "Messages OK.txt" est introuvable !
",
"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] != "357273277"
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] == "
"
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
Code: Tout sélectionner


Haut
 Profil  
 
 Sujet du message: Re: Correcteur d'orthographe
MessagePublié: 04 Juin 2010, 09:46 
Villageois (Nv 2)

Inscrit le: 01 Sep 2008, 00:00
Messages: 31
Points d'aide: 0/60

Créations :

Voir ses créations

Bonjour,

serait-il possible de l'avoir sous VX svp ?!

sinon, bon travail xd


Merci d'avance,


Haut
 Profil  
 
 Sujet du message: Re: Correcteur d'orthographe
MessagePublié: 28 Juin 2010, 19:10 
Villageois (Nv 4)

Inscrit le: 10 Nov 2008, 01:00
Messages: 65
Niveau RPG Maker: 8.5/10 env.
Logiciel(s) préféré(s): rpg maker xp
Point(s) Fort(s): event maker
Sexe: Masculin
Points d'aide: 0/60

Créations :

- sortir renter de la voiture


Voir ses créations

Bonjour

une petite question est ce que c'est normal que quand j'ouvre mon jeu avec ton script il me mets directement ceci :

''????? 'correcteur' ? 131 ??? SyntaxError ????????


Haut
 Profil  
 
 Sujet du message: Re: Correcteur d'orthographe
MessagePublié: 23 Sep 2010, 00:53 
Membre VIP
Membre VIP
Avatar de l’utilisateur

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

Je me permet de remonter un peu ce topic pour dire que je l'ai corrigé un peu. Malgré un codage que je trouve correct aux vues de mes qualités de scripteur quasi nules, je relève toutes fois quelques incohérences d'écriture dans le script que j'ai modifiées car d'un basique à tomber par terre.

Parcontre je coince pour la lecture du fichier Messages OK.txt, bien que l'ayant mis sons format unicode cité par la biais de deux logiciels différents, il continue à me dire que le format n'est pas bon. Pour moi il doit y avoir une coquille dans la partie du code concernée. Mais en attendant voici déjà les modifs que j'ai effectués:

Code: Tout sélectionner
#=================================
    # Correcteur d'orthographe
    # Script créé par Luxx et John
    #=================================
    #
    #
    # 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] = "357273277Ce fichier a été enregistré avec un codage Unicode UTF-8.
    "
    @messages[1] = "Si vous voyez des caractères bizarres à la place des accents, c'est que votre logiciel ne lit pas ce codage.
    "
    @messages[2] = "Pour convertir le fichier en codage standard ouvrez le avec le bloc note et faites 'Enregistrer sous' avec un codage ANSI
    "
    @messages[3] = "Le fichier corrigé final devra être enregistré avec un codage Unicode UTF-8.
    "
    @messages[4] = "Ce fichier devra impérativement s'appeler 'Messages OK.txt'.
    "
    @messages[5] = "Ne modifiez pas le code au début de chaque ligne.
    "
    @messages[6] = "Ne rajoutez aucune ligne.
    "
    @messages[7] = "Ne supprimez pas ces lignes.

    "
    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é !
    ",
    " Le résultat se trouve dans le fichier
    ",
    "'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]+"
    ")
    elsif event.code == 102
    for i in 0...event.parameters[0].size
    @messages.push(name+(i+1).to_s+" : "+event.parameters[0][i]+"
    ")
    end
    end
    end


    def start_correction
    if FileTest.exist?("Messages OK.txt") == false
    print("Le fichier 'Messages OK.txt' est introuvable !
    ",
    "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] != "357273277"
    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] == "
    "
    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

_________________
Image
Faire, chercher, persévérer et s'appliquer sont les verbes du maker


Haut
 Profil  
 
 Sujet du message: Re: Correcteur d'orthographe
MessagePublié: 23 Sep 2010, 16:18 
Membre VIP
Membre VIP
Avatar de l’utilisateur

Inscrit le: 14 Avr 2007, 00:00
Messages: 1738
Localisation: ENS Rennes
Niveau RPG Maker: +∞
Point(s) Fort(s): Ruby
Sexe: Masculin
Points d'aide: 60/60

Créations :

Voir ses créations

Si c'est remonté, on peut y aller : il est de qui le script ?
viewtopic.php?f=36&t=102272
C'est le même script, mais d'un autre auteur, bizarre.

Une recherche google ne permet de trouver que ceci :
http://www.rpg-maker.fr/scripts-98-corr ... 4748221796 (hoho, c'est plus de la pub :p)

En passant, les deux version trouvées içi ne sont pas complète.
La ligne qui m'a permis de faire le test est incomplète, et ne se retrouve entière que sur le lien d'oniro.

L'un à spolié l'autre, c'est indéniable, mais qui ?
Au final, l'erreur n'est pas corrigé (elle est super chiante à voir, je l'accorde), et impossible de savoir qui remercier. (par contre, ne pas hésiter pour Lidenvice :p)

@Lidenvice :
Si tu pouvais utiliser le script du second lien pour rajouter tes modifications, ce serait bien. Le script est identé, et les erreurs de copié-collé successifs n'y sont pas. De plus, l'un des deux script est peut-être déjà plus à jour (il n'est malheureusement pas daté).
EDIT: j'ai corrigé :p
L'erreur due aux aux copiés collés est corrigée, mais le forum en apporte d'autre...
cf "<!-- e --><a href="mailto:8...@messages.size">8...@messages.size</a><!-- e -->" au lieu de 8...@messages.size

_________________
Image
Projets
> ORAGE (Alternative 2D library) (#=> voir sur Github)
> &Co (#=> http://darkleo.alwaysdata.net/)


Dernière édition par darkleo le 24 Sep 2010, 22:09, édité 1 fois au total.

Haut
 Profil  
 
 Sujet du message: Re: Correcteur d'orthographe
MessagePublié: 24 Sep 2010, 21:53 
Membre VIP
Membre VIP
Avatar de l’utilisateur

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 lui

Luxx 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 :D
Mais si ça se trouve je suis troublant!!! Arg non pas ca!!! :mrgreen:
En fait si, ça me va bien de troubler le monde avec mon antinormique attitude.

_________________
Image
Faire, chercher, persévérer et s'appliquer sont les verbes du maker


Haut
 Profil  
 
Afficher les messages depuis:  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 6 messages ] 

Heures au format UTC + 1 heure [ Heure d’été ]


Qui est en ligne ?

Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 2 invités


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas insérer de pièces jointes dans ce forum

Rechercher pour:
Sauter vers:  
cron
RPG Creative Forum version 5 ; Tous droits réservés
phpBB Group (Traduit par Xaphos)
Optimisé pour une résolution 1024*728