Page 1 sur 1
[WeiDU] APPEND pour écrire à la fin d'un fichier, mais comment écrire AU MILIEU ?
Posté : mar. 01 déc. 2015, 22:25
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 ?
Posté : mar. 01 déc. 2015, 23:03
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é.
Posté : mer. 02 déc. 2015, 01:02
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.
Posté : mer. 02 déc. 2015, 08:40
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
Posté : mer. 02 déc. 2015, 09:46
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.