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  [ 5 messages ] 
Auteur Message
 Sujet du message: Extracteur de Messages
MessagePublié: 13 Nov 2008, 18:16 
Bourgeois (Nv 4)

Inscrit le: 15 Juil 2007, 00:00
Messages: 269
Points d'aide: 27/60

Créations :

Voir ses créations

Il est parfois fort fatiguant de fouiller les évènements de son projet pour relire les messages et en corriger les fautes. Sans compter qu'il est facile de louper des messages.

L'outil que voici, l'Extracteur de Messages, abrégé EDM, est un script-outil qui vous permet d'extraire les messages de votre projet, sous forme de fichier texte. Il est ainsi beaucoup plus aisé de parcourir les fichiers textes pour retravailler les dialogues, et les fichiers textes peuvent aussi être passés sous correcteur orthographique.

Une fois le travail effectué, l'EDM se charge d'appliquer vos modifications dans votre projet.


Attention :
Code: Tout sélectionner
# Quelques précautions s'imposent tout de même, car ce
# n'est pas un outil magique ! Ce script est sensible car
# il modifie directement les données de votre jeu !
# Il faut faire attention à ne pas l'utiliser n'importe comment,
# sous peine de voir vos textes décalés ou supprimés.


Les explications sont en entête du script, lisez bien tout le paragraphe pour éviter de vous retrouver avec vos dialogues perdus à cause d'un manque de précaution... Mais le script est fonctionnel, écrit et testé par moi, et je l'utilise.

N'hésitez pas à poser des questions en cas de besoin.

_________________
Image
Reincarnations. Une jeune fille. Un lourd fardeau. Une quête millénaire.
Chapitre 1 disponible


Haut
 Profil  
 
 Sujet du message: Re: Extracteur de Messages
MessagePublié: 13 Nov 2008, 18:17 
Bourgeois (Nv 4)

Inscrit le: 15 Juil 2007, 00:00
Messages: 269
Points d'aide: 27/60

Créations :

Voir ses créations

