Page 1 sur 1

[SCRIPT] Divers problèmes rencontrés en créant un script pour IWD avec DLTCEP

Posté : jeu. 06 mars 2014, 10:28
par Hjollder
Bonjour à tous,
Je me suis récemment mis a modifier Icewind Dale ; et les débuts sont plutôt bons.
Mais lorsque je fais des scripts avec DLTCEP il me les enregistre en les changeant.

Je vous donne un exemple je prends un script de jeu (Icewind Dale).
Extrait:

Code : Tout sélectionner

IF
  HaveSpell(WIZARD_MIRROR_IMAGE)
  See(Nearestenemyof(Myself))
THEN
  RESPONSE #100
    Spell(Myself,WIZARD_MIRROR_IMAGE)
    Wait(3)
END
le script marche très bien,
Ensuite je l'enregistre sous, et quand je le charge ensuite il devient (et ne marche plus):

Code : Tout sélectionner

IF
  HaveSpell(WIZARD_MIRROR_IMAGE)
  See([0])
THEN
  RESPONSE #100
    Spell(anything,WIZARD_MIRROR_IMAGE)
    Wait(3)
END
Est-ce que quelqu'un a déjà rencontré ce problème, pouvez vous m'aider :
car sans script je n'irai pas loin (notamment pour la magie).

Posté : jeu. 06 mars 2014, 19:27
par deratiseur
J"ai déjà eu ce problème avec DLTCEP. Le problème n'apparait pas avec Near infinity.

Posté : ven. 07 mars 2014, 09:43
par Hjollder
Merci, tu n'a donc pas trouvé la solution au problème ?
Apparemment, il faut Java pour utiliser Near infinity : c'est quoi Java ?

Posté : ven. 07 mars 2014, 18:51
par deratiseur
Pour changer un script avec DLTCEP, j'édite mon script au format baf avec notepad++ (ou context, comme tu veux), et je le reinstalle en relançant mon TP2.

Plus rapide avec Near Infinity. Java c'est le premier truc que tu as dans le moteur de recheche de Google : https://www.java.com/fr/

Posté : sam. 08 mars 2014, 00:44
par Freddy_Gwendo
Ce genre de choses m'était arrivé au tout début quand j'utilisais le script compiler du répertoire BG2 et que les fichiers ids qu'il contenait n'étaient pas à jour.
Une solution radicale pour les éviter : bien paramétrer DLTCEP en utilisant WeiDU comme compiler de scripts et de dialogues et en n'oubliant pas de patcher les fichiers ids pour qu'ils soient à jour.

Mais le mieux, c'est encore d'utiliser un tp2 temporaire pour compiler et tester ton script : tu n'auras plus de problème !

Posté : sam. 08 mars 2014, 17:54
par Hjollder
Merci pour toutes ces réponses, je vais essayer d’installer notepad++.
et je le reinstalle en relançant mon TP2.
Mais le mieux, c'est encore d'utiliser un tp2 temporaire pour compiler et tester ton script : tu n'auras plus de problème !
C'est quoi "TP2",c'est marrant, ça a l'aire simple quand vous le dites!

Posté : sam. 08 mars 2014, 19:40
par Freddy_Gwendo
Désolé, selon ton premier post, je pensais que tu connaissais le principe d'installation des mods. :$


Mais dans l'ordre, le paramétrage de DLTCEP. Dans l'onglet settings, tu définis plusieurs variables comme le répertoire de jeu de base (où DLTCEP ira chercher et écrire les fichiers), le type de jeu concerné et plein d'autres choses...
C'est ici qu'il faut lui dire quel type de compiler utiliser pour compiler-décompiler les scripts et les dialogues.

1. Tu ouvres l'onglet Settings et tu sélectionnes la commande Change settings :
DLTCEP_Settings1.png
Tu remarqueras deux choses :

a. Je modde dans un répertoire spécial (celui où se trouve le fichier chitin.key) pour ne pas modifier la version "normale" du jeu.
b. l'emplacement du fichier BG2Effects.dat (C:\Black Isle\DLTCEP\BG2Effects.dat) : pour être certain que tous les effets et consorts sont à jour, tu télécharges cette archive (disponible sur la page d'aide de DLTCEP) et tu la décompresses dans le répertoire dans lequel tu as installé DLTCEP.

