[WeiDU] Erreurs pendant la compilation d'un dialogue

Répondre
BODHI
Statut : Hors ligne

[WeiDU] Erreurs pendant la compilation d'un dialogue

Message par BODHI »

J'ai créé une créature à l'aide de CRE maker (et grâce au tutoriel de Forgotten Wars), mais lorsque je lance le jeu tout marche sauf que j'ai un message :

"Jondalar [c'est le nom de ma créature!] n'a rien à dire "
J'ai crée un fichier jondalar.d qui est le suivant :

Code : Tout sélectionner

BEGIN ~JONDALAR~

IF ~~ THEN BEGIN JON0
SAY ~Salutations ! Voulez-vous voir mes marchandises ?~
IF ~~ THEN REPLY ~Oui je le veux.~ EXIT
IF ~~ THEN REPLY ~Non, pas maintenant.~ EXIT
END
(comme vous le constater à terme je veux que ce soit un vendeur,!)
lorsque je compile le dialogue avec Weidu je n'ai pas de messages d'erreurs ....
Sinon en ce qui concerne le fichier .cre j'ai mis :
aucun scripts (none)
une variable de mort (jondalar)
un fichier de dialogue (JONDALAR)
un comportement ("Enemy-Ally") (128 NEUTRAL)


La créature fonctionne normalement dans le jeu (si je la tue -> -4 en réputation !)
Pourriez-vous m'aider ?

P.S: j'ai remarqué qu'en changeant le dialogue en AERIE j'ai le dialogue d'Aerie ....J'imagine que mon erreur vient du fichier .d , non ?
Angelus Crow
Statut : Hors ligne

Message par Angelus Crow »

Originally posted by BODHI@mercredi 26 janvier 2005, 20h21
BEGIN ~JONDALAR~

IF ~~ THEN BEGIN JON0
SAY ~Salutations ! Voulez-vous voir mes marchandises ?~
IF ~~ THEN REPLY ~Oui je le veux.~ EXIT
IF ~~ THEN REPLY ~Non, pas maintenant.~ EXIT
END
Et en mettant une condition après ton premier IF ?

par exemple :
IF ~True()~ THEN BEGIN...
SAY ~...~

Je tiens à préciser que je ne suis pas certain que ça résoudra ton problème, mais ça coûte rien d'essayer ^^ .

En effet, si avec un autre fichier dialog ça marche, l'erreur vient du tien. Reste à trouver où.
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 »

Le fait qu'il n'y ait pas eu de message d'erreur ne signifie pas que ton dialogue va marcher comme tu l'entends.
Comme l'indique Angelus Crow, l'absence d'une condition dans le premier IF pourrait fort bien être la cause. Le message que tu as indique que le jeu n'a pas trouvé de condition vérifiée dans le fichier dialogue.
Mettre un "True()" comme condition assurerait que la condition est vérifiée dans tous les cas et que ce dialogue apparaîtrait. Si tu veux que ce dialogue soit utilisé à chaque fois, utilise-ça. Si tu envisages d'avoir d'autres échanges en fonction de certaines conditions (possession d'un objet, avoir parlé à quelqu'un, ...), mets les en premier (avec les conditions appropriées) et mets en dernier l'échange avec la condition True(). Sinon tu ne verras jamais les autres ayant des conditions plus restrictives.
:!: 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 !
BODHI
Statut : Hors ligne

Message par BODHI »

Merci bien . C'était bien cela.
Je croyais à tort que :

IF ~~

signifiait que la condition était toujours vérifiée . Merc pour les conseils .
Angelus Crow
Statut : Hors ligne

Message par Angelus Crow »

En fait, le

Code : Tout sélectionner

[b]IF ~~ THEN BEGIN ...[/b]
fonctionne uniquement si ton bloc est appelé par un autre bloc suite à GOTO par exemple.

Ainsi dans ton dialoque ça donnerait quelque chose comme :

Code : Tout sélectionner

IF ~True()~ THEN BEGIN JON0
SAY ~Salutations ! Voulez-vous voir mes marchandises ?~
IF ~~ THEN REPLY ~Oui je le veux.~ GOTO JON1
IF ~~ THEN REPLY ~Non, pas maintenant.~ EXIT
END

IF ~~ THEN BEGIN JON1
SAY ~Parfait, qu'est-ce qui vous intéresse ?~
IF ~~ THEN EXIT
END
Ici, le 1° bloc appelle le 2° et donc inutile de préciser une condition pour celui-ci sauf si, évidemment, tu en désires une.

Tant que j'y suis, inutile de préciser "Crow" tant qu'il n'y a qu'un Angelus sur ce forum ^^ .
BODHI
Statut : Hors ligne

Message par BODHI »

Merci pour toutes ces précisions.
Cependant j'ai encore un problème :

J'obtiens le message suivant lors de l'installation du mod :
PARSE ERROR line 2 Column 8-8
Failure("lexing:empty token")


voici mon fichier StoArea.baf :

Code : Tout sélectionner

IF
 Global(“JondalarExists”,”AR0300”,0)
THEN
 RESPONSE #100
   SetGlobal(“JondalarExists”,”AR0300”,1)
   CreateCreature(“jondalar),[2859.1262],5)
END
la ligne 2 colonne 8-8 correspond à la variable Jondalarexists


