Oyez, oyez !

Les résultats du vote sur les meilleurs RPG de tous les temps sont désormais dévoilés dans ce message !

Merci à toutes et à tous pour votre participation !

N'hésitez pas à aller commenter, ajouter des jeux auxquels vous n'auriez pas pensé...

Création d'un Editeur Baldur's Gate

<img src="filesforums/mods/editeur_baldur.jpg" alt="editeur" class="image_left" />Cette section traite du développement d'un outil graphique pour créer des mods Infinity Engine.
Cocrane
Adepte de Grondemarteau
Ogre mage
Messages : 1328
Enregistré le : dim. 21 mars 2010, 12:03
Localisation : Paris
Contact :
Statut : Hors ligne

Création d'un Editeur Baldur's Gate

.

Message par Cocrane »

Bonsoir à la Couronne de Cuivre,

je fais un sujet à part, compte tenu que le titre de mon sujet précédent n'est plus adapté.

J'ai fait une mise à jour 2.0.1 de mon éditeur.
Installeur de l'éditeur
1-Correction du bug sur l’utilisation du raccourci Bureau ou ‘Démarrer | programme’ pour lancer l’éditeur.

2-L’installeur ne propose plus par défaut le chemin
« C:\program files » qui est un chemin à ne pas utiliser.

Chemin de la V2.0.1 (8Mo)
http://www.mediafire.com/?erbosn8abldty9d

Voici quelques Ecrans:
1- Menu Créature version 1
Image

2- Menu Dialogue Version 1
Image

L'éditeur est destiné à tous ceux qui veulent modder avec un outil plus pratique que les outils actuels.

J'ai besoin de personnes pour
-m'expliquer les besoins détaillés du Modding afin de réaliser l'éditeur.
-de critiques sur l'outil pour l'améliorer.

Au plaisir de vous lire.

Coco
Cocrane
Adepte de Grondemarteau
Ogre mage
Messages : 1328
Enregistré le : dim. 21 mars 2010, 12:03
Localisation : Paris
Contact :
Statut : Hors ligne
.

Message par Cocrane »

Bonsoir.
après 50 visites sans retour.

J'en conclu que le sujet n'intéresse personne.

Coco
Avatar du membre
Isaya
Adepte de Grondemarteau
Planaire
Messages : 6990
Enregistré le : mar. 22 juil. 2003, 21:03
Localisation : Plaisir
Contact :
Statut : Hors ligne
.

Message par Isaya »

J'ai téléchargé l'éditeur mais je n'ai pas eu le temps d'y jeter un coup d'oeil. A priori, je ne suis pas intéressé effectivement, n'ayant pas l'intention de faire un mod (au moins dans l'immédiat).

Cependant, ayant tout de même un peu d'expérience du modding, mais peu avec WeiDU, je serais en mesure de donner mon avis sur certains points ou de répondre à des questions techniques sur le moteur de jeu.

L'éditeur pourrait aussi intéresser l'équipe de traduction. En partant du mod à traduire déjà installé dans le jeu, je suppose que l'éditeur permettrait de consulter les dialogues à traduire et leur contexte (notamment le sexe du personnage qui parle et les enchainements) sans avoir à lire le fichier d. Near Infinity me permet déjà de le faire, mais un outil plus simple d'utilisation ne serait pas de refus pour des gens rebutés par la complexité de cet outil ou des fichiers d.

A suivre d'ici une dizaine de jours.
Avatar du membre
Le Marquis
d'Oghmatique
Golem de pierre
Messages : 3396
Enregistré le : jeu. 17 juil. 2008, 15:45
Localisation : Sudiste
Statut : Hors ligne
.

Message par Le Marquis »

après 50 visites sans retour.

J'en conclu que le sujet n'intéresse personne.

Pas forcément. Les moddeurs ne passent en général pas tous les jours sur la couronne, certains ne viennent qu'une fois tous les 15 jours ou même une fois pas mois, donc il faut attendre un peu. 50 visites, ça peut aussi être des curieux et en fait c'est pas si mal pour un topic très spécifique comme le tien.
N'étant pas moddeur, je ne peux hélas pas te dire grand chose de plus.
I believe in possibility
I believe someone's watching over me
And finally I have found a way to be
Happy, happy
Avatar du membre
Umbre
Basilic majeur
Messages : 2267
Enregistré le : jeu. 21 août 2008, 01:56
Localisation : Quelque part en France
Statut : Hors ligne
.

Message par Umbre »

Question idiote je sens, mais Shadow Keeper ne fait pas la même chose?? :gign:
Le vrai pouvoir se cache dans l'ombre.

La bio de Umbre, Tieffline demi Elfe de Lune et moine de la Lune Noire: ici
Quêtes en cour: Le voyage de l'Ombre et Le réveil de l'Ombre couleur RP: #FFCC33
Avatar du membre
Mornagest
Grand Gourou
Élu de Mystra
Messages : 19173
Enregistré le : ven. 17 oct. 2003, 10:48
Localisation : Juste derrière vous, prêt à hurler BOUH !
Statut : Hors ligne
.

Message par Mornagest »

Pas du tout :) avec SK, tu édites des sauvegardes du jeu : tu modifies des valeurs et variables sur ta partie en cours, sur des événements à venir ou survenus.

Avec l'éditeur de Cocrane, tu édites un dialogue, l'emplacement d'un personnage, d'un objet, tu ajoutes un personnage, une entrée dans le journal....
Administrateur général. Je modère dans cette couleur.

Rejoignez Melandis, la Cité du Chaos
La biographie de Mornagest ainsi que ses quêtes et sa couleur RP #6C84FF ; la biographie de Henk et sa couleur RP #3BBB34

"Ne vous imaginez pas être différente de ce qu'il eût pu sembler à autrui que vous fussiez ou eussiez pu être en restant identique à ce que vous fûtes sans jamais paraître autre que vous n'étiez avant d'être devenue ce que vous êtes."
(Lewis Caroll)
Avatar du membre
Umbre
Basilic majeur
Messages : 2267
Enregistré le : jeu. 21 août 2008, 01:56
Localisation : Quelque part en France
Statut : Hors ligne
.

Message par Umbre »

Aaaaaah d'accord. Donc c'est "le modding pour les nuls" quoi, bah là, je dis chapeau.
Sérieusement quand j'aurais le temps de m'y mettre c'est le genre d'outil qui pourrai mettre très utile.
Le vrai pouvoir se cache dans l'ombre.

La bio de Umbre, Tieffline demi Elfe de Lune et moine de la Lune Noire: ici
Quêtes en cour: Le voyage de l'Ombre et Le réveil de l'Ombre couleur RP: #FFCC33
Cocrane
Adepte de Grondemarteau
Ogre mage
Messages : 1328
Enregistré le : dim. 21 mars 2010, 12:03
Localisation : Paris
Contact :
Statut : Hors ligne
.

Message par Cocrane »

Bonsoir,
merci de vos retours.

1- Retour des tests.
Si il y en a qui ont testé l'éditeur, avez vous des remarques positives ou négatives?
Quelque chose manque sur la partie dialogue?

2- Partie PNJ
J'ai toujours le même soucis qu'à l'époque, Windev est pas adapté (ou ce sont mes connaissances :shok: ) pour décoder/coder le fichier CRE en un fichier txt exploitable.
Je vais voir pr faire cette partie en Langage C ou C++. Windev est capable d'appeler des programmes exterieurs comme Weidu.
Je vais remettre mes vieilles connaissances qui datent de 10 ans à jour ce WE et attaquer cette partie. C'est le moment du vous exprimer et d'être le plus précis possible.

Avez vous des besoins sur le sujet que vous n'avez pas dans les éditeurs actuels? :rtfm:

3- Traduction des dialogues

"
L'éditeur pourrait aussi intéresser l'équipe de traduction. En partant du mod à traduire déjà installé dans le jeu, je suppose que l'éditeur permettrait de consulter les dialogues à traduire et leur contexte (notamment le sexe du personnage qui parle et les enchainements) sans avoir à lire le fichier d. Near Infinity me permet déjà de le faire, mais un outil plus simple d'utilisation ne serait pas de refus pour des gens rebutés par la complexité de cet outil ou des fichiers d.
"

Il est possible de simuler tous les dialogues d'un Pnj et chacune de ses issues (cf documentation détaillée avec les imprimés écran fourni dans l'installation). La modification et sauvegarde d'un .d, ne nécessitent pas de .tra.
Je ne sais pas si c'est un avantage lorsque l'on traduit d'avoir le texte directement dans le .d.

Coco
Cocrane
Adepte de Grondemarteau
Ogre mage
Messages : 1328
Enregistré le : dim. 21 mars 2010, 12:03
Localisation : Paris
Contact :
Statut : Hors ligne
.

Message par Cocrane »

Bonsoir,

je travaille sur la décodage/codage du fichier CRE pour attaquer la partie créature. J'arrive finalement à le faire via Windev. Cependant une partie la description du CRE est floue sous
'http://iesdp.gibberlings3.net/file_formats/index.htm'

C'est la fin concernant les items.
"
//CRE V1.0 Items Table: This section details which items the character has. It consists of an array of entries formatted as follows:
0x0000 8 (resref) Resource name of the ITM file
0x0008 1 (byte) Item expiration time - item creation hour (replace with drained item)
0x0009 1 (byte) Item expiration time - (elapsed hour count divided by 256, rounded down) + 1 (replace with drained item)
* When the game hour and elapsed hour count for the current game time exceed these values, the item is removed.
0x000a 2 (word) Quantity/Charges 1
0x000c 2 (word) Quantity/Charges 2
0x000e 2 (word) Quantity/Charges 3
0x0010 4 (dword) Flags
* bit 0: Identified
* bit 1: Unstealable
* bit 2: Stolen
* bit 3: Undroppable

//CRE V1.0 Item Slots: This is an array keeping track of which items are located in each particular location in the CRE's inventory. There are 38 slots, and they are not the same as the order specified in specified in SLOTS.IDS. The actual order is:
* Helmet
* Armor
* Shield
* Gloves
* L.Ring
* R.Ring
* Amulet
* Belt
* Boots
* Weapon 1
* Weapon 2
* Weapon 3
* Weapon 4
* Quiver 1
* Quiver 2
* Quiver 3
* ?
* Cloak
* Quick item 1
* Quick item 2
* Quick item 3
* Inventory item (1 to 16)
* Magic weapon
* Selected weapon
* Selected weapon ability
* Each entry will be either 0xFFFF ("empty") or an index into the Items table. Selected is a dword indicating which weapon slot us currently selected. Values are from slots.ids - 35, with 1000 meaning "fist".
"

J'arrive à traduire item table. Cependant je n'ai pas de description de structure pour Item Slots. J'ai fait un test avec Drizzt. J'ai fait quelques tentatives mais j'obtiens rien de correct.

Il possède 8 item et item slot fait une taille de 160.
Si j'ai bien compris, le but est de signaler l'emplacement des objets sur le corps de Drizzt.

Qui as des infos sur le sujet?

Coco
Avatar du membre
Isaya
Adepte de Grondemarteau
Planaire
Messages : 6990
Enregistré le : mar. 22 juil. 2003, 21:03
Localisation : Plaisir
Contact :
Statut : Hors ligne
.

Message par Isaya »

C'est une bonne chose que tu aies trouvé le moyen d'exploiter les fichiers CRE directement depuis WinDev. En conséquence, j'imagine que tu devrais être en mesure de gérer tous les types de fichiers sans avoir à recourir au C.

La table des items slots est simplement une table d'entiers 16 bits signés. L'index de la table est celui indiqué dans l'ordre dans la description. Ainsi la première position est pour le casque et ainsi de suite. La valeur associée à chaque position pointe sur un élément de la table "Item table". La valeur 0 indique le premier de "Item table", la valeur 1 le deuxième et ainsi de suite. La valeur -1, ou FFFF en hexadécimal, indique qu'il n'y a pas d'objet à l'emplacement indiqué.
Du coup, cette table doit impérativement être cohérente de la table "Item table" en terme de quantité d'éléments pointés. Si "Item table" comporte 7 éléments, tu dois avoir 7 éléments différents de -1 dans la table "Item slots".

La table comporte 40 éléments. Elle fait donc 80 octets, pas 160. Es-tu certain de ta valeur ? Il y a 37 éléments d'inventaire réels ou presque : le nombre d'emplacement d'armes réellement exploitable dépend de la classe du personnage (jusqu'à 4) et le nombre de munitions réels est de 3 maximum (le 4ème est inaccessible dans tous les cas). Les trois derniers emplacements sont un peu particulier :
  • emplacement d'une arme créée par magie (marteau spirituel, ...)
  • sauvegarde du choix de l'arme actuellement sélectionné
  • pour le dernier, je ne sais pas trop, j'imagine que cela pourrait servir à une arme multi-forme (peut-être celle d'un sort dont j'ai oublié le nom qui adapte l'arme magique créée au type de personnage pour lui attribuer une arme qu'il sait manipuler)
Dans BG II, plusieurs fichiers de Drizzt sont un peu foireux, sur ce point. En particulier DRIZZT, C6DRIZZ, C6DRIZZ2 et C6DRIZZ3. Il y a un objet, "BOOT01", en troisième position dans "Item table", qui n'est pas utilisé car il y a un autre objet, "BOOTDRIZ", qui est affecté aux pieds. Dans ce cas précis, on pourrait probablement faire disparaître "BOOT01" du fichier CRE.
Pour le reste, la cohérence est tout de même respecté, dans son aspect le plus fondamental : tout élément référencé dans la table "Item slots" existe bel et bien dans "Item table". Dans le cas contraire, c'est le crash quasi assuré dans le jeu.

Pour avoir une meilleure vision, je te conseille vivement d'installer Near Infinity. C'est ce que j'ai utilisé pour faire les observations que j'ai postées. C'est un éditeur quasiment "binaire". J'entends par là qu'il affiche, dans l'onglet View, les structures pratiquement dans l'ordre des champs de la structure, sans véritable mise en forme autre que le découpage des champs de la structure (chaine de 8 caractères, entier 16 bits, ...). C'est donc un outil très appréciable pour appréhender le passage de la description d'une structure dans IESDP à un fichier réel du jeu.
Pour exploiter Near Infinity, il te suffit d'installer (si ce n'est pas déjà fait) le Java Runtime Environment à partir du site java.com. Je te conseille par ailleurs de télécharger la version de Near Infinity accessible à partir du lien de la version Bêta sur le site de Near Infinity. Elle est plus aboutie et tout à fait fonctionnelle, malgré son qualificatif de Bêta.

