Page 1 sur 1
[WeiDU] Comment renseigner la valeur d'un effet Display string (#139) dans un objet ?
Posté : lun. 24 avr. 2006, 12:00
par Akadis
J'ai un objet dont un des effets est Display String et j'ai mon texte dans un fichier tra sous la forme :
@10 = ~Mon texte à afficher~
Mais je ne sais pas comment faire pour associer ce texte au display string de l'objet lors du TP2.
Posté : sam. 29 avr. 2006, 18:39
par Isaya
Il y a plusieurs techniques pour ce que tu cherches.
La première consiste à repérer avec un programme comme NearInfinity la position de l'effet dans le fichier ITM, puis de déterminer la position où le numéro du texte est indiqué dans la partie réservée à l'effet. Ce devrait te donner la position depuis le début du fichier. Ensuite, tu ajoutes dans le fichier TP2 le bloc suivant :
Code : Tout sélectionner
COPY ~tonmod/items/objet.itm~ ~override/objet.itm~
SAY NAME2 @N1
SAY DESC @N2
SAY 0xAAAA @N3
N1, N2 et N3 étant les numéros de chaine dans ton fichier TRA
AAAA étant la position dont on a parlé, exprimée en hexadécimal
NearInfinity a une option particulière pour identifier cette position, "Show Hex Offsets" dans le menu Options. Tu verras alors apparaître les offsets à droite dans les onglets Edit.
Une autre solution consiste à indiquer une valeur particulière d'indice de texte (au delà des valeurs courantes de préférence) et de demander à WeiDU de remplacer cette valeur par celle d'un @N. Je ne suis pas sûr que ça fonctionne pour autre chose que du texte (j'ai vu cette technique utilisée pour une action à l'intérieur d'un dialogue, qui est un texte en fait). C'est plutôt déconseillé pour un champ binaire car il se pourrait que la valeur apparaisse ailleurs dans le fichier.
Posté : sam. 02 avr. 2016, 21:45
par Freddy_Gwendo
Tu peux aussi utiliser WeiDU. Exemple tiré de l'installation de sorts qui fonctionne aussi pour un objet :
Code : Tout sélectionner
COPY ~Diamant_Eternel/Sorts/Kits2/GXSerBaL.spl~ ~override/GXSerBaL.spl~ SAY NAME1 @7712015 SAY UNIDENTIFIED_DESC @7712016
SET JS = 3
LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_timing = 1 parameter1 = RESOLVE_STR_REF (@7120051) END // Bonus de %JS% points aux jets de sauvegarde
LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_timing = 4 parameter1 = RESOLVE_STR_REF (@7120058) END // Fin de la protection de la Serre de Bahamut
Dans le code, je distingue les effets #139 à durée permanente et à durée différée. Si tu n'as qu'un seul effet #139, alors c'est plus simple :
Code : Tout sélectionner
COPY ~MonMod/Items/MonItem.itm~ ~override/MonItem.itml~ SAY NAME1 @nn SAY UNIDENTIFIED_DESC @nnn
LPF ALTER_EFFECT INT_VAR match_opcode = 139 parameter1 = RESOLVE_STR_REF (@mmm) END // La référence de ton fichier tra.