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é...

[INI] Comment modifier facilement un fichier ini ?

Regroupe tous les sujets relatifs aux animations de créatures, de décor ("background) et de sorts
Répondre
Avatar du membre
Freddy_Gwendo
Adepte de Grondemarteau
Orbe ancien
Messages : 5877
Enregistré le : sam. 23 avr. 2011, 00:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne

[INI] Comment modifier facilement un fichier ini ?

.

Message par Freddy_Gwendo »

Contrairement aux versions classiques, les versions Enhanced n'utilisent pas le fichier ANISND.ids et les fichiers 2da d'attribution de sons aux animations de créatures, mais regroupent ces données dans un fichier ini dédié à chaque animation.

Malheureusement, je me suis aperçu que certains sont erronés, par exemple ceux des animations CHICKEN_BROWN et CHICKEN_WHITE qui mentionnent les fichiers bam MCHB et MCHW alors que ce sont les fichiers ACHB et ACHW qu'il faut utiliser.
Je dois donc les modifier et je me demande si la fonction REPLACE_TEXTUALLY fonctionne aussi avec ces fichiers qui ne sont que des fichiers txt à la base.

Bref, est-ce qu'une commande WeiDU du style

Code : Tout sélectionner

REPLACE_TEXTUALLY ~resref=MCHB~ ~resref=ACHB~
fonctionne ou bien doit-on procéder autrement ?
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
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 »

Oui, ça fonctionne. Je pense l'avoir vu utilisé dans BG2 Tweaks pour des fichiers 2DA.

Et je m'en suis servi pour le mod de traduction partielle de BG2EE afin d'ajouter la langue française au menu du jeu, où il m'a fallu modifier un fichier .lua :

Code : Tout sélectionner

			COPY_EXISTING ~BGEE.lua~ ~override/BGEE.lua~
				REPLACE_TEXTUALLY ~\(	{'en_US', 99385, 99386, 'English'},\)~ ~\1
	{'fr_FR', %transDesc1%, %transDesc2%, 'Français'},~
				UNLESS ~'fr_FR'~
Nota : la mise en forme est due au format du fichier à modifier, il faut ajouter une ligne avec un certain format à la suite de celui recherché.
:!: Peu disponible
Guide d'installation (et FAQ) de Baldur's Gate, Baldur's Gate II, Baldur's Gate Trilogy (BGT), BG1Tutu, Widescreen, BGEE
Pensez à utiliser à la fonction Recherche pour trouver une réponse à votre question !
Avatar du membre
Freddy_Gwendo
Adepte de Grondemarteau
Orbe ancien
Messages : 5877
Enregistré le : sam. 23 avr. 2011, 00:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne
.

Message par Freddy_Gwendo »

Génial, en plus ton exemple vient de me donner l'idée de modifier l'ensemble des fichiers ini concernés d'un coup en utilisant des variables définies dans un array.
Je testerai ça demain.

Je ne sais pas comment les devs s'y sont pris, ni pourquoi personne ne semble s'en être aperçu, mais une bonne douzaine de ces fichiers ne sont pas corrects. :gign:
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Avatar du membre
Freddy_Gwendo
Adepte de Grondemarteau
Orbe ancien
Messages : 5877
Enregistré le : sam. 23 avr. 2011, 00:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne
.

Message par Freddy_Gwendo »

J'ai réussi à pondre un truc qui fonctionne :

Code : Tout sélectionner

ACTION_DEFINE_ASSOCIATIVE_ARRAY GW_ini_files BEGIN
MCHB,	ACHB	=> 7d02
MCHW,	ACHW	=> 7d03
MGVE,	MGHI	=> e293
...
END

ACTION_PHP_EACH GW_ini_files AS donnees => inifile BEGIN

	ACTION_IF (FILE_EXISTS_IN_GAME ~%inifile%.ini~) THEN BEGIN
		OUTER_SPRINT bamold EVAL "%donnees_0%"
		OUTER_SPRINT bamnew EVAL "%donnees_1%"
		OUTER_SPRINT headerold EVAL "// %donnees_0%"
		OUTER_SPRINT headernew EVAL "// %donnees_1%"
		COPY_EXISTING ~%inifile%.ini~ ~override/%inifile%.ini~
			REPLACE_TEXTUALLY ~\(resref=\)%bamold%~ ~\1%bamnew%~
			REPLACE_TEXTUALLY ~%headerold%~ ~%headernew%~
		BUT_ONLY
	END

END
Comme d'hab, puisque je suis fâché avec les expressions régulières, il a fallu que je me replonge dans la doc. :gign:

Seul souci : je n'ai pas réussi à trouver une formulation avec /1 /2 pour effectuer un remplacement d'une traite dans un seul REPLACE_TEXTUALLY. Il faut jongler avec les caractères spéciaux et avec les %WNL% et compagnie...
J'aurais aussi pu intégrer "resref =" dans les variables. Mais bon... ;)
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
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 »

Ma foi, il y a une bonne dizaine de lignes entre les deux éléments à remplacer, dont des débuts de section. Faire une expression régulière qui couvre précisément ce qui est entre les deux, sans risque d'attraper autre chose au passage, c'est une folie. Mieux vaut deux recherches sans ambiguïté qu'on monstre incompréhensible dès les jours qui suivent sa réalisation.
Toujours pour la lisibilité, il vaut mieux que tu réserves bien tes variables à quelque chose qui a un sens et que le resref n'en fasse pas partie.
:!: Peu disponible
Guide d'installation (et FAQ) de Baldur's Gate, Baldur's Gate II, Baldur's Gate Trilogy (BGT), BG1Tutu, Widescreen, BGEE
Pensez à utiliser à la fonction Recherche pour trouver une réponse à votre question !
Avatar du membre
Freddy_Gwendo
Adepte de Grondemarteau
Orbe ancien
Messages : 5877
Enregistré le : sam. 23 avr. 2011, 00:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne
.

Message par Freddy_Gwendo »

Et en plus, selon le format de l'animation, le nombre de lignes renseignées n'est pas le même !

C'est après avoir été fouiller dans quelques tp2 de mods que j'ai fini par renoncer.
Si tu me dis que c'est "une folie", alors je prends ! Tu maîtrises beaucoup mieux ce genre de point que moi. ^^
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
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 écrit "de la folie", car c'est faire compliqué pour la beauté de l'art (écrire une seule expression) au détriment de la facilité de mise au point et de la lisibilité. Et il y a toujours le risque qu'une évolution du contenu du fichier casse l'expression et que ça ne fonctionne plus. Bref, comme le dit le "zen" du langage Python, "simple is better than complex", "readability counts" ou encore "if the implementation is hard to explain, it's a bad idea".
:!: Peu disponible
Guide d'installation (et FAQ) de Baldur's Gate, Baldur's Gate II, Baldur's Gate Trilogy (BGT), BG1Tutu, Widescreen, BGEE
Pensez à utiliser à la fonction Recherche pour trouver une réponse à votre question !
Avatar du membre
Freddy_Gwendo
Adepte de Grondemarteau
Orbe ancien
Messages : 5877
Enregistré le : sam. 23 avr. 2011, 00:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne
.

Message par Freddy_Gwendo »

Effectivement. ^^

D'ailleurs j'ai suivi à la lettre ces conseils le week-end dernier. Après avoir commencé à pondre une usine à gaz pour éviter d'avoir à fournir deux fichiers de description d'objets pour les versions classiques et enhanced en supprimant les références inusabilité des objets, j'ai fini par me dire qu'au moins un mod avait sûrement déjà eu la même idée.
Et poum ! J'ai trouvé mon bonheur dans Item Revision. Je n'ai eu qu'à adapter le code - qui ne fait que quelques lignes - à mes descriptions.
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Répondre

Retourner vers « Animations »

Qui est en ligne

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