2. Puis tu sélectionnes la commande Set WeiDU options :
DLTCEP_Settings1.png
C'est dans la ligne surlignée que tu indiques l'emplacement de WeiDU.exe.

Mais comme te l'a conseillé derat, tu peux aussi utiliser NI... ;)



Une fois ceci fait (tu n'oublies pas de sauvegarder tes modifs.), passons au tp2.
Pour installer un mod, tu as besoin de trois choses :
  1. Un répertoire (MonMod) dans lequel se trouvent les fichiers de ton mod (son contenu).
  2. Une copie de WeiDU pour l'installer que tu renommes setup-monmod.exe.
  3. Un fichier d'instructions (setup-monmod.tp2) qui ordonne à WeiDU (en fait setup-monmod.exe) d'installer ton mod.
C'est dans ce fichier tp2 que tu écriras par exemple COMPILE ~MonMod/Scripts/NomduScript1.baf~.
Ainsi NomduScript1 sera compilé (en bcs) et sauvegardé dans le répertoire override.

Armand a rédigé un tuto qui t'indique les bases pour écrire ce fichier tp2.


Quand je parle de fichier tp2 temporaire, je créée de la même manière une procédure d'installation fictive qui n'installe pas mon mod, mais seulement quelques éléments pour les tester.
Par exemple des objets ou des sorts pour vérifier qu'ils fonctionnent bien avant de lancer toute la procédure d'installation.
Je vérifie aussi le fonctionnement de mes scripts en n'utilisant que des commandes "COMPILE".


Tu peux écrire des fichiers tp2, baf, tra, d, etc dans Notepad++. Dans ce cas, je te conseille d'aller télécharger les "Highlighters" d'Argent77 dans la section Modding des Downloads de Spellhold : ils te permettront de colorer automatiquement les commandes, les actions, les triggers, etc, des fichiers tp2, baf et consorts.
C'est très pratique pour visualiser les blocs et vérifier que tu ne fais pas d'erreur (notamment de frappe). ;)

Posté : dim. 09 mars 2014, 09:20
par Hjollder
Merci , ça deviens un peu plus clair dans mon esprit...
En fait, jusque là je n'avait pas fait de mod j'enregistrait tout directement dans override.
Du coup maintenant je fait quoi ? je reprend tout ce que j'ai mis dans override pour le remettre dans mon mod, ou c'est pas la peine ?

Posté : dim. 09 mars 2014, 12:28
par Hjollder
j'ai préparé le mod, comme indiqué par armand mais quand je lance weidu, il m’annonce :
image.jpg
Pourquoi ?
mon dossier resemble a ça :
image.jpg

Posté : dim. 09 mars 2014, 14:29
par Freddy_Gwendo
C'est normal : WeiDU cherche le fichier Dialog.tlk qu'il ne trouve pas puisqu'il se trouve dans le répertoire principal de ton jeu.

Lorsque tu installes un mod, tu le désarchives dans le répertoire principal de ton jeu (par exemple C:\chemin\BG2).

Tu dois y retrouver :

1. Le répertoire MonMod ("Mod culte" dans ton cas).
2. Le fichier setup-MonMod.exe.
3. Éventuellement le fichier setup-MonMod.tp2. Mais l'installation fonctionne aussi si ce dernier se trouve dans le répertoire MonMod.


Lorsque tu modes, l'idéal est de créer un clone du jeu dans lequel tu vas travailler et le tester. C'est ce qu'on appelle une multi-installation.
Isaya a rédigé un petit fichier batch qui te permet d'en créer un très rapidement dans un guide très détaillé. Je ne sais pas s'il fonctionne aussi avec IWD. Je pense qu'Isaya ou Luren pourraient mieux te répondre que moi.

Sinon, il faut que tu transfères ton répertoire Mod culte et les fichiers setup-Mod culte dans le répertoire du jeu (celui où se trouvent les fichiers dialog.tlk et chitin.key) en respectant l'arborescence que j'ai indiquée plus haut.

Posté : dim. 09 mars 2014, 19:16
par Isaya
Freddy_Gwendo a écrit :Isaya a rédigé un petit fichier batch qui te permet d'en créer un très rapidement dans un guide très détaillé. Je ne sais pas s'il fonctionne aussi avec IWD.
Le script n'est pas du tout compatible avec Icewind Dale. Les noms de fichiers et de répertoires à copier et modifier ne sont pas les mêmes que dans BG II.

