[PsT] Modification d'un dialogue existant
Posté : ven. 15 avr. 2016, 14:17
Bonjour à tous. En vue d'apprendre à maîtriser WeiDU je me suis lancé dans une petite modification de fichiers pour le jeu Planescape Torment, mais sitôt commencé que je me heurte à un problème ... qui n'en est peut-être même pas un d'ailleurs. Je souhaite donner l'opportunité au joueur de prélever sur certains Zombis de la Morgue un morceau de chair putréfiée et un seul (qu'il pourra plus tard donner à Moelle-Pote au lieu de se faire mordre). Et pour cette petite modification j'essaie d'être le plus rigoureux possible (en créant les bons fichiers dans les bons dossiers, etc.). De plus l'installation via WeiDU se passe bien - je n'ai aucun message d'erreurs et lorsque je teste ma modification dans le jeu, elle a l'air de fonctionner. Le dialogue modifié est le DZM825.DLG associé au Zombi 825 (ZM825.CRE) qui n'est qu'une créature générique sans dialogue particulier.
J'utilise 3 fichiers pour cette modification (en plus de l'exe de WeiDU et d'un fichier *.tp2 bien sûr) : moelle_pote.tph, DZM825.d et PST-Exp1.tra pour les textes. Mes codes pour chaque fichier :
Fichier moelle_pote.tph
Fichier DZM825.d
Alors comme je l'ai dit, dans le jeu tout semble fonctionner parfaitement, l'objet est crée avec ses attributs, le joueur ne peut couper le Zombi qu'une seule fois. Le problème vient plutôt du fait que Near Infinity m'affiche bien ma modification mais également un [state 2] supplémentaire qui n'était pas là avant. En revanche, en décompilant le dialogue avec WeiDU, il a l'air de collé. Étonnant non, alors qui croire ? Donc, je me dis que mon code a "l'air" bon mais qu'il doit être faux. Et cerise sur le gâteau, lorsque je la désinstalle, WeiDU ne me supprime pas les entrées qu'il a créé dans les deux fichiers *.tlk - elle est pas belle la vie.
Alors si un gourou un WeiDU passe par là, pourrait-il me dire là où mon code merde, parce que je sèche.
===============================================================================
RESOLU
===============================================================================
Je travaillais avec deux installations différentes de PST, la seconde étant la version anglaise, mise à jour mais non modifiée et c'est le PST-FixPack de Qwinn qui a modifié le fichier de dialogue (en le corrigeant) entre les deux versions.
Quant au fait que WeiDU ne supprime pas des fichiers *.tlk les entrées qu'il créé peut-être est-ce dû au fait que j'installe ma modification française sur une installation anglaise ? Mais c'est mineur.
Édit de Freddy : Pour marquer une discussion comme "résolue", utilise le bouton "Marquer comme résolu" à droite du bouton "Répondre", en haut de la page.
J'utilise 3 fichiers pour cette modification (en plus de l'exe de WeiDU et d'un fichier *.tp2 bien sûr) : moelle_pote.tph, DZM825.d et PST-Exp1.tra pour les textes. Mes codes pour chaque fichier :
Fichier moelle_pote.tph
Code : Tout sélectionner
// Création de l'objet : Chair à Zombi
COPY ~PST-Exp1/moelle_pote/copy/II181.BAM~ ~override~ // Icône d'inventaire de notre bout de chair
COPY_EXISTING ~SKINSCRP.ITM~ ~override/ZOMBFLSH.ITM~ // Clonage d'un objet existant du jeu pour créer notre nouvelle objet
SAY 0x0c @3 // Modification de son nom (Chair de zombi)
WRITE_ASCII 0x3a ~II181~ // Modification de son icône d'inventaire
SAY 0x54 @4 // Modification de sa description détaillée
BUT_ONLY_IF_IT_CHANGES
// Modification du dialogue du Zombi 825 pour permettre au joueur de prélever un bout de chair
COMPILE ~PST-Exp1/moelle_pote/dlg/DZM825.d~
// Modification des Variables globales du jeu à l'aide de la macro développée par Qwinn
// L'auteur des 3 modifications majeures pour PST
INCLUDE ~PST-Exp1/utils/Q_VARMacros.tph~
COPY_EXISTING ~VAR.VAR~ ~VAR.TMP~
SET Q_FileSize = %SOURCE_SIZE%
SPRINT "Q_NewVarType" ~GLOBAL ~
SPRINT "Q_NewVarName" ~825_Flesh_Taken~
SET "Q_NewVarValue" = 0
LAUNCH_PATCH_MACRO Q_VarVar_AddNewRecord
BUT_ONLY_IF_IT_CHANGES
COPY ~VAR.TMP~ ~VAR.VAR~
Code : Tout sélectionner
EXTEND_TOP DZM825 0 #5 // Pour faire apparaître en 5e position cette ligne de dialogue
IF ~Global("825_Flesh_Taken","GLOBAL",0)PartyHasItem("SCALPEL")~ THEN REPLY @5 GOTO 825-FleshTaken
END
APPEND DZM825
IF ~~ THEN BEGIN 825-FleshTaken
SAY @6
IF ~~ THEN REPLY #24572 DO ~SetGlobal("825_Flesh_Taken","GLOBAL",1)GiveItemCreate("ZOMBFLSH", Protagonist, 1, 0, 0)~ EXIT
END
END
Alors si un gourou un WeiDU passe par là, pourrait-il me dire là où mon code merde, parce que je sèche.
===============================================================================
RESOLU
===============================================================================
Je travaillais avec deux installations différentes de PST, la seconde étant la version anglaise, mise à jour mais non modifiée et c'est le PST-FixPack de Qwinn qui a modifié le fichier de dialogue (en le corrigeant) entre les deux versions.
Quant au fait que WeiDU ne supprime pas des fichiers *.tlk les entrées qu'il créé peut-être est-ce dû au fait que j'installe ma modification française sur une installation anglaise ? Mais c'est mineur.
Édit de Freddy : Pour marquer une discussion comme "résolue", utilise le bouton "Marquer comme résolu" à droite du bouton "Répondre", en haut de la page.