En attendant de tester ton programme, je réponds simplement à ta remarque sur l'aspect traduction. Quand nous traduisons un mod, nous avons un fichier d et un fichier tra associé. Quand on part du fichier tra, il faut retrouver dans le fichier d où la réplique est utilisée afin de connaître le contexte et les enchaînements. Mais une fois dans le fichier d, on n'a plus les textes des répliques, donc on est obligé de beaucoup alterner entre les deux. Par contre, il n'est pas du tout question de modifier le fichier d. Notre but est de créer un fichier tra en français contenant l'équivalent du fichier tra en anglais. L'éditeur ne nous sert qu'à mieux connaître le contexte, d'une façon plus lisible pour le profane que le contenu d'un fichier d. Pour ma part, j'emploie Near Infinity mais il peut rebuter certains qui ont peur de faire une bêtise en s'en servant (du fait de ses capacités d'édition).

Bonne continuation.
Cocrane
Adepte de Grondemarteau
Ogre mage
Messages : 1328
Enregistré le : dim. 21 mars 2010, 12:03
Localisation : Paris
Contact :
Statut : Hors ligne
.

Message par Cocrane »

Bonsoir,
merci de ton aide Isaya. Tes précisions et Near infinity m'ont permis de retrouver le résultat
de l'époque (en gros il y a 6 mois ^^ ).

Je vais passer à l'étape suivante, mémorisation des infos en base de données avant d'afficher à l'écran!

Pour la partie traduction, Tu pourras me dire si en l'état si l'éditeur est un plus pour vous. On pourra discuter des évolutions si il a des manques!

Coco
Cocrane
Adepte de Grondemarteau
Ogre mage
Messages : 1328
Enregistré le : dim. 21 mars 2010, 12:03
Localisation : Paris
Contact :
Statut : Hors ligne
.

Message par Cocrane »

J'arrive à lire, sauvegarder en base et écrire en binaire les fichiers CRE.

Je commence à réfléchir sur la présentation graphique.

Du coup, j'ai jeté un oeil sur les fichiers BAM, fichier spécifique à BG.
Je ne peux pas afficher l'image de l'item dans Windev ce qui est normal, c'est un format inconnu.

Visiblement NI n'a aucuns soucis pour afficher les icônes de ces fichiers.

J'ai trouvé la structure du fichier sous

'http://iesdp.gibberlings3.net/file_form ... bam_v1.htm'

Ca décrit l'item et son aspect graphique visiblement. Au 1ier abord, je ne vois pas comment en extraire la forme et les couleurs de l'item.

Qui a des infos?

Meri
Coco
Avatar du membre
Isaya
Adepte de Grondemarteau
Planaire
Messages : 6990
Enregistré le : mar. 22 juil. 2003, 21:03
Localisation : Plaisir
Contact :
Statut : Hors ligne
.

Message par Isaya »

Le fichier BAM est exploité dans le jeu pour quasiment tout ce qui se rapporte à l'aspect graphique. La description des formats de IESDP indique en particulier que le format sert aux animations, aussi bien des personnages que des lieux (feu qui flambe, eau qui coule). L'emploi du fichier BAM pour les icônes, les objets, ... est simplement un usage réduit, où le nombre d'images de l'animation serait réduit à 1 ou 2. Si elle est trop grande (limite variable en fonction du jeu), une image doit être découpée en morceaux appelés "frames". La façon de recomposer les différents morceaux est indiquée dans la description d'un cycle d'animation.

Les images d'un fichier BAM sont codées suivant un principe de palette. A la création de Baldur's Gate, occuper 3 Go, voire même 1 Go en installation recommandée, était considérable (en 1998, un disque de 4 Go était grand). Pour réduire l'espace occupé par les graphismes, les développeurs n'ont pas codé les images en 24 bits. Pour conserver de beaux graphismes, ils ont choisi de passer par des palettes de 256 couleurs, ce qui revenait à coder les images sur 8 bits de couleurs et d'y adjoindre la définition de palette dans toute la gamme de couleurs. Pour afficher une image en 24 bits, il faut donc passer par la table intermédiaire que constitue la palette.
En plus de la palette, il y a une définition qui indique quelle couleur est considérée comme transparente, en général du vert pur, sans doute en référence au cinéma.

Par ailleurs, le terme de fichier BAM recouvre deux types de structure de fichier : BAM et BAMC (compacté ou compressé, je ne sais jamais le terme qu'il faut employer). Chacun a une signature particulière sur les 8 premiers octets du fichier, le type et la version du format. Quand on ouvre un fichier BAM, il faut donc consulter cette information. Si le type est BAMC, le fichier est composé d'un en-tête BAMC, qui indique la taille de la zone de données une fois décompactées (utile pour réserver la mémoire nécessaire). La zone suit immédiatement l'en-tête dans le fichier.
Pour décompacter ces données, il suffit d'utiliser la bibliothèque Zlib. C'est une bibliothèque très communément utilisée, en particulier dans le format d'image PNG. Elle met en oeuvre la même méthode de compression que le format d'archive Zip. J'ignore si WinDev inclut directement cette capacité. La page du site offre un lien de téléchargement d'une version DLL de la bibliothèque, si nécessaire.
A la fin de cette page (un prédécesseur, non maintenu, de IESDP), tu trouveras un lien vers un code source en C d'un programme permettant d'obtenir un fichier au format BAM à partir d'un fichier au format BAMC. En pratique, un programme n'a pas besoin de passer par un fichier intermédiaire pour cela. Le programme sert d'exemple sur la façon d'exploiter les informations du fichier BAMC et d'appeler la bibliothèque Zlib pour décompacter les données.

Un objet peut exploiter jusqu'à 3 fichiers BAM pour la forme de l'objet au sol, celle dans les cases de l'inventaire ou en main sur la "poupée" (paperdoll) dans l'écran d'inventaire (2 cycles d'animation) et enfin l'image qui accompagne la description. Chaque forme doit suivre des règles différentes en terme de dimension de l'image et de contenu. Un tutoriel de création d'objet devrait pouvoir t'en apprendre davantage sur ce point.

DLTCEP comporte un éditeur de BAM, qui donne un fichier plus décomposée des différents éléments du format BAM car il permet notamment de composer des "frames" à partir d'un fichier de format classique (BMP). Il dispose aussi de plusieurs modes d'affichage des BAM afin de montrer la façon dont il serait affiché dans le jeu en tant qu'élément de description d'objet (il recompose les "frames") ou pour la "poupée". Il devrait te donner une vision plus concrète des paramètres d'un fichier BAM et te permettre de les bidouiller en ayant la capacité de voir ce que cela entraîne en terme d'affichage.
Le code source du programme (C++) est également disponible. Mais, vu l'étendue couverte par le programme, il faut être motivé pour chercher dans le code source sans l'environnement de développement qui va bien.

Je suis conscient que ces explications ne couvrent pas tous les besoins d'exploitation des fichiers BAM. Néanmoins, j'espère avoir ouvert quelques portes. Si tu as des questions sur des points particuliers, n'hésite pas.
Cocrane
Adepte de Grondemarteau
Ogre mage
Messages : 1328
Enregistré le : dim. 21 mars 2010, 12:03
Localisation : Paris
Contact :
Statut : Hors ligne
.

Message par Cocrane »

Merci à nouveau. Ton explication me permet déjà de comprendre l'origine du .BAM.
Je vais creuser sur la partie technique. Je doute que Windev gère les animations mais si déjà j'affiche les images ça sera un bon début.

Du coup, j'ai bossé sur la standardisation de ma fonction gérant les CRE pour gérer les SPL et ITM. Ca avance!

Dommage que le WE le dure que 2j. J'ai dû passer 14h à programmer pour la cause de BG.

Si quelqu'un veut me payer pour faire l'éditeur, je quitte mon taff! ^^
Coco
Avatar du membre
Isaya
Adepte de Grondemarteau
Planaire
Messages : 6990
Enregistré le : mar. 22 juil. 2003, 21:03
Localisation : Plaisir
Contact :
Statut : Hors ligne
.

Message par Isaya »

J'ai essayé, sans succès hélas, de contribuer également à "la cause". J'avoue que je n'ai pas passé 14 heures, non plus, mais peut-être 2, après quoi j'ai décidé de te solliciter.

Résumé de la configuration préalable au test
  • Windows XP SP3 (donc pas de souci avec C:\Program Files
  • J'utilise un compte qui a les droits d'administrateur
  • Baldur's Gate II installé sur "F:\Program Files\Jeux\BGII - SoA" (donc hors disque système, malgré tout)
  • Utilisation du principe d'installation multiple avec une installation de Baldur's Gate II + BGT (1.08) dans le répertoire "F:\Program Files\Jeux\BGII - BGT - Test" (autrement dit le Baldur.ini pointe sur le répertoire de base de l'installation BGII pour les fichiers communs)
  • WeiDU.exe, version 211, présent dans le répertoire
  • Comme je n'ai jamais installé BGII sur ce poste (je procède depuis des années en recopiant une copie installée depuis mon précédent PC), il n'y a aucune trace de BGII dans la base de registres (je le précise au cas où l'éditeur chercherait à y accéder)
Installation de l'éditeur
  • dans "C:\Program Files\TeamBG IE MOD Tools", histoire d'avoir tous les outils au même endroit (sachant que certains des outils TeamBG ne me laissent pas le choix)
  • pendant l'installation, j'ai constaté que je n'ai pas fait ce qu'il fallait : j'ai découvert à la fin de l'installation, en lisant la documentation, qu'il ne fallait pas d'espace dans le nom du répertoire pour l'éditeur. Mais pourquoi donc ?
Qui ne tente rien n'a rien, j'ai essayé quand même de lancer l'éditeur. Il a accepté malgré tout mes chemins avec des espaces, en me disant que c'était OK (il a trouvé WeiDU aussi). Las, le démarrage a donné lieu à des choses bizarres :
  • la fenêtre ouverte sur WeiDU reste ouverte, j'ai dû valider comme si j'avais lancé WeiDU en double cliquant (sans paramètre)
  • au final, la fenêtre superposée où figure le logo Légende restait ouverte, vide de tout texte ou bouton hormis le bandeau de fenêtre Windows
  • j'ai fermé les fenêtres WeiDU et avec le logo Légendes. Les menus ne me permettaient d'ouvrir que des fenêtres dans lesquelles les listes de créatures et de dialogues étaient désespérément vierges
Il fallait s'y attendre, on m'avait prévenu. J'ai désinstallé l'éditeur, puis l'ai réinstallé dans le répertoire "C:\Programmes\Editeur_Baldur_Gate", sachant que le répertoire "C:\Programmes" n'est pas le nom français de Program Files sous Vista et 7 (j'ai XP) mais est un répertoire créé par mes soins depuis longtemps pour les programmes sourcilleux qui n'aiment pas les espaces (notamment des outils d'origine Linux).
Cette fois-ci, je prends soin de créer un répertoire à part pour le mod, dans "F:\Tmp\Mod-Test-Editeur-BG\" (sans espace, au cas où).

L'essai, toujours avec le même répertoire pour BGII, ne donne rien de mieux.

Qu'à cela ne tienne, puisque l'installateur blâmait WeiDU, j'en conclus qu'il faut également que mon répertoire de jeu soit aussi exempt d'espaces. Je le déplace donc sous le nom "F:\Tmp\BGII-BGT-Test" puis je reparamètre l'éditeur pour pointer dessus. Même résultat, sauf que la fenêtre WeiDU ne restait désormais plus ouverte. Peut-être grâce au fait qu'il n'y avait plus d'espace pour le gêner. Par contre la fenêtre du logo Légendes est toujours resté vide et ouverte, et les fenêtres d'édition tout aussi vides de listes de fichiers.

Comme j'avais constaté que le répertoire Tmp de l'éditeur contenait un fichier "Liste_fichier_BG.txt" de taille nulle mais dont la date correspondant au lancement de l'éditeur, je me suis dit que quelque chose clochait. J'ai décidé de remplacer ma vieille version de WeiDU par la toute dernière (220). Sans le moindre changement.

Pour finir, au cas où l'éditeur ou WeiDU serait fâché avec mon installation multiple, j'ai recopié dans "F:\Tmp\BGII-BGT-Test" les fichiers communs d'une installation multiple de BGII, histoire que tout soit au même endroit. J'ai vérifié que le jeu fonctionnait toujours ainsi. Cela n'a eu aucun effet non plus.

Je n'ai pas essayé de charger un fichier d. Le fait que le fichier "Liste_fichier_BG.txt" soit vide et que, par conséquent, aucun fichier n'apparaisse dans les listes, m'incite à penser que cela ne sert à rien d'essayer.

Je suis vraiment à court d'idées. N'hésite pas à me donner la commande que le programme essaie d'exécuter avec WeiDU au démarrage, afin que je l'essaie à la main pour déterminer si le problème vient de ma configuration.

Quelques remarques et questions supplémentaires :
  • j'ai remarqué la présence d'un fichier "Liste_fichier_BG.txt", non vide, datant du 17/09 dans le répertoire de l'éditeur. Est-ce normal ou cela peut-il gêner ?
  • j'ai essayé d'utiliser WeiDU à la main dans le répertoire de jeu : je suis parvenu à lire un dialogue et à le passer sous forme de fichier D.
  • de même la commande (qui me semblait correspondre à ce que tu pourrais vouloir faire)
    weidu --list-files --out "C:\programmes\editeur_baldur_gate\Tmp\Liste.txt"
    m'a bien fourni un fichier liste.txt de plus de 600 Ko dans le répertoire Tmp de l'éditeur. Ce fichier s'est avéré être à plus de 99,9% identique au fichier "Liste_fichier_BG.txt" du 17/09 qui figure dans le répertoire de l'éditeur, quand je les ai comparés avec KDiff3 (différence de textes).
  • ai-je oublié de respecter une des règles de fonctionnement ?
  • puis-je faire certains contrôles manuels pour vérifier ce qu'il se passe

En ce qui concerne l'éditeur et son installation, je peux d'ores et déjà te faire part de quelques remarques :
  • l'éditeur s'est toujours ouvert en plein écran par défaut. Je déteste ! Il a en plus le mauvais goût de ne pas conserver ma dernière configuration (je réduit toujours sa taille). J'ai acheté un écran 24 pouces pour pouvoir mettre plusieurs applications côte à côte. ;)
  • l'animation au démarrage de l'application, en plein écran également, surprend énormément la première fois, pour une application qui n'est pas un jeu. Peut-être est-ce lié.
    la désinstallation laisse beaucoup de choses dans le répertoire : les DLL et énormément de fichiers .FIC, .NDX, ...
  • la documentation serait plus accessible à tous avec un format comme PDF. Tout le monde n'a pas Word.
  • si l'éditeur exige une version particulière (ou au moins minimum) de WeiDU, il serait bon que tu le signales dans la documentation.
  • j'apprécie le fait de pouvoir installer l'éditeur où je veux (hormis l'histoire des espaces) et dans le groupe que je veux dans le menu démarrer.
J'espère que tu auras une piste à me donner pour poursuivre l'essai. Dans le pire des cas, peut-être trouveras-tu quelque chose à corriger de ton côté.

Bonne continuation.


Après réflexion, j'ai tenté une opération pour identifier la commande WeiDU que l'éditeur essayait de lancer au démarrage. J'ai utilisé pour cela un fichier bat compilé sous forme d'exécutable et que j'ai appelé WeiDU.exe, dans lequel j'affiche les paramètres passés à la commande.
Le résultat s'est avéré instructif. Il semble que la commande utilisée ait les paramètres suivants (ceux que j'avais imaginés dans mon test précédent) :

"--list-files" "--out" "C:\Programmes\Editeur_Baldur_Gate\Tmp\Liste_fichier_BG.txt"


Quand j'utilise la même ligne de commande à la main, y compris avec les guillemets autour des options (ce que j'ai cru un moment être la cause du problème), cela fonctionne bien. Par contre, l'opération prend du temps, plusieurs secondes, alors que la fenêtre correspondant à WeiDU s'ouvre et se ferme de façon très rapide au démarrage de l'application, de sorte que je n'ai aucune chance de voir quoi que ce soit qui pourrait me donner davantage d'indication sur le problème.

Je ne sais pas si cela peut te donner davantage d'idées sur ce qui ne va pas.
Cocrane
Adepte de Grondemarteau
Ogre mage
Messages : 1328
Enregistré le : dim. 21 mars 2010, 12:03
Localisation : Paris
Contact :
Statut : Hors ligne
.

Message par Cocrane »

Bonsoir Isaya,

l'échec du fonctionnement de l'éditeur est troublant. D'autres personnes l'ont testé avec plus ou moins de problèmes liés à la non prise en compte des pré-requis mais l'éditeur fonctionne. D'après ce que j'ai lu au final tu as fait attention. ;)

Je profite de ton essai pour rappeler à tous ceux qui installeront l'outil qu'au lieu d'aller vite en pensant gagner du temps vous risquez de vous prendre la tête. ^^
Il y a quelques pré-requis à lire dans le fichier document qui s'ouvre tout seul pour vous aider (ça tient en quelques lignes) . Le reste peut attendre.


Si je résume bien, l'éditeur finir par se lancer mais ne fonctionne pas.



1- Analyse de ton problème d'installation

Peux tu envoyer, par mail ou en réponse au message, l'écran de ton paramétrage vu dans l'éditeur?
Après avoir lancé l'éditeur, tu peux accéder à cet écran via le menu "Paramètres".


2-Pourquoi je dois installer l'éditeur dans un chemin sans espaces.


J'utilise WEIDU pour obtenir les fichiers de BG. Exemple les .DLG (dialogue) et .CRE(Créature). Weidu n'aime pas les chemins cible avec espace, il se bloque.

Une fois que tu as lancé l'éditeur, je demande à WEIDU de me donner la liste des fichiers du chemin du jeu mentionné pour les proposer à l'écran dans le tableau:

Code Windev:
commande_Weidu=chemin_base_BG+"WeiDU.exe --list-files --out "+Chemin_sortie


Exemple qui marche:
commande_Weidu=C:\BG2\WeiDU.exe --list-files --out C:\Editeur_Baldur_Gate\Tmp\Liste_fichier_BG.txt

Exemple qui ne marche pas:
commande_Weidu=C:\BG2\WeiDU.exe --list-files --out C:\test 1\Liste_fichier_BG.txt

'\Test 1\' présente un espace...

Ton analyse sur la commande utilisée était donc bonne.

Si le fichier, Liste_fichier_BG.txt,est vide le tableau des dialogues et créatures seront donc vides aussi.

Deux origines possibles:
- le chemin de l'éditeur est avec des espaces

- WEIDU.EXE n'est pas à la racine du chemin mentionné. Dans ce cas, l'éditeur te signale le problème après que tu aies validé ton paramétrage (ce n'est pas ton cas, Weidu apparaît).

Si tu passes outre, tu as un bel écran Weidu qui est bloqué.

Citation
"
Qui ne tente rien n'a rien, j'ai essayé quand même de lancer l'éditeur. Il a accepté malgré tout mes chemins avec des espaces, en me disant que c'était OK (il a trouvé WeiDU aussi).
"

Il manque un contrôle sur le chemin de l'éditeur qui recherche la présence d'espaces dans le chemin. tu n'aurais pas dû avoir 'Ok' à ce contrôle.
C'est un oubli qui est corrigé. Merci pour l'information.

Citation
"
Quelques remarques et questions supplémentaires :

* j'ai remarqué la présence d'un fichier "Liste_fichier_BG.txt", non vide, datant du 17/09 dans le répertoire de l'éditeur. Est-ce normal ou cela peut-il gêner ?
"

Il n'est pas utile en fait. Le fichier est généré sous ton chemin \tmp à chaque démarrage de l'éditeur et c'est celui là qui est utilisé. Il est à enlever de l'installation que je propose.

Citation
"
* j'ai essayé d'utiliser WeiDU à la main dans le répertoire de jeu : je suis parvenu à lire un dialogue et à le passer sous forme de fichier D.
* de même la commande (qui me semblait correspondre à ce que tu pourrais vouloir faire)
Citation:
weidu --list-files --out "C:\programmes\editeur_baldur_gate\Tmp\Liste.txt"
m'a bien fourni un fichier liste.txt de plus de 600 Ko dans le répertoire Tmp de l'éditeur. Ce fichier s'est avéré être à plus de 99,9% identique au fichier "Liste_fichier_BG.txt" du 17/09 qui figure dans le répertoire de l'éditeur, quand je les ai comparés avec KDiff3 (différence de textes).
* ai-je oublié de respecter une des règles de fonctionnement ?
* puis-je faire certains contrôles manuels pour vérifier ce qu'il se passe
"


Si tu lances le même Weidu (chemin de l'editeur) que celui lancé manuellement, tu dois avoir un fichier listant les fichiers BG au lancement de l'éditeur. Je te confirme que la liste est rapidement écrite dans le fichier et que l'écran Weidu se ferme ensuite.

En ayant ton écran de paramétrage, je pense que j'y verrais plus clair.



3- Chemin des fichiers Mod à paramétrer


Citation
"
Cette fois-ci, je prends soin de créer un répertoire à part pour le mod, dans "F:\Tmp\Mod-Test-Editeur-BG\" (sans espace, au cas où).
"


Le répertoire Mod ne sera pas la cible de WEIDU (sauf évolution contraire). Il n'y a donc pas de danger.

Il sert à conserver vos fichiers de travail et donc à les retrouver à chaque que vous reprenez le travail sur votre Mod.



4- Lecture de fichier .d hors sélection dans le tableau



Citation
"
Je n'ai pas essayé de charger un fichier d. Le fait que le fichier "Liste_fichier_BG.txt" soit vide et que, par conséquent, aucun fichier n'apparaisse dans les listes, m'incite à penser que cela ne sert à rien d'essayer.
"


La lecture d'un fichier .d à partir du menu Dialogue | nouveau\ouvrir est indépendante de ta liste de fichiers trouvés dans le chemin BG.

C'est tout l'intérêt: " Je travaille sur un dialogue mais mon PNJ n'existe pas encore. "


5- Tes remarques sur l'éditeur


C'est noté pour le grand écran et l'absence de mémorisation du choix sur la taille. :'(

La désinstalle est incomplète. Je ne maîtrise pas encore assez Inno Setup 5. Certains fichiers sont crées après install (les fichiers de base de données vides au démarrage).

Ok pr le format pdf.

Je n'ai pas assez de connaissance sur Weidu pour le moment. Ce que je demande est assez basique:
- liste des fichiers du jeu
- extraction de fichier: CRE, SPL, ITEM, DLG
- conversion DLG en .d
- pour le chemin d'install: l'installeur t'en propose un. Libre à toi d'en changer.
- pour le chemin dans le menu démarrer programmes à voir si c'est possible dans Inno Setup 5.


6- Questions

Lorsque tu cliques sur l'éditeur le fichier "Liste_fichier_BG.txt" est il crée sous ton chemin Tmp?

Citation
"
Comme j'avais constaté que le répertoire Tmp de l'éditeur contenait un fichier "Liste_fichier_BG.txt" de taille nulle mais dont la date correspondant au lancement de l'éditeur, je me suis dit que quelque chose clochait. J'ai décidé de remplacer ma vieille version de WeiDU par la toute dernière (220). Sans le moindre changement.
"

visiblement oui.

Supprimes le.
Lances l'éditeur, il doit se créer non vide. Si il est toujours vide, remplaces le par un fichier que tu génères manuellement après fermeture de l'éditeur.

Relances, en théorie le fichier est écrasé.

Le problème tourne autour, de l'utilisation de WEIDU, de l'accès aux fichiers BG et de l'écriture du nom des fichiers BG dans le fichier liste.



J'attends ton retour pour poursuivre la recherche avec toi.

Coco
Avatar du membre
Isaya
Adepte de Grondemarteau
Planaire
Messages : 6990
Enregistré le : mar. 22 juil. 2003, 21:03
Localisation : Plaisir
Contact :
Statut : Hors ligne
.

Message par Isaya »

Merci pour toutes ces précisions.

L'absence obligatoire d'espace

La manipulation que j'avais effectuée en générant un exécutable à partir du fichier bat suivant
@echo off echo %1
echo %2
echo %3
echo %4
echo %5
echo %6
echo %7
echo %8
echo %9

WeiDU2.exe

pause
m'avait déjà permis de vérifier les paramètres de commande que tu utilisais. Les commandes echo %1 ... affichent le nième paramètre et la pause m'a permis de conserver la fenêtre ouverte pour lire ces paramètres. WeiDU2.exe était le nom de WeiDU renommé. Au départ, je pensais y passer les différents paramètres, mais je ne l'ai pas fait car j'ai supposé que ça ne changerait rien au résultat. Quant au @echo off, il a simplement pour but de demander à ce que les commandes elles-mêmes n'apparaissent pas et que seuls les affichages de leur résultat apparaissent.

A propos des espaces, je pense que la restriction que tu as dû imposer pourrait facilement être évitée. La solution consiste tout simplement à entourer la chaîne de caractères susceptible de contenir un espace par des guillemets. A titre d'exemple, si j'ouvre une invite de commande là où j'ai le fichier bat ci-dessus et que je tape la commande suivante :
weidub --log --machin "C:\Chemin avec espace\fichier" mots avec espaces
Ici, weidub.bat est le nom du fichier .bat, histoire de le différencier de WeiDU.exe pour éviter de savoir qui des bat ou des exe a la priorité si les deux existent.
J'obtiens alors le résultat suivant :
--log
--machin
"C:\Chemin avec espace\fichier"
mots
avec
espaces
Commande ECHO désactivée.
Commande ECHO désactivée.
Commande ECHO désactivée.
'WeiDU2.exe' n'est pas reconnu en tant que commande interne
ou externe, un programme exécutable ou un fichier de commandes.
Appuyez sur une touche pour continuer...
Entretemps, j'avais retiré le fichier WeiDU2.exe, ce qui explique le message d'erreur. Pour le reste, tu peux constater que le gestionnaire de ligne de commande a parfaitement compris mon texte entre guillemets comme étant un seul argument de la commande, alors qu'il a constitué un argument différent avec chaque autre mot. Les 3 commandes désactivées sont simplement dues au fait que je n'ai donné que 6 paramètres et demandé à en afficher 9.

Autre exemple, plus directement lié à WeiDU
F:\Tmp\BGII-BGT-Test>weidu --list-files --out "F:\Program Files\Jeux\BGII - SoA\listeFichiers.txt"
[weidu] WeiDU version 22000
[./Chitin.key] 258 BIFFs, 47969 resources
[./dialog.tlk] 87719 string entries
[./dialogF.tlk] 87719 string entries
[weidu] Using scripting style "BG2"

F:\Tmp\BGII-BGT-Test>
Cette commande me donne bien, dans "F:\Program Files\Jeux\BGII - SoA" (c'est le répertoire de mon installation de base de BGII, incidemment) un fichier "listeFichiers.txt" de 614 Ko, identique à celui que j'avais généré hier.

Autrement dit, je suis à peu près certain que si tu utilises systématiquement des guillemets pour entourer les noms de fichiers complets (chemin compris) que tu formes tel que tu l'as décrit, tu devrais être en mesure de retirer la restriction sur la présence d'espace.


L'installation avec Inno Setup

Il se trouve que j'ai un peu d'expérience avec Inno Setup 5, par le biais du travail. Moyennant la reprise de scripts que j'ai réalisés par le passé, je serai en mesure de te donner des exemples de la façon dont j'avais traité la suppression de fichiers produits par le programme installé à un emplacement bien déterminé (comme le fichier liste dans Tmp ou les autres fichiers dans la racine de l'éditeur), ainsi que la façon d'offrir le choix du répertoire d'installation et celui du raccourci dans le menu Démarrer.
A suivre...


Mes préférences

Beaucoup de mes remarques sur l'éditeur n'exprimaient que mes préférences en la matière. En particulier retenir la position et dimension précédente est juste un plus, que proposent peu de programmes. En tout cas, ce n'est pas une modification prioritaire. Si c'est facile à faire, n'hésite pas. Dans certains langages, c'est loin d'être simple (j'ai testé en C++ avec les MFC :'( ).


Le problème de lancement de l'éditeur

Je viens d'essayer à nouveau ce soir, histoire de prendre quelques captures supplémentaires que tu souhaitais. J'ai pu constater que la fenêtre DOS ouverte pour WeiDU affichait furtivement les textes typiques d'un lancement de WeiDU dans un répertoire où il ne trouve pas de jeu.
J'ai fait l'opération à la main, en copiant WeiDU.exe dans le répertoire "F:\Tmp", où il n'y a pas un environnement de jeu. Et voici ce que j'obtiens, qui ressemble fortement à ce que j'aperçois furtivement
F:\Tmp>weidu --list-files --out C:\Programmes\Editeur_Baldur_Gate\Tmp\liste.txt
[weidu] WeiDU version 22000

ERROR: Unable to find CHITIN.KEY in:
.
..
../..
../../..
../../../..
.
.
.
.
.
C:\Program Files\Black Isle\BGII - SoA
D:\Program Files\Black Isle\BGII - SoA

FATAL ERROR: Failure("Unable to find CHITIN.KEY: run me in an Infinity Engine game directory")
F:\Tmp>
J'ai fait express de reprendre à peu-près la même commande. Je n'ai aucun moyen de capturer l'affichage furtif quand l'éditeur se lance, mais je reconnais bien la forme caractéristique en triangle de la liste des chemins d'accès qu'il a essayés sans succès.

Voyant cela, je me suis dit que le répertoire que j'avais choisi posait peut-être problème. Je l'ai renommé en "F:\Tmp\BGII_BGT_Test" (remplacement des tirets par des soulignés, au cas où...). Sans effet.

Pour creuser le problème, j'ai créé dans F:\Tmp, soit hors du répertoire du jeu, un fichier bat, ListeFicBG.bat :
F:\Tmp\BGII_BGT_Test\weidu --list-files --out "C:\Programmes\Editeur_Baldur_Gate\Tmp\Liste.txt"
pause
Le résultat est le suivant, quand je double-clique pour l'exécuter (hors du répertoire du jeu)
F:\Tmp>F:\Tmp\BGII_BGT_Test\weidu --list-files --out "C:\Programmes\Editeur_Baldur_Gate\Tmp\Liste.txt"
[F:\Tmp\BGII_BGT_Test\weidu] WeiDU version 22000

ERROR: Unable to find CHITIN.KEY in:
.
..
../..
../../..
../../../..
.
.
.
.
.
C:\Program Files\Black Isle\BGII - SoA
D:\Program Files\Black Isle\BGII - SoA

FATAL ERROR: Failure("Unable to find CHITIN.KEY: run me in an Infinity Engine game directory")

F:\Tmp>pause
Appuyez sur une touche pour continuer...
Ceci montre que le fait de préciser le répertoire dans lequel se trouve WeiDU ne suffit pas. Mon répertoire courant que j'exécute le fichier bat est toujours "F:\Tmp", soit un répertoire où ne se trouve aucun jeu.

Pour valider cette hypothèse, j'ai créé dans "F:\Tmp" un raccourci sur mon fichier ListeFicBG.bat. J'ai édité les propriétés du raccourci et j'ai indiqué pour le paramètre "Démarrer dans" la valeur "F:\Tmp\BGII_BGT_Test", soit le répertoire où se trouve le jeu. Quand je double-clique sur ce raccourci, j'obtiens bien une exécutation satisfaisante
F:\Tmp\BGII_BGT_Test>F:\Tmp\BGII_BGT_Test\weidu --list-files --out "C:\Programmes\Editeur_Baldur_Gate\Tmp\Liste.txt"
[F:\Tmp\BGII_BGT_Test\weidu] WeiDU version 22000
[./Chitin.key] 258 BIFFs, 47969 resources
[./dialog.tlk] 87719 string entries
[./dialogF.tlk] 87719 string entries
[F:\Tmp\BGII_BGT_Test\weidu] Using scripting style "BG2"

F:\Tmp\BGII_BGT_Test>pause
Appuyez sur une touche pour continuer...
Et j'obtiens au bon endroit un fichier Liste.txt de 614 Ko, comme attendu.

Enfin, si je supprime WeiDU.exe du répertoire où se trouve le jeu et que j'appelle dans le fichier ListeFicBG.bat celui que j'ai dans "C:\Program Files\TeamBG IE MOD Tools\WeiDU"
"C:\Program Files\TeamBG IE MOD Tools\WeiDU\WeiDU" --list-files --out "C:\Programmes\Editeur_Baldur_Gate\Tmp\Liste.txt"
pause
puis que j'exécute à partir du raccourci, afin de bien lancer à partir du répertoire du jeu, j'obtiens
F:\Tmp\BGII_BGT_Test>"C:\Program Files\TeamBG IE MOD Tools\WeiDU\WeiDU" --list-files --out "C:\Programmes\Editeur_Baldur_Gate\Tmp\Liste.txt"
[C:\Program Files\TeamBG IE MOD Tools\WeiDU\WeiDU] WeiDU version 22000
[./Chitin.key] 258 BIFFs, 47969 resources
[./dialog.tlk] 87719 string entries
[./dialogF.tlk] 87719 string entries
[C:\Program Files\TeamBG IE MOD Tools\WeiDU\WeiDU] Using scripting style "BG2"

F:\Tmp\BGII_BGT_Test>pause
Appuyez sur une touche pour continuer...
ainsi que mon désormais habituel fichier Liste.txt de 614 Ko.
Le fait que WeiDU ait dans tous les cas affichés les mêmes informations pour Chitin.key, dialog.tlk et dialogF.tlk me réconforte dans l'idée qu'il a bien toujours opéré dans le même répertoire de jeu.

Remarque : j'ai dû entourer le nom complet du programme à exécuter avec des guillemets, sinon la ligne de commande croit que le nom du programme à exécuter est C:\Program. Cela laisse penser qu'il doit être possible d'y parvenir également depuis ton éditeur, en prenant les mêmes précautions.

Bilan de mes tentatives :
  • je n'ai pas résolu le problème qui m'empêche d'exécuter l'éditeur, même en essayant de simplifier la composition du nom du répertoire
  • j'arrive à exécuter la constitution de la liste de fichiers, même si WeiDU n'est pas dans le répertoire du jeu
  • j'y parviens également si WeiDU se trouve dans un répertoire dont le nom comporte des espaces
  • je suis obligé dans tous les cas de préciser pour répertoire courant à l'exécution celui dans lequel se trouve le jeu
Mon impression est qu'il manque peut-être dans l'éditeur BG une opération visant à fixer comme répertoire de travail celui dans lequel le jeu est installé.

Je tiens à ta disposition des captures d'écran des configurations. Je tâcherai de les poster. Je pourrai également te transmettre ces images et mes fichiers d'essai par mail, si tu me confirmes que l'adresse mail que tu as donnée pour t'inscrire sur le forum convient bien (et non une boîte temporaire). Dans ce cas, tu n'as pas besoin de me la donner, la fonction correspondante du forum se chargera de t'envoyer ça (et tu auras mon mail par la même occasion).

Sur ce, il est plus que temps d'aller dormir. A bientôt.
Cocrane
Adepte de Grondemarteau
Ogre mage
Messages : 1328
Enregistré le : dim. 21 mars 2010, 12:03
Localisation : Paris
Contact :
Statut : Hors ligne
.

Message par Cocrane »

Bonsoir,
Isaya je te confirme que tu peux poster sur l'adresse du compte CDC.

Au sujet de tes tests. C'est noté: en signalant le chemin de sortie avec des "" dans la ligne de commande, Weidu travaille sans planter. A noter, cette opération est faite en lançant Weidu à la main.

Lorsque tu déclares une variable dans une programme, le contenu d'une variable de type chaine commence par un " et finis par un ". Il est difficile de ne pas les confondre avec un caractère de la chaine.

J'ai consulté la doc sans y croire. Si je double les ", je peux finalement écrire " comme caractère faisant parti de la chaine.

Exemple:
chemin = " ""c:\test 1"" " donnera "c:\test 1". C'est beau l'informatique!

Je testerai ce point. Normalement, tes remarques ont permis de lever le blocage si on utilise un chemin avec espace et j'ai appris un truc de plus dans Windev. ;)


Pour ce qui est de ton problème d'installation de l'éditeur, je pense que c'est lié à ta configuation BG. Quand je dis chemin du jeu, le jeu doit être là dans son intégralité avec Weidu en prime.
Je suis novice au niveau des installations modding, il y a donc sans doute des cas particuliers que je ne connais pas.

Au niveau de la logique, si la ligne de commande qui est lancé par le programme marche uniquement en manuel là je ne comprends plus ...

De ce que j'ai compris, Weidu se plaint de ne pas trouver Chintin.key. L'éditeur lance une commande Weidu. Si les conditions ne sont pas remplies pour que Weidu fonctionne, l'éditeur ne fonctionnera pas.

A la racine de mon chemin jeu BG, j'ai bien Chitin.key, Weidu et les réperoires d'install classique du jeu BG.

Dans le cas d'installation d'environnement BG particulier c tj le cas?

Coco
Avatar du membre
Isaya
Adepte de Grondemarteau
Planaire
Messages : 6990
Enregistré le : mar. 22 juil. 2003, 21:03
Localisation : Plaisir
Contact :
Statut : Hors ligne
.

Message par Isaya »

Cocrane a écrit :Isaya je te confirme que tu peux poster sur l'adresse du compte CDC.
Cocrane a écrit :Au sujet de tes tests. C'est noté: en signalant le chemin de sortie avec des "" dans la ligne de commande, Weidu travaille sans planter. A noter, cette opération est faite en lançant Weidu à la main.

...

Au niveau de la logique, si la ligne de commande qui est lancé par le programme marche uniquement en manuel là je ne comprends plus ...
Je ne vois pas de raison que ça ne fonctionne pas à partir de l'éditeur. Le fait que tu lances une commande passe la main à Windows et lui saura accepter ce mode de fonctionnement. Un éditeur comme DLTCEP y parvient. Le langage de programme ne devrait pas avoir d'influence.
Cocrane a écrit :J'ai consulté la doc sans y croire. Si je double les ", je peux finalement écrire " comme caractère faisant parti de la chaine.

Exemple:
chemin = " ""c:\test 1"" " donnera "c:\test 1". C'est beau l'informatique!
Chaque langage a sa façon de faire mais il est inévitable qu'il y a un moyen d'intégrer dans une chaine de caractères le caractère servant de séparateur.

Cocrane a écrit :Pour ce qui est de ton problème d'installation de l'éditeur, je pense que c'est lié à ta configuation BG. Quand je dis chemin du jeu, le jeu doit être là dans son intégralité avec Weidu en prime.
Je suis novice au niveau des installations modding, il y a donc sans doute des cas particuliers que je ne connais pas.

...

De ce que j'ai compris, Weidu se plaint de ne pas trouver Chintin.key. L'éditeur lance une commande Weidu. Si les conditions ne sont pas remplies pour que Weidu fonctionne, l'éditeur ne fonctionnera pas.

A la racine de mon chemin jeu BG, j'ai bien Chitin.key, Weidu et les réperoires d'install classique du jeu BG.

Dans le cas d'installation d'environnement BG particulier c tj le cas?
Dès la première journée, j'ai fini par adopter une configuration de jeu "simple", avec tous les fichiers à l'intérieur, histoire d'éliminer cette hypothèse. WeiDU.exe a toujours figuré dans mon répertoire de jeu. Par ailleurs, je suis convaincu que le problème ne vient pas de là. WeiDU lui-même sait parfaitement s'adapter aux installations multiples et à leur mise en commun des plus gros fichiers (via les indications de chemins du fichier Baldur.ini). Par conséquent, ceci ne devrait pas impacter ton éditeur, puisque tu fais appel à WeiDU pour extraire les fichiers du jeu.

Mais cette question n'est plus d'actualité.

La nuit porte conseil. Suite à mes observations sur la nécessité que WeiDU, où qu'il soit situé, doit être lancé en précisant comme répertoire de travail celui du jeu, il m'est venu à l'esprit de faire un essai supplémentaire.

Pour être certain que l'éditeur lance bien WeiDU en ayant comme répertoire de travail celui du jeu, j'ai tout simplement copié toute l'installation de l'éditeur dans mon répertoire de jeu, de sorte qu'il se trouve désormais à deux endroits. Je n'ai même pas eu besoin de modifier sa configuration. Même en ayant laissé le chemin de l'éditeur pointer vers C:\etc, quand je lance l'éditeur cliquant sur la copie présente dans le répertoire du jeu, l'éditeur se lance, parvient à exécuter (très vite, comme tu l'as écrit) l'extraction de la liste des noms de fichiers. J'ai tout de suite remarqué que le contenu furtif de la fenêtre DOS était différent. J'ai désormais accès à la liste des créatures dans l'éditeur de créature. Et l'éditeur de dialogue me permet de charger un des dialogues du jeu, d'en visualiser le code source et d'utiliser la partie simulation.

Autrement dit, je pense avoir débloqué la situation afin d'être en mesure de tester véritablement ton éditeur.

Pour conclure, je soupçonne désormais le problème que j'ai rencontré d'être lié à mon installation effectivement particulière du jeu. En effet, au delà de mes installations multiples, mon installation de base du jeu ne résulte pas d'une installation du jeu, mais d'une copie de sauvegarde du répertoire une fois le jeu installé. La différence est qu'il n'y a aucune trace d'avoir installé Baldur's Gate II dans la base de registre. Or WeiDU, lorsqu'il ne trouve pas le répertoire du jeu par d'autres moyens (soit le répertoire courant, soit par une option de la ligne de commande), va chercher cette information dans la base de registre.
Du coup, je soupçonne que tes autres testeurs n'ont pas rencontré mon problème parce qu'ils avaient au moins ce répertoire "par défaut" accessible via la base de registres. Le moyen de le vérifier serait assez simple. Il faudrait qu'un autre testeur ait comme moi une installation multiple du jeu, l'original étant le jeu de base la deuxième installation servant à ajouter des mods comportant des dialogues et des créatures.
En configurant l'éditeur pour travailler dans ce deuxième répertoire, le testeur devrait voir dans les listes le nom des créatures et dialogues ajoutés par le mod. Si ce n'est pas le cas, c'est que WeiDU n'a pas réussi à travailler dans le répertoire désigné mais a trouvé via la base de registres le moyen d'accéder à un environnement de jeu.

Il existerait un moyen simple pour contourner ce problème. Tu peux indiquer à WeiDU où se situe le répertoire du jeu en utilisant l'option --game.

J'ai fait l'exercice avec mes scripts d'hier. J'ai repris mon script ListeFicBG.bat, dans "F:\Tmp" (c'est à dire en dehors du répertoire du jeu) de la façon suivante :
"C:\Program Files\TeamBG IE MOD Tools\WeiDU\WeiDU" --game "F:\Tmp\BGII_BGT_Test" --list-files --out "C:\Programmes\Editeur_Baldur_Gate\Tmp\Liste.txt"
pause
Quand je le lance en double-cliquant, donc sans préciser via le raccourci un autre répertoire de travail que celui où se trouve le script (ici "F:\Tmp"), l'exécution est cette fois-ci couronnée de succès
F:\Tmp>"C:\Program Files\TeamBG IE MOD Tools\WeiDU\WeiDU" --game "F:\Tmp\BGII_BGT_Test" --list-files --out "C:\Programmes\Editeur_Baldur_Gate\Tmp\Liste.txt"
[C:\Program Files\TeamBG IE MOD Tools\WeiDU\WeiDU] WeiDU version 22000
[F:\Tmp\BGII_BGT_Test/Chitin.key] 258 BIFFs, 47969 resources
[F:\Tmp\BGII_BGT_Test/dialog.tlk] 87719 string entries
[F:\Tmp\BGII_BGT_Test/dialogF.tlk] 87719 string entries
[C:\Program Files\TeamBG IE MOD Tools\WeiDU\WeiDU] Using scripting style "BG2"

F:\Tmp>pause
Appuyez sur une touche pour continuer...
Le fichier Liste.txt est créé et contient bien le nom de tous les fichiers du jeu (même contenu que d'habitude).

Je suppose donc que tu pourrais utiliser systématiquement, pour toute commande, la base suivante
"Chemin_base_jeu\WeiDU.exe" --game "Chemin_base_jeu" ...
(avec Chemin_base_jeu pouvant comporter des espaces et donc entouré de guillemets)

Ensuite tu peux ajouter à la place des ... --list-files --out "Chemin_sortie" pour obtenir la liste complète des fichiers, ou encore MACHIN.DLG pour obtenir le fichier D correspondant.

Je ne sais pas si tu peux trouver un autre testeur pour vérifier mon hypothèse sur le répertoire de travail qui serait toujours celui lu à partir de la base de registres.

De mon côté, je me tiens à ta disposition si tu veux que j'essaie une version modifiée suivant mes suggestions afin de vérifier le résultat dans ma configuration particulière.

Dans tous les cas, je vais te préparer une archive de différents éléments (captures d'écran, détails de configuration, scripts, ...) que j'ai recueillis pendant mes essais.
Je vais également essayer de retrouver le nom de la clé de la base de registres qu'utilise WeiDU. J'essaierai de l'ajouter et d'en modifier la valeur pour vérifier mon hypothèse.

Bonne continuation.


PS : j'ai trouvé rapidement la clé utilisé par WeiDU : dans HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\App Paths\\BG2Main.Exe".

J'ai créé cette clé et l'ai renseigné avec le répertoire du jeu pour mon test : "F:\Tmp\BGII_BGT_Test\BG2Main.exe" (dernière valeur issue de tous mes essais pour vérifier la sensibilité à certains caractères).

J'ai supprimé les fichiers de l'éditeur que j'avais copié dans le répertoire du jeu. Quand j'ai relancé l'éditeur depuis son répertoire d'installation dans "C:\Programmes", tout a parfaitement fonctionné. Les listes de créatures et de dialogues étaient bien renseignées comme dans mon essai de tout à l'heure.

Ensuite, j'ai modifié le chemin dans la base de registre pour qu'il désigne "F:\Program Files\Jeux\BGII - TDD 113\BG2Main.exe", un répertoire dans lequel j'ai le jeu plus le mod The Darkest Day, via les installations multiples, donc avec un pointage vers l'installation de base de BGII pour les fichiers dans les répertoires CD2, ... CD5. Quand j'ai lancé l'éditeur, sans modifier sa configuration qui pointait donc toujours vers "F:\Tmp\BGII_BGT_Test" comme répertoire de jeu, les listes de fichiers CRE et DLG qu'il m'a proposées comportaient les créatures et les dialogues du mod The Darkest Day.

Je peux donc te confirmer que, dans la version actuelle de l'éditeur, l'absence de l'option --game ou d'une fixation du répertoire courant dans le répertoire choisi pour le jeu fait que WeiDU va systématiquement chercher le chemin du jeu dans la base de registres.
A mon avis, ceci risque de poser des problèmes à pas mal de moddeurs : en général il vaut mieux travailler dans un autre répertoire que l'installation de base du jeu, histoire de la conserver intacte en cas de fausse manipulation pendant la création de son mod.

Si tu veux essayer une des mes suggestions (changer le répertoire de travail pour lancer la commande WeiDU, ou lui préciser le répertoire du jeu avec --game), je ferai volontiers l'essai sur ma configuration un peu hors norme.
Cocrane
Adepte de Grondemarteau
Ogre mage
Messages : 1328
Enregistré le : dim. 21 mars 2010, 12:03
Localisation : Paris
Contact :
Statut : Hors ligne
.

Message par Cocrane »

Salut Isaya,
tes test se révèlent très intéressants:
- solution pour ne pas être obligé d'avoir un chemin de répertoire sans espaces pour l'éditeur (j'ai testé ça marche).

- découverte d'un problème d'installation de l'éditeur sur des environnements d'installation de BG particulier.
Ta proposition "--Game" est visiblement une trés bonne idée et elle est nécessaire pour donner de la liberté aux Moddeurs. Il faut donc un nouveau chemin paramétrable dans l'éditeur:

Un chemin pour l'éditeur
> paramétrable à l'installation

Un chemin pour les fichiers Tmp
> sous racine de l'éditeur (automatique)

Un chemin pour Weidu
> paramétrable à l'installation et après

Un chemin pour le jeu BG (nouveau chemin pour donner le chemin utilisé pour "--game")
> paramétrable à l'installation et après
comment je peux contrôler que ce chemin est valable? présence de Chitin.key?


Suite à tes résultats, les écrans ne sont plus nécessaires à mon avis. Je fais une version 2.0.2 qui sera livrée dans la soirée.


Coco
Cocrane
Adepte de Grondemarteau
Ogre mage
Messages : 1328
Enregistré le : dim. 21 mars 2010, 12:03
Localisation : Paris
Contact :
Statut : Hors ligne
.

Message par Cocrane »

Voici la 2.0.2.

Chemin DL:

setup_Editeur_Baldur_Gate_V2_0_2.rar


Par contre, je pense qu'il y a un problème avec --game

Sur une instruction du type dans le programme:

C:\BG 2\WeiDU.exe --game "C:\BG 2\" --list-files --out "C:\test 1\Liste_fichier_BG.txt"
Le fichier est crée sans souci alors que je pensais qu'avec un chemin Weidu avec espace ça ne marcherait pas.

Par contre:
Ex:
C:\BG2\Weidu.exe --game "C:\BG2\" --biff-get ADDY.CRE --out "c:\"
il se lance sans alerte mais je n'ai pas mon fichier.

L'executable présente l'extraction des CRE sous cette forme et j'ai laissé la forme originale pour les DLG.
Ex:
C:\BG2\Weidu.exe --biff-get ADDY.DLG --out "c:\"


un fichier chemin.txt apparait sur c:\ et contient la ligne de commande Weidu pour l'extraction CRE et DLG
Coco
Avatar du membre
Isaya
Adepte de Grondemarteau
Planaire
Messages : 6990
Enregistré le : mar. 22 juil. 2003, 21:03
Localisation : Plaisir
Contact :
Statut : Hors ligne
.

Message par Isaya »

Salut Cocrane,

Beau boulot ! Je vais essayer la nouvelle version et pousser un peu plus loin mon utilisation du programme au delà de la simple exécution.

Je suis content d'avoir pu te donner quelques informations utiles. A chaud (et à cette heure tardive), j'avoue ne pas savoir pourquoi certaines commandes semblent ne pas apprécier l'option --game. Je ne connais pas les syntaxes que tu utilises, il me faudra étudier la documentation de WeiDU et essayer les commandes à la main pour me faire une idée.

En attendant, comme promis, j'ai repris un script d'installation écrit avec Inno Setup et le son Quick Start Pack, en l'épurant et en retirant les références à ma société, et en les remplaçant par des noms de ton éditeur. Je n'ai pas vérifié les noms exacts lorsque j'ai modifié, alors il y a certainement des choses incorrectes (en particulier le répertoire de Backup dont j'ai oublié le nom).

Code : Tout sélectionner

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
; Requires:
; - InnoSetup
; - InnoSetup Quick Start Pack

#define AppName "Editeur Baldur's Gate"
#define SrcApp "Editeur_Baldur_Gate.exe"
; Le code suivant sert à extraire l'indication de version directement de l'exécutable
; Je l'utilise pour que l'installateur affiche la version de l'application
; Le chemin à fournir correspond à celui qui sert à construire l'installateur
; J'ai arbitrairement choisi un répertoire temporaire, qui doit correspondre à SourceDir, un peu plus bas
#define FileVerStr GetFileVersion("C:\Tmp\Editeur Baldur's Gate\Editeur_Baldur_Gate.exe")
#define StripBuild(str VerStr) Copy(VerStr, 1, RPos(".", VerStr)-1)
#define AppVerStr StripBuild(FileVerStr)

[Setup]
AppName={#AppName}
AppVersion={#AppVerStr}
AppVerName={#AppName} {#FileVerStr}
UninstallDisplayName={#AppName} {#FileVerStr}
VersionInfoVersion={#FileVerStr}
VersionInfoTextVersion={#FileVerStr}
AppPublisher=Coco software
AppPublisherURL=www.cocosoftware.com
AppSupportURL=www.cocosoftware.com
AppUpdatesURL=www.cocosoftware.com
DefaultDirName=C:\{#AppName}
DefaultGroupName=Coco software\{#AppName}
AllowNoIcons=yes
OutputDir=C:\Tmp
OutputBaseFilename={#AppName} V{#FileVerStr} Setup
Compression=lzma
SolidCompression=yes
; Minimum version: Windows 2000
MinVersion=5.0,5.0
SourceDir=C:\Tmp\Editeur Baldur's Gate

[Languages]
Name: eng; MessagesFile: compiler :D efault.isl

[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked

[Files]
Source: Editeur_Baldur_Gate.exe; DestDir: {app}; Flags: ignoreversion
; Ajouter les fichiers fournis avec l'éditeur, les DLL, ...
; Il est possible d'indiquer * pour tous les fichiers, du moment que tu les mets dans le SourceDir indiqué plus haut (et uniquement ceux nécessaires)
; En cas de sous-répertoire, il est facile d'inclure tout le contenu
;Source: Configuration\*; DestDir: {app}\Configuration; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

; Section used to create additional directories
[Dirs]
Name: "{app}\Tmp"
Name: "{app}\Backup"

[Icons]
; Use WorkdingDir to {app} to specify the installation directory as current directory for running
Name: {group}\Editeur Baldur Gate; Filename: {app}\Editeur_Baldur_Gate.exe; WorkingDir: {app}
Name: {group}\{cm:UninstallProgram,Editeur Baldur Gate}; Filename: {uninstallexe}
Name: {userdesktop}\Editeur Baldur Gate; Filename: {app}\Editeur_Baldur_Gate.exe; WorkingDir: {app}; Tasks: desktopicon
Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\Editeur Baldur Gate; Filename: {app}\Editeur_Baldur_Gate.exe; WorkingDir: {app}; Tasks: quicklaunchicon

; Startup group addition to automatically run the program at Windows start
;Name: {commonstartup}\Editeur Baldur Gate; Filename: {app}\Editeur_Baldur_Gate.exe; WorkingDir: {app}

[UninstallDelete]
; Delete files generated by application : les fichiers NDX, ...
Type: files; Name: {app}\Tmp\Liste_Fichier_BG.txt
; Ajouter tous les fichiers créés à l'exécution : ceux installés (voir section Files) seront automatiquement retirés
;Type: files; Name: {app}\xxx
; Delete directories where additional files could be created during product life (resources, preferences, temporary files, ...)
Type: filesandordirs; Name: {app}\Tmp
; Efface le répertoire servant aux sauvegardes du mod, seulement s'il est vide
Type: dirifempty; Name: {app}\Backup
Avatar du membre
Isaya
Adepte de Grondemarteau
Planaire
Messages : 6990
Enregistré le : mar. 22 juil. 2003, 21:03
Localisation : Plaisir
Contact :
Statut : Hors ligne
.

Message par Isaya »

Puisque la version 2.02 accepte les espaces un peu partout, j'ai fait la nouvelle installation de test de la façon suivante :

Chemin de l'éditeur : C:\Program Files\TeamBG IE MOD Tools\Editeur_Baldur_Gate\
Chemin des fichiers Temp : C:\Program Files\TeamBG IE MOD Tools\Editeur_Baldur_Gate\Tmp\
Chemin des fichiers MOD : F:\Tmp\Mod_Test_Editeur_BG\
Chemin WeiDU : C:\Program Files\TeamBG IE MOD Tools\WeiDU\
Racine du jeu BG : F:\Tmp\BGII BGT - Test\ (j'ai remis des espaces)

Dans un premier temps, la base de registre désignait toujours le répertoire de mon installation du jeu avec The Darkest Day.

Le lancement s'est bien passé, du moins en apparence. Par contre, j'ai vu que quelque chose clochait dès que j'ai ouvert la fenêtre des créatures : la fenêtre d'exécution de WeiDU est restée ouverte :
Image
et lorsque je l'ai fermée, l'éditeur a signalé le problème
Image
conformément au contenu du fichier chemin.txt
C:\Program Files\TeamBG IE MOD Tools\WeiDU\Weidu.exe --game "F:\Tmp\BGII BGT - Test\" --biff-get AATAQAH.CRE --out "C:\Program Files\TeamBG IE MOD Tools\Editeur_Baldur_Gate\Tmp\"
Le message d'erreur de la ligne de commande montre clairement que la ligne de commande a découpé "C:\Program Files\TeamBG IE MOD Tools\..." en plusieurs mots puisqu'il bute sur "Files\TeamBG". J'avoue ne pas comprendre pourquoi. Le chemin pour WeiDU.exe n'est pas entre guillemets, ce qu'il faudrait pour éviter le problème avec les espaces, mais comme WeiDU se lance et que c'est lui qui signale un problème, j'avoue ne pas bien comprendre. En tout cas, s'il est bien vrai qu'il n'y a pas de guillemets pour WeiDU.exe, il te faudrait vraiment en ajouter. Comme le défaut ne s'est produit qu'avec les créatures, j'en déduis que la ligne de commande pour les dialogues est mieux formée.

La fenêtre des dialogues fonctionnait, ce qui n'est pas forcément surprenant puisque tu indiquais que tu n'utilisais la même méthode d'appel de WeiDU.

Mais elle n'était pas pour autant exempte de problème : j'ai vu apparaître des dialogues de The Darkest Day ! J'ai pu vérifier le problème en consultant le contenu du fichier Liste_Fichier_BG.txt.
J'ai reproduit le phénomène en modifiant la base de registre pour pointer sur le répertoire de Baldur's Gate et sur le répertoire de base de BG II, avec les mêmes résultats. Les listes de fichiers sont bien celles du jeu désigné dans la base de registres.

Pour essayer de comprendre, j'ai remis au goût du jour mon fichier bat pour intercepter les paramètres de la commande WeiDU, en y ajoutant également l'exécution de la commande WeiDU normale :
@echo off
echo %1
echo %2
echo %3
echo %4
echo %5
echo %6
echo %7
echo %8
echo %9

"C:\Program Files\TeamBG IE MOD Tools\WeiDU\WeiDU.exe" %1 %2 %3 %4 %5 %6 %7 %8 %9

pause
Avec le programme Batch to Exe Converter, je l'ai compilé en exécutable et placé sous le nom WeiDU.exe dans le dossier du jeu.
Remarque : Norton me signale que le site est douteux mais situe les contenus douteux dans d'autres programmes. Une fois téléchargé, il n'a rien signalé lors de l'analyse détaillée de l'archive que je lui ai demandée.

J'ai ensuite modifié le chemin WeiDU dans la configuration :

Chemin WeiDU : F:\Tmp\BGII BGT - Test\

Au lancement suivant de l'éditeur, j'ai obtenu le résultat suivant :
Image

On constate que si les paramètres passés sont bien les bons, WeiDU est allé chercher l'installation dans "F:\Program Files\Jeux\BGII - SoA", soit le chemin indiqué dans la base de registres.

J'ai remis au goût du jour mon fichier ListeFicBG.bat pour vérifier les commandes WeiDU à la main :
"C:\Program Files\TeamBG IE MOD Tools\WeiDU\WeiDU" --game "F:\Tmp\BGII BGT - Test\" --list-files --out "C:\Program Files\TeamBG IE MOD Tools\Editeur_Baldur_Gate\Tmp\Liste.txt"
pause
Cette commande a provoqué le même phénomène que la première capture concernant la lecture d'une créature.

Par contre, dès que j'ai supprimé le "\" à la fin du chemin indiqué après --game, cela a très bien fonctionné :
Image


Retour sur le problème avec les créatures évoqué ci-dessus

Puisque WeiDU n'aimait pas le chemin fourni pour --game, il est possible que l'absence de cette option pour la lecture des dialogues explique pourquoi tout allait bien pour les dialogues et pas avec les créatures. Donc la correction pour --game règlera sans doute les deux problèmes.


Conclusion

Il semble que plusieurs problèmes puissent provenir de la présence du "\" à la fin du chemin indiqué à l'option --game.


J'ai ensuite déplacé pour WeiDU.exe généré à partir du batch dans un dossier "F:\Tmp\WeiDU-Batch", afin qu'un seul paramètre pointe dans le répertoire du jeu.
Une fois ce changement effectué dans la configuration de l'éditeur, je l'ai fermé et j'ai ouvert son fichier de paramètre (Parametre_editeur.FIC) avec un éditeur hexadécimal. J'ai repéré le seul endroit où le chemin du jeu apparaissait et j'ai remplacé le caractère "\" par un caractère de fin de chaine (00 en hexadécimal).
Quand j'ai ouvert l'éditeur, j'ai obtenu le résultat suivant lors de la création de la liste de fichiers :
Image

On peut constater que le "\" à la fin du chemin a bien disparu (ce que confirme la fenêtre de paramètres de l'éditeur) mais que WeiDu va toujours chercher dans le chemin indiqué dans la base de registre.
Je suis à peu près certain que le problème vient de la présence d'un espace à la fin de "F:\Tmp\BGII BGT - Test ", tel que c'est indiqué entre guillemets après l'option --game. J'ai toujours vu cet espace (voir l'autre capture où le "\" était encore là).
Un espace n'est pas un caractère neutre une fois qu'il est entre guillemets. Ici il agit comme si le nom du répertoire comportait un espace à la fin, ce qui ne désigne pas le même répertoire.

Je te propose de corriger le chemin passé de deux façons :
  • en retirant le "\" à la fin du nom du chemin
  • en t'assurant que tu n'ajoutes pas d'espace à la fin

En ce qui concerne la question que tu posais à propos du problème où le fichier n'est pas présent bien qu'il n'y ait pas d'erreur, j'ai peut-être une idée mais je n'ai pas eu le temps de la creuser. Je te l'expose néanmoins.

L'option --biff-get n'est efficace que si le fichier que tu demandes se trouve quelque part dans un fichier BIF du jeu. La documentation de WeiDU indique explicitement (dans les exemples, chapitre 6) que les fichiers qui se trouvent dans le répertoire Override ne sont pas pris en compte par cette fonction. Hors les patchs de Bioware et les mods modifient ou ajoutent des fichiers dans ce fameux répertoire Override. Cela pourrait expliquer pourquoi tu ne récupères pas le fichier dans certains cas. La logique n'est pas claire pour moi.
Par ailleurs j'ai constaté que le fichier ADDY.CRE n'existe pas dans BG II - ToB, il provient de BG. On le trouve donc dans une installation avec BGT mais autrement non. Peut-être as-tu également dans ta configuration une différence entre ton environnement de test et l'installation de base de BG II sur laquelle pointe la base de registre ?


A part ça, j'ai tout de même commencé à faire un peu joujou avec l'éditeur, mais toujours pas dans le cadre d'utilisation que j'évoquais. Il a une approche différente des autres dans sa façon de simuler les dialogues, avec des avantages et des inconvénients. J'y reviendrai plus tard une fois que ces problèmes de configuration seront réglés.

Bonne continuation.
Cocrane
Adepte de Grondemarteau
Ogre mage
Messages : 1328
Enregistré le : dim. 21 mars 2010, 12:03
Localisation : Paris
Contact :
Statut : Hors ligne
.

Message par Cocrane »

Salut Isaya,
je te confirme, j'ai pas une version classique de BG2. C'est une version BGT.


Ca y est enfin. WEIDU fonctionne.

J'ai supprimé les "\" dans les chemins et ça fonctionne avec "--game".

J'ai fait une nouvelle version pour que tu puisses tester chez toi. J'ai ajouté une fenêtre Weidu si tu veux tester des lignes de commande via l'Editeur.

Tes tests ont permis de simplifier l'install et d'être compatible avec plusieurs façons d'installer le jeu. Je t'en remercie.

Tu auras aussi une version décompilé des fichiers CRE, ITM et SPL (ce n'est pas trés lisible pour le moment car je viens juste de finir ma fonction DECOMPILE qui lira l'ensemble des fichiers quelque soit le type)


Nouvelle version tout juste sortie du four:
setup_Editeur_Baldur_Gate_V2_0_3.rar

Coco
Avatar du membre
Isaya
Adepte de Grondemarteau
Planaire
Messages : 6990
Enregistré le : mar. 22 juil. 2003, 21:03
Localisation : Plaisir
Contact :
Statut : Hors ligne
.

Message par Isaya »

Salut Cocrane

J'ai essayé la version 2.03. La barre de titre m'indique toujours 2.02 mais la version des propriétés Windows est bien 2.03 et les nouveaux menus ne laissent pas de place au doute.

J'ai repris la même installation que la dernière fois :

Chemin de l'éditeur : C:\Program Files\TeamBG IE MOD Tools\Editeur_Baldur_Gate\
Chemin des fichiers Temp : C:\Program Files\TeamBG IE MOD Tools\Editeur_Baldur_Gate\Tmp\
Chemin des fichiers MOD : F:\Tmp\Mod_Test_Editeur_BG\
Chemin WeiDU : C:\Program Files\TeamBG IE MOD Tools\WeiDU\
Racine du jeu BG : F:\Tmp\BGII BGT - Test\
Base de registre : F:\Program Files\Jeux\BGII - SoA\BGMain.exe

Le lancement s'est bien passé, du moins en apparence. Par contre, j'ai vu que quelque chose clochait toujours dès que j'ai ouvert la fenêtre des créatures : bien que mon installation désigne un environnement avec BGT, la créature ADDY.CRE (dont on a déjà parlé, propre à BGT) ne figurait pas dans la liste.
Problème confirmé par la vérification du fichier Liste_fichier_BG.txt, qui ne fait que 537 Ko au lieu des 614 Ko que j'obtiens en recréant la liste à la main avec WeiDU et où figure ADDY.CRE.

J'ai alors inversé les choses :

Racine du jeu BG : F:\Program Files\Jeux\BGII - SoA\
Base de registre : F:\Tmp\BGII BGT - Test\BGMain.exe

Après avoir relancé l'éditeur, j'obtiens alors une liste de 614 Ko, sauf qu'elle est plus complète que ce qui se trouve dans le répertoire désigné pour le jeu. Du coup, quand j'ouvre l'éditeur de créature et que je double-clique sur ADDY.CRE, j'obtiens une erreur à cause de l'absence du fichier dans le répertoire du jeu :
Image

La nouvelle fenêtre "Test Weidu" de l'éditeur montre l'origine du problème.
Image
J'ai essayé de surligner la présence d'un espace à la fin du chemin indiqué après --game dans la commande pour la liste de fichiers, mais ce n'est pas passé dans la capture d'écran. Tu pourras néanmoins vérifier sa présence en déplaçant le curseur dans la zone du texte.
Cet espace, absent sur la ligne relative aux créatures, explique pourquoi l'extraction de créature pointait bien sur mon installation de base de BG II dans mon essai.

L'absence de l'option --game sur la ligne de commande pour les dialogues m'a par contre inquiété. Son absence signifie que l'éditeur ne tient pas forcément compte du répertoire choisi par l'utilisateur, sauf dans des cas particuliers (installation de base de BG II ou WeiDU.exe placé dans le même répertoire). Pour en avoir le coeur net, j'ai remis la configuration initiale :

Racine du jeu BG : F:\Tmp\BGII BGT - Test\
Base de registre : F:\Program Files\Jeux\BGII - SoA\BGMain.exe

J'ai essayé d'afficher le dialogue ADDY.DLG, avec succès. Bien qu'il existe aussi dans BG II (un ménage mal fait par les développeurs, il reste beaucoup de fichiers BG dans BG II), les textes correspondants aux répliques ont été écrasés (tu peux le vérifier avec Near Infinity). Le fichier ADDY.d dans le répertoire temporaire montre bien que le fichier a été extrait à partir de la racine désignée du jeu, soit "F:\Tmp\BGII BGT - Test/DATA/BG1DLG.BIF" (fichier BIF de BGT).

Je suppose donc que les paramètres WeiDU affichés pour les dialogues dans la fenêtre Test Weidu ne sont représentatifs des options véritablement passés à WeiDU.

Remarque : j'ai fait un essai pour extraire un gros dialogue avec pleins de liens vers d'autres, en choisissant AERIEJ.DLG. L'extraction des dialogues liés entraîne l'ouverture de nombreuses fenêtres DOS et a dû durer une bonne minute sur ma machine. La façon dont c'est fait par l'éditeur est particulièrement pénible : la fenêtre WeiDU/DOS passe systématiquement au premier plan et capte le focus, ce qui interrompt systématiquement ce que je cherche à faire pour passer le temps (dans ce cas, il s'agissait de taper le début de ce message). Je ne sais pas si tu peux faire quelque chose pour éviter que l'exécution de la commande prenne le focus, mais cela rendrait l'éditeur moins pénible. De même, je pense que l'utilisateur lambda apprécierait de ne pas avoir ces ouvertures sporadiques de fenêtre WeiDU. Peut-être est-il possible avec WinDev de masquer la fenêtre, tout au moins de s'arranger pour qu'elle s'ouvre en arrière plan ?

Pour revenir au problème de chemin du jeu, j'ai l'impression que tu n'as pas tenu compte pour la commande de liste des fichiers de ce que j'avais indiqué dans ma conclusion précédente :
Je te propose de corriger le chemin passé de deux façons :
  • en retirant le "\" à la fin du nom du chemin
  • en t'assurant que tu n'ajoutes pas d'espace à la fin

J'ai pris le temps de creuser l'hypothèse que je t'avais exposée à propos de l'utilisation de l'option --biff-get.
Pour éviter tout problème de chemin, j'ai fixé un et un seul répertoire possible :

Racine du jeu BG : F:\Tmp\BGII BGT - Test\
Base de registre : F:\Tmp\BGII BGT - Test\BGMain.exe

Avec Near Infinity, j'ai créé une copie du fichier ABAZIGAL.CRE sous le nom ISAYA.CRE. Cette copie n'existe que dans le répertoire Override du jeu (F:\Tmp\BGII BGT - Test\Override).

Après avoir relancé l'éditeur, j'ai constaté que le fichier ISAYA.CRE n'apparaissait pas dans la liste des créatures. Après vérification, il n'apparaissait pas non plus dans le fichier Liste_fichier_BG.txt. De même, il n'apparaissait pas en exécutant la commande WeiDU --list-files à la main.

Après vérification de la documentation de WeiDU, l'explication est évidente. De même que --biff-get, --list-files ne traite que les fichiers inclus dans un fichier BIF. Ou plus exactement les fichiers référencés dans le fichier chitin.key, ce qui revient au même (à part quelques incohérences, dont celles, telles que XR2400.ARE qui existe dans chitin.key mais dans aucun fichier BIF, qui provoquent des messages d'erreurs quand on fait des recherches avec Near Infinity). Du coup les fichiers ajoutés par un patch officiel ou par un mod ne sont pas vus par l'éditeur.
De même les fichiers modifiés par un patch officiel ou un mod et qui existaient à l'origine dans un fichier BIF ne sont pas bien pris en charge par l'éditeur. En effet, au lieu de prendre la dernière version (celle du répertoire Override), l'extraction avec -biff-get va fournir la version présente dans le fichier BIF, donc la version non modifiée.
J'ai fait l'expérience avec des fichiers tels que HAER10.CRE, qui est présent dans le répertoire Override d'une installation de base de BGII + ToB + patch officiel. Le fichier que récupère l'éditeur dans le répertoire Tmp diffère de la version présente dans le répertoire Override. Pour ce fichier la différence ne saute pas aux yeux : la taille est la même ; mais en effectuant une comparaison binaire, on se rend compte qu'il y a bien des différences.
La différence est plus flagrante avec une installation avec le BG2Fixpack. Le fichier AERIE12.CRE présente une différente de taille de fichier entre la version extraite par l'éditeur dans le répertoire Tmp et la version présente dans le répertoire Override.

Ce comportement rend l'éditeur inutilisable pour visualiser des fichiers d'une installation du jeu ! Même une installation de base a toujours des fichiers dans le répertoire Override (déjà plus de 800 pour BGII - ToB). En conséquence, il est en l'état actuel inexploitable pour les travaux de traduction que j'avais évoqué.

Pour contourner cette restriction, il faudrait que l'éditeur adopte le même comportement que le jeu vis à vis des fichiers présents dans le répertoire Override. En pratique, il y a même d'autres répertoires dans lequel le moteur de jeu va vérifier s'il n'y a pas des surcharges des fichiers du jeu (voir cette page d'IESDP) mais Override serait déjà suffisant, puisque c'est celui qu'utilisent les patchs officiels et les mods.

Le jeu et les autres éditeurs travaillent sur le principe suivant :
  • la liste des fichiers du jeu constitue l'union des fichiers référencés dans le fichier chitin.key (contenus dans les fichiers BIF) et des fichiers présents dans le répertoire Override
  • le fichier présent dans le répertoire Override a priorité sur celui du même nom présent dans un fichier BIF
Du point de vue de l'éditeur, il faudrait donc constituer la liste des fichiers en combinant la liste des fichiers obtenue avec --list-files et celle obtenue en référençant tous les fichiers du répertoire Override, et en éliminant les doublons.
Par la suite, quand l'éditeur veut obtenir un fichier, il faudrait qu'il vérifie si le fichier est présent dans le répertoire Override, auquel cas il lui suffit de le recopier dans son répertoire Tmp au lieu de l'extraire avec --biff-get. Si le fichier n'existe pas dans le répertoire Override, il suffit de l'extraire avec --biff-get.
Pour être plus efficace et éviter de vérifier la présence du fichier dans le répertoire Override à chaque fois au cours d'une session de l'éditeur, il suffirait de conserver en mémoire une table des noms de fichiers avec une indication de son emplacement (Override ou fichier BIF).
A titre d'exemple, c'est ainsi que procède l'éditeur de sauvegarde Shadow Keeper.

Le premier problème signalé (défaut de la liste de fichiers à cause du chemin avec espace à la fin) devrait être facile à corriger. En revanche établir la liste complète des fichiers en tenant compte de ceux du répertoire Override pourrait s'avérer un peu plus compliqué. En C, l'API Windows propose des fonctions pour établir la liste des fichiers d'un répertoire. J'imagine que WinDev propose quelque chose de similaire, peut-être même bien plus simple d'utilisation. Quant aux fonctions permettant d'éliminer les doublons entre les fichiers référencés dans chitin.key et ceux du répertoire Override, je suppose que WinDev doit aussi proposer quelque chose. Reste à trouver comment s'y prendre. Dans le pire des cas, il s'agit d'un tri alphabétique, suivi d'une vérification de la présence d'un voisin de même nom, que l'on élimine ensuite. Le principal inconvénient est le temps nécessaire pour le faire.

J'ai constaté que la désinstallation laissait toujours la quasi-totalité des fichiers (DLL, fichiers divers de l'installation, fichiers créés à l'exécution) dans le répertoire d'installation. Tu n'as pas peut-être pas travaillé là-dessus. Il est vrai que ce n'est pas prioritaire.

Je suis à ta disposition pour plus de précisions et pour continuer à tester les évolutions de l'éditeur. Si tu le souhaites, nous pourrions discuter directement par mail, pour faciliter les échanges de fichiers notamment.

Félicitations pour le travail acharné et les avancées récentes, même si elles ne sont pas encore toutes exploitables. Bon courage.
Cocrane
Adepte de Grondemarteau
Ogre mage
Messages : 1328
Enregistré le : dim. 21 mars 2010, 12:03
Localisation : Paris
Contact :
Statut : Hors ligne
.

Message par Cocrane »

Salut Isaya,

je réponds à ton mail point par point et je rajoute des éléments sur le reste à faire en cours.

1- L'installation

1-1 Fonctionnement multi-environnement
J'ai pris en compte tes remarques sur l'espace et le "\" de --game mais j'ai mal codé la correction à faire. :$ Comme ma mauvaise correction fonctionnait dans mon environnement, j'ai cru que le problème était corrigé. Normalement maintenant c'est bon.

1-2 L'installeur
Améliorer le fonctionnement de l'installeur pour:
> proposer le readme avant l'installation
> effectuer une désinstallation complète
Il faut que je consulte le code que tu m'as fourni pour InnoSetup.


2-L'éditeur

2-1 Gestion du fichier à traiter avec la Biff et l'override.
Windev peut permettre d'utiliser en priorité le fichier présent dans l'override pour l'affichage dans les listes et dans les traitements.
> A tester sur la consommation de temps.
> J'ai jeté un oeil dans l'Override, les fichiers sont déjà dans un format exploitable sans Weidu au moins pour certains. C'est un gain de temps et de confort.

2-2 Gestion des dialogues
Oui, le calcul de l'ensemble des dialogues et des issues possibles peut être long et décourageant. C'est dû:
- à la taille du fichier
- à la complexité des dialogues
- au nombre de fichiers appelés via le mot clé 'EXTERN'
> il faut que je cherche à améliorer les temps de traitement.

J'ai d'un coté tout le code à gérer en couleur et ensuite les dialogues et issues à reconstituer. A coder, je me suis arraché les cheveux. :shok:
J'utilise Weidu pour obtenir les .d. Dés qu'un fichier externe est appelé, Weidu est lancé et effectivement c'est pénible. Je ne pense pas que Windev puisse mettre en tache de fond Weidu. A voir.

Je pense que l'écriture du .d est encore trop technique. La réalisation d'un assistant me semble nécessaire. A voir sur la manière de procéder.

L'idéal pour moi est de pouvoir me passer de Weidu. NI y parvient, je pense donc y arriver aussi quand je me pencherai sur le sujet. Pour le moment, je l'utilise pour gagner du temps dans la réalisation de l'éditeur.

3- Travaux en cours
L'éditeur peut:
- lire des fichiers en sélectionnant le nom dans un liste tableau ou dans un répertoire du disque.

- afficher les données lues dans des tableaux avec les noms des champs correspondants. On double clique sur un nom de fichier pour afficher les données.

- Idem pour écrire (création, modification)
> en cours

Pour le moment ça fonctionne pour les fichiers CRE, SPL et ITM. J'ai crée le code pour qu'il soit rapidement adaptable aux autres fichiers. Il y aura sans doute des exceptions comme le fichier BAM qui m'a l'air complexe.

Je me suis appuyé sur la description des structures présentes dans Gibberling. Je dirais que le fonctionnement est dans l'esprit "NI". Par contre NI n'utilise pas forcément les mêmes noms de champs et certains champs ne semblent pas être affichés.

Quand je traduis le fichier SPL a aucun moment, j'ai accès au texte de description du sort. Alors que NI le propose. D'où vient ce texte? d'un autre fichier?

Voilà pour les infos en cours.


Coco
Avatar du membre
Isaya
Adepte de Grondemarteau
Planaire
Messages : 6990
Enregistré le : mar. 22 juil. 2003, 21:03
Localisation : Plaisir
Contact :
Statut : Hors ligne
.

Message par Isaya »

Je te réponds en faisant référence à ta numération.

1-1 Je te confirmerai ça dès que j'aurai la nouvelle version à disposition dans ma salle de torture. ;)

1-2 A vrai dire, l'histoire du readme affiché en début d'installation n'a plus aucun intérêt maintenant que les contraintes d'installation ont disparu. Par contre la désinstallation complète serait préférable, effectivement.

2-1 Les fichiers dans Override sont effectivement directement utilisables et te font gagner l'opération --biff-get. A part peut-être les fichiers TIS, mais tu ne fais de graphisme de zone, alors inutile de s'en préoccuper.

2-2 Le seul point vraiment gênant est l'intrusion de la ligne de commande WeiDU. On ne manipule pas non plus tout le temps des fichiers dialogue qui ont des liens dans tous les sens. Si tu peux trouver simplement un moyen d'ouvrir la fenêtre en arrière plan ou sous forme réduite, sans prendre le focus (ça c'est pas gagné avec Windows, à vrai dire), ce serait déjà très très bien.
Near Infinity gère effectivement les dialogues mais uniquement sous leur forme compilée DLG. Ton éditeur a la particularité quasi-exclusive de savoir traiter les fichiers D, donc les fichiers sources des moddeurs. Ils peuvent exploiter la capacité de simulation pour tester leurs dialogues sans passer dans le jeu (pour les dialogues simples seulement, pour l'instant). C'est un avantage à ne surtout pas perdre !
Remarque : je ne suis pas tout à fait certain pour l'exclusivité : quelqu'un sur Spellhold Studios travaillait sur un éditeur générateur de dialogue WeiDU, mais je ne crois pas qu'il soit disponible.

Il est certain que si tu pouvais traiter les fichiers DLG sans avoir à décompiler avec WeiDU puis réinterpréter le fichier ainsi obtenu, l'éditeur serait bien plus réactif. Mais ça veut dire que tu dois te cogner les particularités du format DLG, en particulier la gestion bizarre des WEIGHT que tu trouveras parfois dans les fichiers D produits par WeiDU. Garde ce casse-tête pour le moment où tu seras super-zen... ;)

3 Je vois que tu sembles avancer à grands pas.
lire des fichiers en sélectionnant le nom dans un liste tableau ou dans un répertoire du disque.
Si c'est en réaction à ma remarque sur le répertoire Override, ce n'était pas tout à fait ce que j'avais en tête. Mon idée était plutôt d'ajouter les fichiers trouvés dans Override à la liste.
Cela dit, le fait de pouvoir aller chercher un fichier hors de l'arborescence du jeu est important et nécessaire pour les moddeurs.
Il y aura sans doute des exceptions comme le fichier BAM qui m'a l'air complexe.
Tu peux considérer les fichiers BAM, MOS, TIS, WAV, MUS (j'en oublie peut-être) comme étant des cas à parts. Ce sont des ressources "artistiques" comme ils disent dans l'éditeur pour Dragon Age. A moins de vouloir intégrer un éditeur type Paint ou Audacity, il n'y a pas un besoin très fort de les prendre en charge dans l'éditeur.
Je me suis appuyé sur la description des structures présentes dans Gibberling. Je dirais que le fonctionnement est dans l'esprit "NI". Par contre NI n'utilise pas forcément les mêmes noms de champs et certains champs ne semblent pas être affichés.
IESDP évolue, y compris dans les noms de champs, alors que personne ou presque ne fait vraiment évoluer Near Infinity. Par ailleurs, il a toujours un nommage parfois un peu différent (comme tous les éditeurs, d'ailleurs). Par conséquent, les différences ne sont pas surprenantes. Des "Unknown" de NI sont désormais identifiés dans IESDP. Il vaut mieux se baser sur IESDP en cas de doute ou de conflit.
Quand je traduis le fichier SPL a aucun moment, j'ai accès au texte de description du sort. Alors que NI le propose. D'où vient ce texte? d'un autre fichier?
Tu dois avoir le même problème avec les créatures, notamment pour leur nom. En pratique, à chaque fois qu'une description de format parle de StrRef, il s'agit d'un entier 32 bits qui désigne le numéro du texte dans le fichier dialog.tlk. Les numéros que tu vois sous la forme #32754 dans les fichiers D de WeiDU correspondent également à des StrRef.

Le fichier dialog.tlk est assez simple à décoder. En gros, chaque numéro peut être associé à un texte et éventuellement à un nom de fichier de 8 caractères qui désigne un fichier WAV qui constitue le doublage sonore. Tu pourrais le charger au démarrage de l'éditeur et manipuler les textes au sein d'une grosse table de données dont l'index est tout simplement le StrRef.
Je suis à ta disposition si tu souhaites davantage de précisions.
Cocrane
Adepte de Grondemarteau
Ogre mage
Messages : 1328
Enregistré le : dim. 21 mars 2010, 12:03
Localisation : Paris
Contact :
Statut : Hors ligne
.

Message par Cocrane »

Bonjour,

1- Une mise au point

Je fais le point pour que vous compreniez ma démarche actuelle.

Je suis fan des Univers Héroic Fantasy et des jeux de Rôles. Je pense être doué pour faire des scénarios et donc proposer un Mod de qualité pour BG. J'ai un projet en cours que je construis petit à petit pour vous faire vivre une belle aventure.

Malheureusement, on n'a pas d'éditeur BG proposé par les concepteurs du jeu. De ce que j'ai vu des éditeurs actuels des fans, ils sont en gros trop techniques. Ce qu'ils ont réalisés représente beaucoup de travail mais ça ne suffit pas...

Beaucoup de bonnes idées sur le papier finissent dans la corbeille car la personne n'a pas la volonté, la disponibilité et la capacité de s'adapter à la difficulté technique. J'ai l'impression que c'est le cas de 90% des projets qui sont proposés. Un beau gachis... :'(

Etant informaticien, j'ai le recul et l'expérience pour faire un éditeur. J'ai commencé cet éditeur et j'irai au bout. Cependant mes connaissances en Anglais et du modding actuels sont limités. Mon but n'est pas de devenir un pro en Anglais et des éditeurs actuels pour ensuite faire l'éditeur "Pour les nuls".



Le but est de faire un éditeur complet et facile à utiliser pour Modder.

J'attends de vous:
- vos connaissances en anglais
- vos connaissances sur le modding actuel.

Isaya participe activement et son aide m'est très précieuse. Grâce à lui, j'ai pu améliorer plusieurs points de l'éditeur. Mais il est le seul à m'aider à la CDC.

Je ne connais pas clairement vos difficultés et les points forts des éditeurs actuels que vous rêvez d'avoir dans un éditeur unique. C'est votre aide qui fera la différence.

Toutes idées ou besoins sont les bienvenus. Vous avez l'avantage d'avoir une personne qui peut potentiellement réaliser les fonctions qui vous manque. C'est à vous de vous exprimer sur le sujet.

"La balle est dans votre Camp." ;)



2- Questions actuelles

2-1 Un éditeur International
Les fichiers du jeu sont décris sous File Formats.
Le nom des champs sont en Anglais.

Je vous propose d'abord de réaliser l'éditeur en Anglais et Français. Pour être sur de la bonne traduction des noms Anglais, j'ai besoin qu'une personne gère ce point.

Je copie-colle chaque fichier décrit dans un fichier texte. L'éditeur transforme le fichier en une base de données. Je peux donc à loisir recharger chaque fichier.

Exemple pour le CRE:
"
...
0x00000 4 (char array) Signature ('CRE')
0x0004 4 (char array) version('V1.0')
0x0008 4 (strref) Long name
0x000c 4 (strref) Short name (tooltip)
0x0010 4 (dword) Creature flags
...
"
Qui peut ajouter après avoir appuyé sur la touche <TAB> le nom en français qui convient?
Résultat
"
...
0x00000 4 (char array) Signature Signature ('CRE')
0x0004 4 (char array) version Version ('V1.0')
0x0008 4 (strref) Long name Nom long
0x000c 4 (strref) Short name Nom court (tooltip)
0x0010 4 (dword) Creature flags ?
...
"

Avec ce fichier, je pourrais afficher les noms en Français dans l'éditeur pour les créatures.
Je peux fournir le fichier à traduire.

2-2 La donnée 'Creature flags' (fichier CRE)
- quel est le rôle exact de cette donnée?

Dans le descriptif de sa structure j'ai par exemple les valeurs possibles suivantes.
"
0 Show longname in tooltip
1 No corpse
2 Keep corpse
3 Original class was Fighter
4 Original class was Mage
5 Original class was Cleric
6 Original class was Thief
7 Original class was Druid
8 Original class was Ranger
9 Fallen Paladin
10 Fallen Ranger
"
- Dans NI j'ai vu des cas où il y a plusieurs valeurs sélectionnées.
On peut être 3 + 4 +8 par exemple? Ca me semble un peu étrange sauf si on est multiclassé?

Voilà pour les deux 1ières questions/demandes.

Pour info, une version 2.1.0 sera livrée ce soir. :read:

Coco
Cocrane
Adepte de Grondemarteau
Ogre mage
Messages : 1328
Enregistré le : dim. 21 mars 2010, 12:03
Localisation : Paris
Contact :
Statut : Hors ligne
.

Message par Cocrane »

Comme promis voici la version 2.1.0

setup_Editeur_Baldur_Gate_V2_1_0.rar

A noter:
- la création de la liste des fichiers du jeu + ceux de l'override prends en gros 8 secondes.
La fenêtre Weidu reste affiché pendant ce temps.

- j'ai commencé à afficher la liste des choix possibles via les fichiers .IDS (statut de la créature etc...). Ces fichiers doivent ils être chargés à chaque lancement de l'éditeur?
Pour le moment c'est le cas pour ceux que je gère.

- au sujet des champs dword où il y a une liste correspondante, je constate que la valeur que je lis n'est pas celle proposée par NI.

Exemple:
Abazigal a 3 statut (0,24,26).
lisant dans le CRE le dword sur 4, j'obtiens la valeur '83886081' ...
"
0x0010 4 (dword) Creature flags
* bit 0 Show longname in tooltip
* bit 1 No corpse
* bit 2 Keep corpse
* bit 3 Original class was Fighter
* bit 4 Original class was Mage
* bit 5 Original class was Cleric
* bit 6 Original class was Thief
* bit 7 Original class was Druid
* bit 8 Original class was Ranger
* bit 9 Fallen Paladin
* bit 10 Fallen Ranger
* bit 11 Exportable
* bit 12 Hide injury status in tooltip
* bit 13 Quest critical
* bit 14 Can activate "Can not be used by NPC" triggers
* bit 15 Been in Party
* bit 16 Restore item in hand
* bit 17 Un-sets bit 16
* bit 24 Related to random walk (ea)
* bit 25 Related to random walk (general)
* bit 26 Related to random walk (race)
* bit 27 Related to random walk (class)
* bit 28 Related to random walk (specific)
* bit 29 Related to random walk (gender)
* bit 30 Related to random walk (alignment)
* bit 30 Un-interruptable (memory only)
* A multiclass char is indicated is by the absence of any of the "original class" flags being set.
"

Ma manière de lire les dword est la même pour tous les champs de ce type dans l'éditeur. Par exemple pour l'expérience, j'ai bien 25000 sur NI et sur l'éditeur. L'XP est aussi un dword sur 4. Je dois lire l'info en 4 parties?


Coco
Avatar du membre
Isaya
Adepte de Grondemarteau
Planaire
Messages : 6990
Enregistré le : mar. 22 juil. 2003, 21:03
Localisation : Plaisir
Contact :
Statut : Hors ligne
.

Message par Isaya »

Bravo pour les modifications rapides. J'ai récupéré l'éditeur. Je le testerai dans les jours qui viennent.
Cocrane a écrit :J'attends de vous:
- vos connaissances en anglais
- vos connaissances sur le modding actuel.

Je ne connais pas clairement vos difficultés et les points forts des éditeurs actuels que vous rêvez d'avoir dans un éditeur unique. C'est votre aide qui fera la différence.
Même si tu n'as pas l'intention de pousser tes connaissances en anglais, je gage que le fait de devoir utiliser des outils en anglais et de lire des documents de référence dans cette langue te fera immanquablement faire des progrès.
Cela dit, je pourrai te donner un coup de main sur ce point. Mes connaissances et mon expérience pratique sur le modding datent beaucoup d'une époque révolue où WeiDU n'était pas encore l'outil universel qu'il est devenu. A part ça, pas de problème pour donner mon avis.
Cocrane a écrit :Le nom des champs sont en Anglais.

Je vous propose d'abord de réaliser l'éditeur en Anglais et Français. Pour être sur de la bonne traduction des noms Anglais, j'ai besoin qu'une personne gère ce point.

Je copie-colle chaque fichier décrit dans un fichier texte. L'éditeur transforme le fichier en une base de données. Je peux donc à loisir recharger chaque fichier.
Je comprends l'intérêt du français pour un débutant. Cependant, à cause de la documentation disponible quasi-exclusivement en anglais, le moddeur aura toujours besoin de maîtriser les termes anglais. L'idéal serait qu'on puisse facilement basculer d'une langue à l'autre dans l'éditeur, de façon à ne pas perdre de vue le terme "officiel" en anglais, lorsque c'est utile (très souvent).
Cocrane a écrit :Qui peut ajouter après avoir appuyé sur la touche <TAB> le nom en français qui convient?

Avec ce fichier, je pourrais afficher les noms en Français dans l'éditeur pour les créatures.
Je peux fournir le fichier à traduire.
A moins de rester limité à deux langues, tout mettre en un seul fichier n'est pas des plus lisibles, de même que les tabulations de séparation, qu'il n'est pas facile de distinguer des espaces. Un système de type CSV pourrait s'avérer plus lisible et permettre l'édition dans un outil type Excel, avec la vision en colonnes.

Cela dit, pour que l'éditeur soit réellement en français et en anglais, comme tu l'as écrit plus haut, il y a bien plus que les formats de fichiers à traiter. Il te faudrait un autre mécanisme pour l'interface utilisateur en général. Mais cela ne remet pas en cause ce que tu proposes pour les formats de fichier car cela leur convient parfaitement.
Cocrane a écrit :2-2 La donnée 'Creature flags' (fichier CRE)
- quel est le rôle exact de cette donnée?

Dans le descriptif de sa structure j'ai par exemple les valeurs possibles suivantes.
"
0 Show longname in tooltip
1 No corpse
2 Keep corpse
3 Original class was Fighter
4 Original class was Mage
5 Original class was Cleric
6 Original class was Thief
7 Original class was Druid
8 Original class was Ranger
9 Fallen Paladin
10 Fallen Ranger
"
- Dans NI j'ai vu des cas où il y a plusieurs valeurs sélectionnées.
On peut être 3 + 4 +8 par exemple? Ca me semble un peu étrange sauf si on est multiclassé?
Ce champ sert à conserver notamment l'indication de la classe d'origine pour les classes jumelées (donc humain). C'est nécessaire pour que le personnage puisse retrouver ses caractéristiques de la première classe une fois qu'il a atteint un niveau supérieur dans la nouvelle. Les autres indicateurs sont également des fourre-tout pour des informations importantes, telle que la perte du statut : "fallen paladin" signifie "paladin déchu", donc un paladin redevenu un simple guerrier au rabais, sans ses pouvoirs de paladin.

Pour les trois premiers, je ne sais pas trop quoi penser. Les deux éléments relatifs à "corpse" sont peut-être des indicateurs dynamiques, exploités en cours de jeu pour savoir si le cadavre d'un personnage mort doit apparaître au sol ou non. Il faut savoir qu'un certain nombre d'informations dans les structures servent au jeu à conserver la trace de ce qu'il s'est passé (dialogues, déplacements, morts éventuelles, achats, ...), grâce au fait qu'un certain nombre de fichiers sont mémorisés dans les sauvegardes (raison pour laquelle elles grossissent en cours de jeu, à mesure qu'on visite de nouveaux lieux ou qu'on rencontre de nouvelles personnes).
Cocrane a écrit :- j'ai commencé à afficher la liste des choix possibles via les fichiers .IDS (statut de la créature etc...). Ces fichiers doivent ils être chargés à chaque lancement de l'éditeur?
Pour le moment c'est le cas pour ceux que je gère.
Autant le faire au lancement de l'éditeur, en effet. Si jamais on change de répertoire pour le jeu, il faudra réévaluer leur contenu, comme pour la liste des fichiers. Un mod pourrait fort bien modifier leur contenu.
Cocrane a écrit :- au sujet des champs dword où il y a une liste correspondante, je constate que la valeur que je lis n'est pas celle proposée par NI.

Exemple:
Abazigal a 3 statut (0,24,26).
lisant dans le CRE le dword sur 4, j'obtiens la valeur '83886081' ...
C'est tout simplement de la manipulation binaire.
Le bit 0 a un poids de 0 ou 1 (= 2 puissance 0)
Le bit 1 a un poids de 0 ou 2 (= 2 puissance 1)
Le bit 2 a un poids de 0 ou 4 (= 2 puissance 2)
...
Ramené en notation binaire, l'état d'Abazigal devient :

Code : Tout sélectionner

 3         2         1         0                 <- dizaine
10987654321098765432109876543210                 <- unité
-------------------------------------
00000101000000000000000000000001
Si tu prends ta calculatrice Windows en binaire et que tu fais la conversion en décimal, tu obtiendras bien la valeur 83886081 (j'ai fait l'exercice à l'instant).
Cocrane a écrit :Ma manière de lire les dword est la même pour tous les champs de ce type dans l'éditeur. Par exemple pour l'expérience, j'ai bien 25000 sur NI et sur l'éditeur. L'XP est aussi un dword sur 4. Je dois lire l'info en 4 parties?
La différence tient au fait que le DWORD qui tu lis pour l'expérience est bien un entier. Pour les flags, il s'agit d'un ensemble de bits. Ce qui signifie non pas que tu dois diviser en 4 parties (octets), mais en réalité en 32 parties, chaque bit pris isolément.

En langage C, il est très facile de tester la valeur des bits en utilisant des masques constitués à partir des valeurs de bits. Exemple

Code : Tout sélectionner

if ((valeur & (1 << numero_de_bit)) != 0)
    printf("Le bit %d est à 1", numero_de_bit);
WinDev a probablement des instructions pour la manipulation de bits, en particulier des décalages (l'équivalent du << en C) et des opérateurs binaires (ET, OU), qui jouent individuellement sur chaque bit du nombre. De nombreux Basic ont ça également. Il semble que Visual Basic aient les opérateurs binaires mais aussi ceux de décalage. D'après ce que j'ai vu dans l'aide en ligne de Windev sur Internet, tu as également tout ce qu'il faut.

On peut se passer de ce genre d'instruction mais c'est compliqué et peu lisible. Par exemple, pour le bit 24, son poids en décimal est 16777216 (= 2 puissance 24). Quand tu divises la valeur par 16777216, si le quotient est un nombre impair, le bit 24 de la valeur est forcément à 1. Mais pour arriver à ce résultat, il faut deux divisions (la deuxième pour déterminer si le nombre est impair). C'est beaucoup beaucoup plus lent qu'une manipulation binaire.

Si tu as besoin de précisions, n'hésite pas. Bon courage pour la suite.
Répondre

Retourner vers « Éditeur Baldur's Gate »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 0 invité