Code: Tout sélectionner
# -----------------------------------------------------
#   EDM - Extracteur de Messages - RmXP
#   Par Krosk - v1.01
# -----------------------------------------------------
# Ce script à placer au dessus de Main vous permet d'extraire
# le texte de vos messages, dans vos events, sous forme de
# fichier texte .txt (codage Unicode/UTF-8), éditable par tout
# logiciel de traitement de texte, et qui permet de
# faciliter la correction orthographique entre autre.
#
# Quelques précautions s'imposent tout de même, car ce
# n'est pas un outil magique ! Ce script est sensible car
# il modifie directement les données de votre jeu !
# Il faut faire attention à ne pas l'utiliser n'importe comment,
# sous peine de voir vos textes décalés ou supprimés.
#
# -------------------------------------
#   A propos de l'encodage de texte
# -------------------------------------
# Les fichiers textes créés par EDM sont codés sous le format
# UTF-8, le seul format compatible à ma connaissance entre
# les chaînes de caractère sous RMXP et nos accents français.
# Lorsque vous éditez ces fichiers, pensez s'il vous plaît
# à conserver cet encodage, sous peine de perdre vos accents,
# lorsque vous importez vos textes modifiés.
#
# Sous Bloc Note : L'enregistrement devrait se faire sous le format
#                  UTF-8 automatiquement. Vous pouvez quand même vous
#                  en assurer en faisant "Fichier", "Enregistrer sous",
#                  et en sélectionnant l'encodage UTF-8.
#
# Sous OpenOffice Writer : Après édition, l'enregistrement doit être manuel,
#                          en faisant "File", "Save As", et dans le champ
#                         "Type", assurez vous de prendre "Text encoded (.txt)".
#
# Sous les autres éditeurs : Enregistrez sous le format Unicode ou UTF-8.
#                            N'enregistrez pas sous le format ANSI.
#
# -------------------------------------
#   Comment utiliser ce script
# -------------------------------------
# Collez ce script EDM au dessus de main.
#
# EDM ACTIVATE : réglez à true pour lancer EDM. Vous aurez
#                une interface au démarrage de votre projet.
# EDM_MAP : Numéro ID de la map à réécrire.
#
# - Extraire le texte du jeu
#   Le texte du jeu sera extrait dans le dossier EDMString du répertoire
#   de votre jeu.
#   Chaque carte qui contient du texte aura son propre fichier texte
#   associé, avec dedans l'ensemble des évènements messages, dans un
#   certain ordre.
#   EDM fermera automatiquement le projet à la fin de la tâche.
#
# - Ecrire le texte dans le jeu
#   Le texte de vos évènements messages sera réécrit à partir
#   des fichiers textes extraits.
#  
#   Pour plus de contrôle :
#   Si vous spécifiez EDM_MAP avec un numéro ID, seule cette carte sera corrigée.
#   Si vous spécifiez EDM_MAP avec une liste d'ID, les maps respectives seront
#           corrigées.
#   Si vous écrivez EDM_MAP = 0, toutes les maps seront corrigées.
#   Si vous écrivez EDM_MAP = -1, la fonction d'écriture sera désactivée
#           pour éviter les écritures non intentionnelles.  
#
#   EDM fermera automatiquement le projet en test à la fin de la tâche.
#   Il vous faudra fermer votre projet sous l'éditeur RMXP pour observer
#   les changements.
#
# - Créer un Backup
#   Vous pouvez sauvegarder l'état de vos messages.
#   Les textes seront sauvegardés dans EDMBackup.
#   C'est exactement la même fonction que l'extraction de texte.
#
# - Restaurer à partir d'un Backup
#   En cas d'erreur de manipulation, vous pouvez charger le contenu du
#   Backup, pour restaurer l'état de vos messages.
#   C'est la même fonction que "Ecrire le texte dans le jeu", excepté
#   qu'il prend le Backup comme source.
#
# Une fois que vous avez fini, vous pouvez désactiver EDM en écrivant false
# devant EDM_ACTIVATE.
#
# Le script n'est pas intrusif, et ne modifiera pas vos autres scripts.
# N'ayez pas peur en voyant ce script réécrire vos variables $fontface, ...
# il ne les réécrit que lorsque vous utilisez EDM.
#
# --------------------------------------
#   Comment éditer vos fichiers textes
# --------------------------------------
# EDM extrait les lignes de message de vos évènements et les organise
# par fichier qui porte le nom MapXXX.txt, dans le dossier EDMString/.
#
# Chaque fichier texte est une succession de paragraphes, chaque paragraphe est
# un évènement "message".
#
# Les paragraphes sont de cette forme :
#     ____________________#EDMTAG#START#2#1
#     Bienvenue à l'auberge.
#     Voulez-vous prendre une chambre ?
#
# Une ligne d'entête pour signaler le début d'un paragraphe, suivie
# de quelques lignes de texte qui correspondent aux lignes de message
# dans l'éditeur d'évènement RMXP.
#
#
# Pour éditer le texte, il vous suffit de l'ouvrir, de corriger les lignes de
# texte et d'enregistrer le fichier (voir - A propos de l'encodage de texte -).
#
# Vous pouvez ajouter ou supprimer des lignes de texte au sein d'un paragraphe.
# Par exemple :
#
#     ____________________#EDMTAG#START#2#1
#     Bienvenue à l'auberge.
#     Voulez-vous prendre une chambre ?
#     ____________________#EDMTAG#START#2#1
#     Nous avons plusieurs tarifs.
#     C'est pour combien de personnes ?
#
# Après modification :
#
#     ____________________#EDMTAG#START#2#1
#     Bienvenue à l'auberge.
#     Nous avons actuellement des chambres de libre.
#     Voulez-vous prendre une chambre ?
#     ____________________#EDMTAG#START#2#1
#     C'est pour combien de personnes ?
#
# EDM se charge de recréer correctement vos évènements de message.
#
# *****
# ATTENTION ! Une précaution est à prendre quand même, veuillez éviter d'ajouter
# plus de 4 lignes à un paragraphe. Je ne les prend pas en compte.
# Si vous voulez créer un paragraphe supplémentaire, faites le dans l'éditeur
# d'évènement RMXP et re-exportez vos textes.
#
# *****
# ATTENTION ! EDM n'est pas capable d'insérer un nouvel évènement message,
# et de créer un nouveau paragraphe ! Il n'est capable que de modifier
# les paragraphes existants et les redimensionner !
#
# Il s'agit avant tout d'un outil pour faciliter la correction orthographique
# et éventuellement la traduction, mais en aucun cas il ne remplace l'éditeur
# de texte !
#
# --------------------------------------------------------------------------

EDM_ACTIVATE = true
EDM_MAP = -1