La procédure manuelle décrite est très facile à transposer à Icewind Dale. En gros, il suffit de :
  • créer un nouveau répertoire pour héberger le jeu, par exemple, C:\Icewind Dale - Mod
  • copier tout le contenu du répertoire d'installation d'Icewind Dale dans ce nouveau répertoire, à l'exception des répertoires CD2 et CD3 (pour l'extension Heart of Winter)
  • modifier, dans le nouveau répertoire, le fichier icewind.ini et changer simplement la ligne HD0:= pour indiquer le nouveau répertoire, donc dans mon exemple HD0:=C:\Icewind Dale - Mod
Pour lancer le jeu dans ce nouveau répertoire, il suffit de doubler-cliquer sur IDMain.exe (et surtout pas sur le raccourci créé par l'installation d'Icewind Dale).

Posté : dim. 09 mars 2014, 20:56
par Freddy_Gwendo
Merci pour ta précision.

Dans mon esprit, il n'était pas du tout prévu d'utiliser ton script pour IWD, mais de l'adapter en modifiant les noms des fichiers et des répertoires, ainsi que les lignes nécessaires à l'ini. ;)

Mais il semble en effet beaucoup plus simple d'effectuer une copie du répertoire. ^^

Posté : lun. 10 mars 2014, 10:32
par Hjollder
OK, donc avec ça j'ai une copie du jeu...
Mais pour convertir mon script avec le tp2 ; j'ai juste a marquer COMPILE ~mod culte/Scripts/NomduScript1.baf~ dedans et d'enregistrer ?
Je récapitule :

1. je fais mon script en baf avec notepad++
2. je le mets dans la partie "scripts" de la copie du jeu.
3. je marque COMPILE ~mod culte/Scripts/NomduScript1.baf~ dans le tp2
= magie : il apparaît en bcs dans override ?


Y'a rien d'autre à indiquer dans le tp2 ou à weidu ?
parce que j'ai essayé, ça marche pas.
Si c'est pas ça : prévenez moi...

Ps: j'ai peut-être été pas été très clair dans mes explications !

Posté : lun. 10 mars 2014, 22:05
par Isaya
Un fichier tp2 doit toujours commencer, avant la moindre instruction du type COMPILE ou autre instruction ayant trait à la création/modification de fichier, par les lignes suivantes :

Code : Tout sélectionner

BACKUP ~[color="#FF0000"]répertoire du mod[/color]/backup~
AUTHOR ~[color="#FF0000"]Ton pseudo / adresse mail / site web de contact[/color]~

VERSION ~numéro de version du mod~ // Optionnel

BEGIN ~[color="#FF0000"]Nom du mod ou du composant de mod[/color]~
Après tu peux mettre les opérations d'installation du mod ou du composant du mod.

Remplace évidemment ce que j'ai surligné en rouge par ce qui est pertinent pour ton mod, tout particulièrement "répertoire du mod". La présence d'un sous-répertoire "backup" dans le répertoire propre à ton mod est indispensable car c'est là que WeiDU créé le nécessaire pour la désinstallation.

On trouve souvent davantage d'instructions au début d'un fichier tp2, avant le premier BEGIN, ce que tu constateras si tu ouvres celui d'un mod quelconque, notamment des choses ayant trait au choix de langue d'installation ou encore des options particulières telles que l'affichage d'un readme au début de l'installation. Disons que tu as là le strict minimum.

Posté : lun. 10 mars 2014, 23:04
par Freddy_Gwendo
En suivant les instructions d'Isaya, tu devrais y arriver.

Sinon :
Hjollder a écrit : Je récapitule :

1. je fais mon script en baf avec notepad++
2. je le mets dans la partie "scripts" de la copie du jeu.
3. je marque COMPILE ~mod culte/Scripts/NomduScript1.baf~ dans le tp2
= magie : il apparaît en bcs dans override ?


Y'a rien d'autre à indiquer dans le tp2 ou à weidu ?
parce que j'ai essayé, ça marche pas.
Si c'est pas ça : prévenez moi...

Ps: j'ai peut-être été pas été très clair dans mes explications !