Je tiens à préciser que je n'ai fait que suivre le tutoriel de création de magasin de la Couronne de Cuivre ...
Angelus Crow
Statut : Hors ligne

Message par Angelus Crow »

Originally posted by BODHI@mardi 01 février 2005, 21h03
J'obtiens le message suivant lors de l'installation du mod :

PARSE ERROR* line 2 Column 8-8
Failure("lexing:empty token")

voici mon fichier StoArea.baf :

Code : Tout sélectionner

IF
 Global(“JondalarExists”,”AR0300”,0)
THEN
 RESPONSE #100
*  SetGlobal(“JondalarExists”,”AR0300”,1)
*  CreateCreature(“jondalar[color="#00FF00"]"[/color],[2859.1262],5)
END
A part l'absence du " sur la ligne CreateCreature, je ne vois rien... Et la zone 0300 a un script, donc tu peux y rajouter le tien...

Plus qu'à attendre les maîtres en editing.

Sinon une question peut-être idiote, mais tu es sur que l'erreur ligne 2 colonne 8 provient bien de ton *.baf?
BODHI
Statut : Hors ligne

Message par BODHI »

j'ai rajouté le guillemet en question mais ça ne change rien.
Etant donné que je copie 2 fichiers (jondalar.sto et jondalar.cre) que je compile un dialogue et que je rajoute le magasin et que j'ai le message suivant :

Copying 1 file ...
Copying 1 file ...
Compiling 1 dialog file ...
Extending game scripts ...

[MYSTORE/StoArea.baf] Error at line 2 column 8-8

Il me semble que c'est bien celui-là
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 »

Sur la ligne 2, tu as le test Global(...) qui commence par un drole de guillement avant JondalarExist : ça ressemble à un guillement ouvrant en français (incliné vers la droite) au lieu d'être identique à celui qui ferme, comme c'est le cas pour les deux qui entourent AR0300. Tu as le même défaut sur les autres guillemets de début sur les lignes suivantes.
Je ne sais pas avec quel éditeur tu tapes tes scripts, mais ça ressemble à une modification automatique faite par un traitement de textes comme Word. Ce genre de caractère n'existe pas directement depuis le clavier, c'est ce qui me fait penser à un traitement de textes.
Si tu utilises un traitement, je te conseille plutôt d'employer un bon éditeur de textes. Il n'en manque pas de gratuits : en particulier ConText ou PSPad.

Par ailleurs, pour ton dialogue d'il y a quelques jours, je pense qu'il te manque un truc important : à aucun moment tu ne déclenches l'ouverture du magasin. Un peu dommage pour un marchand, non ? ;) Tu devrais donc ajouter une action StartStore(...) quand on répond qu'on veut voir les marchandises (dans le deuxième bloc). Vérifie le didacticiel pour plus d'infos.
:!: 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 !
BODHI
Statut : Hors ligne

Message par BODHI »

Oui en effet c'était les guillemets ouvrant .
En fait je n'ai rien tapé puisque j'ai simplement fait COPIER COLLER à partir du tutorial ... Sinon j'utilise le Bloc-notes .

A propos il faudrait mettre un message dans la rubrique en question ,non ?

Sinon pour ce qui est du dialogue j'ai voulu décomposer les difficultés et j'ai donc fait exprès de ne pas mette le StartStore .
J'ai essayé avec le StartStore (à partir du fichier du tutorial ...) mais ça ne marche pas

Voici mon fichier jondalar.d

Code : Tout sélectionner

BEGIN ~jondalar~

IF ~true()~ THEN BEGIN StoreInfo  // Oui, il y a bien deux tildes (~) à la suite
SAY ~Salutations ! Voulez-vous voir mes marchandises ?~
IF ~~ THEN REPLY ~Oui je le veux.~ DO ~StartStore("jondalar", LastTalkedBy())~ EXIT
IF ~~ THEN REPLY ~Non, pas maintenant.~ EXIT
END
Le message d'erreur est le suivant , une fois que je clique sur "Oui je le veux":

Action Errors : - Special Case : LastTalkedBy not found . Check for proper Brackets
Line 1

Ensuite il y a le texte "oui je le veux"
puis en rouge : "les familiers ne peuvent pénétrer dans les échoppes"


Bref on dirait que c'est un problème de parenthèses ("Brackets") , non ?
Angelus Crow
Statut : Hors ligne

Message par Angelus Crow »

Je viens de regarder le *.dlg de Ribald à la Couronne de Cuivre et voilà comment commence sa commande pour l'ouverture du magasin :
StartStore("ribald",LastTalkedToBy(Myself))
En rajoutant un Myself dans les parenthèses ?
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 »

Tu as aussi oublié To dans LastTalkedToBy. Si ma mémoire est bonne, MySelf sera considéré par défaut si tu ne le mets pas, mais autant l'indiquer comme le dit Angelus.

Le nom "Jondalar" indiqué dans StartStore est celui du fichier .STO. Pense à vérifier qu'il s'agit bien du bon nom.
:!: 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 !
BODHI
Statut : Hors ligne

Message par BODHI »

Oui, en effet, vous aviez raison , il manquait le "TO" et les guillemets!
Merci à Angelus d'avoir mis un message sur le tutorial en question .
Répondre

Retourner vers « Dialogues »

Qui est en ligne

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