if EDM_ACTIVATE

  $fontface = "Arial"
  $fontsize = 22
  $data_system        = load_data("Data/System.rxdata")
  $game_system = Game_System.new

  loop do
    edt_read = false
    edt_write = false
    backup = false
    dummy= Window_Command.new(440, ["EDM - Extracteur de Messages - Par Krosk"])
    dummy.x = 100
    dummy.y = 112
    dummy.active = false
    dummy.index = -1
    window = Window_Command.new(320, ["Fermer EDM",
      "Extraire le texte du jeu", "Insérer le texte après extraction",
      "Créer un Backup", "Restaurer à partir d'un Backup"])
    window.x = 160
    window.y = 176
    loop do
      Graphics.update
      Input.update
      window.update
      if Input.trigger?(Input::B)
        exit
        return
      end
      if Input.trigger?(Input::C)
        case window.index
        when 0
          exit
        when 1
          edt_read = true
          backup = false
        when 2
          edt_write = true
          backup = false
        when 3
          edt_read = true
          backup = true
        when 4
          edt_write = true
          backup = true
        end
        break
      end
    end
    window.dispose
    dummy.dispose
   
    if edt_read
      if not backup
        dummy = Window_Command.new(440, [
          "Extraire le texte du jeu dans ./EDMString/"])
      else
        dummy = Window_Command.new(440, [
          "Création d'une sauvegarde dans ./EDMBackup/"])
      end
      dummy.x = 100
      dummy.y = 112
      dummy.active = false
      dummy.index = -1
      window = Window_Command.new(320, ["Annuler",
        "Confirmer l'extraction du texte"])
      window.x = 160
      window.y = 176
      window.index = 1 if backup
      utf_tag = ["EF", "BB", "BF"].pack("H2H2H2")
     
      loop do
        Graphics.update
        Input.update
        window.update
        if Input.trigger?(Input::C) or backup
          case window.index
          when 0
            break
          when 1
            map_infos = load_data("Data/MapInfos.rxdata")
            for map_id in map_infos.keys
              map_data = load_data(sprintf("Data/Map%03d.rxdata", map_id))
              dir_string = backup ? "EDMBackup" : "EDMString"
              string = sprintf(dir_string + "/Map%03d.txt", map_id)
              Graphics.update
              file = nil
              for event in map_data.events
                for i in 0...event[1].pages.size
                  for command in event[1].pages[i].list
                    if command.code == 101
                      if file == nil
                        if not File.exist?(dir_string)
                          Dir.mkdir(dir_string)
                        end
                        file = File.open(string, "w")
                        file.write(utf_tag + string+"
")
                      end
                      file.write(
                        "____________________#EDMTAG#START##{event[0]}##{i}
")
                      file.write(command.parameters[0]+"
")
                    end
                    if command.code == 401
                      file.write(command.parameters[0]+"
")
                    end
                  end
                end
              end
              file.close if file != nil
              file = nil
            end
           
            dummy2 = Window_Command.new(500, ["Extraction terminée."])
            dummy2.x = 70
            dummy2.y = 272
            dummy2.active = false
            dummy2.index = -1
            loop do
              Graphics.update
              Input.update
              if Input.trigger?(Input::C)
                exit
              end
            end
           
           
            exit
          end
        end
        if Input.trigger?(Input::B)
          break
        end
      end
      window.dispose
      dummy.dispose
    end
   
    if edt_write
      if not backup
        case EDM_MAP
        when 0
          dummy = Window_Command.new(400, [
            "Ecrire les textes de toutes les cartes."])
          window = Window_Command.new(320, ["Annuler",
            "Confirmer l'écriture du texte"])
        when -1
          dummy = Window_Command.new(400, ["Désactivé. Modifiez EDM_MAP."])
          window = Window_Command.new(320, ["Retour"])
        else
          if EDM_MAP.type == Array
            dummy = Window_Command.new(400, [
              "Ecrire les textes des cartes d'ID:#{EDM_MAP.inspect}."])
          else
            dummy = Window_Command.new(400, [
              "Ecrire les textes de la carte ID:#{EDM_MAP}."])
          end
          window = Window_Command.new(320, ["Annuler",
            "Confirmer l'écriture du texte"])
        end
      else
        dummy = Window_Command.new(400, ["Restauration du Backup."])
        window = Window_Command.new(320, ["Restauration...", "... en cours"])
      end
      dummy.x = 120
      dummy.y = 112
      dummy.active = false
      dummy.index = -1
     
      window.x = 160
      window.y = 176
      window.index = 1 if backup
     
      loop do
        Graphics.update
        Input.update
        window.update
        if Input.trigger?(Input::C) or backup
          case window.index
          when 0
            break
          when 1
            map_infos = load_data("Data/MapInfos.rxdata")
            for map_id in map_infos.keys
              map_string = sprintf("Data/Map%03d.rxdata", map_id)
              map_data = load_data(map_string)
              string = sprintf("EDMString/Map%03d.txt", map_id)
              string = sprintf("EDMBackup/Map%03d.txt", map_id) if backup
              if not File.exist?(string)
                next
              end
             
              if (EDM_MAP.type == Fixnum and map_id == EDM_MAP) or
                  (EDM_MAP.type == Array and EDM_MAP.include?(map_id)) or
                  (EDM_MAP.type == Fixnum and EDM_MAP == 0) or backup
                file = File.open(string, "r")
                # Suppression des tags
                file.readline
                # Buffer
                buffer = []
                ib = -1
                file.readlines.each { |line|
                    if line.include?("EDMTAG")
                      ib += 1
                      buffer[ib] = []
                    else
                      buffer[ib].push(line.chomp)
                    end
                }
                ib101 = -1
                for event in map_data.events
                  for page in event[1].pages
                    for i in 0...page.list.size
                      # Nettoyage préliminaire des paragraphes
                      if page.list[i].code == 401
                        page.list[i] = nil
                      end
                    end
                    page.list.compact!
                    for command in page.list
                      # Début de message
                      if command.code == 101
                        ib101 += 1
                        command.parameters[0] = buffer[ib101].shift
                        # Construction du reste du paragraphe
                        while not buffer[ib101].empty?
                          page.list.insert(page.list.index(command) + 1,
                            RPG::EventCommand.new(401, 0, [buffer[ib101].pop]))
                        end
                      end
                    end
                  end
                end
                file.close
               
                map_file = File.open(map_string, "wb")
                Marshal.dump(map_data, map_file)
                map_file.close
              end
            end
           
            dummy2 = Window_Command.new(500, [
              "Écriture terminée. Fermez votre projet sous RMXP."])
            dummy2.x = 70
            dummy2.y = 272
            dummy2.active = false
            dummy2.index = -1
            loop do
              Graphics.update
              Input.update
              if Input.trigger?(Input::C)
                exit
              end
            end
           
          end
        end
        if Input.trigger?(Input::B)
          break
        end
      end
      window.dispose
      dummy.dispose
    end
   
  end
end

_________________
Image
Reincarnations. Une jeune fille. Un lourd fardeau. Une quête millénaire.
Chapitre 1 disponible


Haut
 Profil  
 
 Sujet du message: Re: Extracteur de Messages
MessagePublié: 09 Juil 2010, 21:41 
Villageois (Nv 2)
Avatar de l’utilisateur

Inscrit le: 20 Juin 2010, 03:30
Messages: 22
Sexe: Masculin
Points d'aide: 0/60

Créations :

Voir ses créations

Salut! Ton script est vraiment formidable et fonctionnel.
Mais cependant Il reste un petit défaut, quand on édite le texte et on le réinsère
alors avec ton EDM, le texte est décalé, ce qui vraiment un problème
par ce que les ligne travese la limite des messages à droite, et on se retrouve avec un message
coupé à droite.
Exemple :
Texte avant l'opération :
Citer:
Bonjour mon ami.

Après :
Citer:
(éspace)Bonjour mon ami


Résultat dans le jeu :
Citer:
Bonjour mon a


"mi" disparut car il se trouve après la limite des messages à droite.

Merçi de corriger ce problème ! ;)

Pour ce qui en dessous : J'ai lu absolument toute l'explication, je n'ai fait aucune erreur.

_________________
Voir RICSRB ...


Dernière édition par nerag01 le 09 Juil 2010, 22:28, édité 1 fois au total.

Haut
 Profil  
 
 Sujet du message: Re: Extracteur de Messages
MessagePublié: 09 Juil 2010, 22:09 
Ancien membre du staff
Ancien membre du staff
Avatar de l’utilisateur

Inscrit le: 20 Juil 2008, 00:00
Messages: 1726
Niveau RPG Maker: correct
Point(s) Fort(s): polyvalent
Sexe: Masculin
Points d'aide: 0/60

Créations :

- Création d'un sous menu

- Personnalisation des tailles d'icônes et de curseurs

- Affichages des altérations d'état via des icônes


Voir ses créations

Il a clairement précisé que ce genre de problème pouvait avoir lieu. Ce script a ses limites, il a au moins le mérite de permettre de repérer les fautes d'orthographe. Sinon, je ne pense pas que tu puisses demander à quelqu'un de corriger son script deux ans après quand cette personne ne vient plus sur le forum depuis des lustres. Poste toujours une demande dans l'aide sur les scripts, même si ce système est assez compliqué, il y aura peut-être un excellent scripteur qui passera par là..

_________________
Image


Haut
 Profil  
 
 Sujet du message: Re: Extracteur de Messages
MessagePublié: 09 Juil 2010, 22:21 
Garde
Garde
Avatar de l’utilisateur

Inscrit le: 26 Sep 2006, 00:00
Messages: 1973
Points d'aide: Illimité

Créations :

Voir ses créations

Sinon tu as Dreamaker, jamais utilisé mais ça a l'air de fonctionner.
http://forum.rpgcreative.net/viewtopic. ... =18365html
(on fera abstraction du titre pompeux et des cinq pages d'engueulade inutile qui en découlent)

Après y'a peut-être d'autres techniques/logiciels/scripts.

_________________
Image
Image


Haut
 Profil  
 
Afficher les messages depuis:  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 5 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