J'espère que tu ne confonds pas le répertoire "scripts" présent dans BGII -SoA (je ne me rappelle plus s'il existe dans IWD) avec le sous-répertoire "scripts" de ton répertoire "MonMod".
Les fichiers .baf de ton mod doivent impérativement se trouver dans le répertoire de ton mod !
Généralement (ce n'est pas une obligation, mais c'est plus pratique pour s'y retrouver), les moddeurs placent leurs différents fichiers dans des sous-répertoire dédiés (objets ou items, creatures ou cre, portraits, scripts ou baf, etc....).

Ainsi la commande du tp2 COMPILE ~mod culte/Scripts/NomduScript1.baf~ ordonne à WeiDU de compiler et d'écrire dans l'override le fichier NomduScript1.baf présent dans le sous-répertoire Scripts du répertoire mod culte.
Si tu as placé NomduScript1.baf dans le répertoire Scripts du jeu, WeiDU ne le trouvera pas avec la commande précédente.


Si tu rencontres d'autres problèmes de compilation, le plus simple est de poster ton tp2 et le ou les scripts concerné(s) en pièces jointes de ton message. Ce sera plus simple de t'aider à trouver une solution. ;)

Posté : lun. 10 mars 2014, 23:22
par Isaya
Autre point très important, auquel je pense en lisant la réponse de Freddy_Gwendo, où il répète plusieurs fois le nom de ton fichier. Comme la quasi-totalité des fichiers dans un jeu Infinity Engine, les scripts doivent impérativement avoir un nom comportant au maximum 8 caractères.
Comme l'instruction COMPILE va donner au fichier résultant le même nom racine que celui du fichier .baf, "NomduScript1" n'est pas un nom valide, et le jeu ne reconnaîtra au mieux que les 8 premiers caractères.
Et bien entendu, tu as intérêt à t'assurer que le nom n'existe pas déjà, sinon tu vas écraser un fichier peut-être important du jeu.

Par ailleurs, si tu écris des scripts que tu veux utiliser pour les personnages de ton équipe, il ne suffira pas de réussir à les compiler pour y avoir accès dans le jeu.

Posté : lun. 10 mars 2014, 23:39
par Freddy_Gwendo
Autant pour moi !
Heureusement que tu veilles, Isaya. ;)

J'ai utilisé la dénomination "NomduScript1" à titre d'exemple général en oubliant de préciser à Hjollder qu'il devait le remplacer par un nom composé au plus de 8 caractères.


Dernière chose : après avoir lancé ton setup.exe tu devrais trouver dans le répertoire de ta copie du jeu un fichier nommé SETUP-MonMod.DEBUG (toujours avec MonMod = le nom de ton mod) que l'on peut lire avec n'importe quel éditeur de texte.

Il contient la liste des opérations faites par WeiDU lorsque tu as lancé ton setup.exe et notamment les éventuelles erreurs si l'installation a échoué.
En cas de problème, consulte-le et poste-le si nécessaire.

Posté : mer. 12 mars 2014, 11:09
par Hjollder
Maintenant le tp2 a l'air de marcher ;
il ressemble à ça :
BACKUP ~ C:\Program Files\Black Isle\mod culte/backup~
AUTHOR ~Hjollder / vincent.mougel.73@gmail.com / couronne de cuivre~
VERSION ~1.1~
BEGIN ~mod culte~
COMPILE ~mod culte/Scripts/0TESTSCR.baf~
Je précise que 0TESTSCR.baf et bien enregistré dans le répertoire "scripts" de mon mod.
je lance setup-mod culte.exe, il me demande si je veux instaler le mod :
Le fichier joint install.jpg n’est plus disponible.
puis il m'afiche toute une série de messages d'erreur et revient sur Install conponement [mod culte]?

comme vous me l'avez demandé voici le message d'erreur :
WeiDU v 23100 Log

