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

[WeiDU] APPEND pour écrire à la fin d'un fichier, mais comment écrire AU MILIEU ?

Regroupe tous les sujets sur les commandes, les fonctions, les routines, les modifications des fichiers systèmes (ids, 2da...)...
Répondre
Avatar du membre
deratiseur
Golem de fer
Messages : 3697
Enregistré le : mer. 05 déc. 2007, 18:35
Localisation : Gap, Hautes alpes
Statut : Hors ligne

[WeiDU] APPEND pour écrire à la fin d'un fichier, mais comment écrire AU MILIEU ?

.

Message par deratiseur »

Tout est dans le titre. APPEND permet d'ajouter une entrée à la fin d'un fichier. Mais je suis un perfectionniste, et je voudrais ajouter l'entrée de mon sort de mage de niveau 4 à sa place, c'est à dire entre "2412 WIZARD_GREATER_MALISON"
et "2413 WIZARD_OTILUKES_RESILIENT_SPHERE". Comment faire ?
Le standard téléphonique est en rade : l'atelier du Deratiseur ne répondra plus à aucune demande personnalisée.
Bosse sur : Interplan v9, Derat's Kri'Binn, Todd : KOPP2.

Mes mods sont tous sur Mediafire et Github
Et leurs descriptions sont ici.
Smidge
Statut : Hors ligne
.

Message par Smidge »

Je pense que tu peux copier ligne à ligne ton fichier source, jusqu'à la ligne où tu souhaites ajouter (je ne connais pas les procédures WEIDU pour ça, mais ça doit bien exister).
Ensuite, tu ajoutes les lignes voulues "à la main", et enfin tu termines avec du APPEND pour terminer de recopier le fichier.
Reste plus qu'à supprimer le fichier original, et renommer le nouveau en l'ancien, et le tour est joué.
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 »

Un classique de ce genre de patch consiste à écrire, "remplacer 2412 WIZARD_GREATER_MALISON" par "2412 WIZARD_GREATER_MALISON, retour à la ligne, 2412_5 WIZARD_J_INVENTE_UN_ENTIER_ENTRE_2412_ET_2413" ;)
Ce qui donnerait un truc du genre

Code : Tout sélectionner

COPY_EXISTING ~SPELL.IDS~ ~override~
    REPLACE CASE_INSENSITIVE EVALUATE_REGEXP ~\(2412 +WIZARD_GREATER_MALISON\)~ ~\1
2412_5 WIZARD_J_INVENTE_UN_ENTIER_ENTRE_2412_ET_2413~
UNLESS ~2412_5 WIZARD_J_INVENTE_UN_ENTIER_ENTRE_2412_ET_2413~
Au final cela doit donner :

Code : Tout sélectionner

2412 WIZARD_GREATER_MALISON
2412_5 WIZARD_J_INVENTE_UN_ENTIER_ENTRE_2412_ET_2413
2413 ...
J'ai " +" afin de couvrir la présence d'un ou davantage d'espaces entre 2412 et WIZARD_GREATER_MALISON (au cas où le jeu ou un mod ait décidé d'en mettre plus ou moins).

Ce principe est utilisé pour patcher des scripts dans setup-bg2fixpack.tp2, ligne 2121 :

Code : Tout sélectionner

REPLACE_TEXTUALLY ~\(OpenState("DOOR03",TRUE)\)~ ~\1 Global("OpenedDoor1","AR2904",1)~
En expression régulière, le texte entre \( et \) marque un bloc de texte mis de côté pour être repris dans la chaîne de remplacement sous la forme \1 (si on fait plusieurs sélections entre (), ce sera \1 \2 etc.). Les \ avant ( et ) sont nécessaires à WeiDU pour les distinguer de vrai parenthèses dans le texte.
:!: 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
deratiseur
Golem de fer
Messages : 3697
Enregistré le : mer. 05 déc. 2007, 18:35
Localisation : Gap, Hautes alpes
Statut : Hors ligne
.

Message par deratiseur »

Merci de vos réponses :)

isaya, j'ai essayé de me dépatouiller avec le code que tu m'as expliqué, mais comme je suis une quiche, ça n'a rien donné. Pas grave, je me suis fais une raison : en explorant tout un tas de tp2 pour trouver d'autres routines de patchage j'ai vu plein de "APPEND spell.ids" alors si la majorité des modules se contentent de ça, pourquoi m’embêter.

Mon sort est bien intégré, il est sélectionnable par un sorcier, c’était un peu ce que je voulais au début :)
Le standard téléphonique est en rade : l'atelier du Deratiseur ne répondra plus à aucune demande personnalisée.
Bosse sur : Interplan v9, Derat's Kri'Binn, Todd : KOPP2.

Mes mods sont tous sur Mediafire et Github
Et leurs descriptions sont ici.
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 »

En plus, certains mods "s'amusent" (comme le mien) à re-trier certains fichiers ids pour insérer des lignes dans les espaces dispo (comme race, specifics et cie).

Du coup, ça ne sert à rien de t'embêter avec cette procédure si elle doit être cassée par un autre mod installé après. ;)
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Répondre

Retourner vers « Programmation WeiDU »

Qui est en ligne

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