C:\Program Files\Black Isle\Icewind Dale\setup-mod culte.exe
[./CHITIN.KEY] loaded, 272638 bytes
[./CHITIN.KEY] 228 BIFFs, 19013 resources
[dialog.tlk] loaded, 3486195 bytes
[dialog.tlk] 34595 string entries
[./Copie de icewind.ini] loaded, 1804 bytes
Possible HD/CD Path: [C:\Program Files\Black Isle\Icewind Dale\]
Possible HD/CD Path: [E:\French\]
Possible HD/CD Path: [E:\French\CD2\]
Possible HD/CD Path: [E:\CD2\]
Possible HD/CD Path: [C:\Program Files\Black Isle\Icewind Dale\CD3\]
[./icewind.ini] loaded, 1584 bytes
Possible HD/CD Path: [C:\Program Files\Black Isle\Icewind Dale\]
Possible HD/CD Path: [E:\French\]
Possible HD/CD Path: [E:\French\CD2\]
Possible HD/CD Path: [E:\CD2\]
Possible HD/CD Path: [E:\CD3\]
[./Keymap.ini] loaded, 7605 bytes
[./Language.ini] loaded, 27803 bytes
[dialogf.tlk] loaded, 3486861 bytes
[dialogf.tlk] 34594 string entries
*** dialogf.tlk has 1 too few entries, padding.
[C:\Program Files\Black Isle\Icewind Dale\setup-mod culte.exe] Using scripting style "IWD1"
[dialog.tlk] claims to be writeable.
[dialog.tlk] claims to be a regular file.
WARNING: parsing log [WeiDU.log]: Sys_error("WeiDU.log: No such file or directory")

Install Component [mod culte]?
nstall, or [N]ot Install or [Q]uit? Problem Unix.Unix_error(12, "mkdir", " C:") on C:: util.ml
Problem Unix.Unix_error(12, "mkdir", " C:/Program Files") on C:/Program Files: util.ml
Problem Unix.Unix_error(12, "mkdir", " C:/Program Files/Black Isle") on C:/Program Files/Black Isle: util.ml
Problem Unix.Unix_error(12, "mkdir", " C:/Program Files/Black Isle/mod culte") on C:/Program Files/Black Isle/mod culte: util.ml
Problem Unix.Unix_error(12, "mkdir", " C:/Program Files/Black Isle/mod culte/backup") on C:/Program Files/Black Isle/mod culte/backup: util.ml
Problem Unix.Unix_error(12, "mkdir", " C:/Program Files/Black Isle/mod culte/backup/0") on C:/Program Files/Black Isle/mod culte/backup/0: util.ml
WARNING: unable to open [ C:\Program Files\Black Isle\mod culte/backup/0/UNINSTALL.0]: Sys_error(" C:\\Program Files\\Black Isle\\mod culte/backup/0/UNINSTALL.0: Invalid argument")
Will be unable to UNINSTALL later.
ERROR: Sys_error(" C:\\Program Files\\Black Isle\\mod culte/backup/0/ARGS.0: Invalid argument")
PLEASE email the file SETUP-MOD CULTE.DEBUG to Hjollder / vincent.mougel.73@gmail.com / couronne de cuivre

Install Component [mod culte]?
nstall, or [N]ot Install or [Q]uit? Saving This Log:
[dialogf.tlk] created, 34595 string entries

WeiDU Timings
load TLK 0.000
Parsing TP2 files 0.080
unmarshal KEY 0.140
marshal and save TLK 0.211
loading files 0.240
unmarshal TLK 0.701
stuff not covered elsewhere 6.299
TOTAL 7.671

Posté : mer. 12 mars 2014, 22:38
par Isaya
Dans la partie BACKUP, on n'indique jamais un chemin complet, juste un chemin relatif au mod !!! Tous les joueurs n'ont pas le jeu au même emplacement, un auteur de mod ne peut pas se permettre d'imposer ainsi un emplacement en dur.

En plus tu as indiqué un emplacement faux : ton jeu est dans C:\Program Files\Black Isle\Icewind Dale, et donc ton mod est forcément là-dedans, soit C:\Program Files\Black Isle\Icewind Dale\mod culte et le répertoire backup est forcément à l'intérieur.

Il faut que tu indiques :

Code : Tout sélectionner

BACKUP ~mod culte\backup~
Et ensuite vient la question bête : tu as créé ce répertoire backup dans ton répertoire mod culte ? Autrement WeiDU va continuer de se plaindre.

Posté : jeu. 13 mars 2014, 10:48
par Hjollder
Merci a tous pour vos réponses, ça marche enfin !
J'ai rectifié "BACKUP..."
Et ensuite vient la question bête : tu as créé ce répertoire backup dans ton répertoire mod culte ? Autrement WeiDU va continuer de se plaindre.
du coup c'était bon.

Je vais enfin pouvoir m'amuser...

Posté : ven. 14 mars 2014, 11:27
par Hjollder
Juste un petit truc : si je veut créer un sujet pour parler de mon mod je le met où ?