LEGENDES
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.


Vers l'Infinity et Baldur's Gate
 
AccueilAccueil  PortailPortail  Dernières imagesDernières images  RechercherRechercher  S'enregistrerS'enregistrer  ConnexionConnexion  
-29%
Le deal à ne pas rater :
PC portable – MEDION 15,6″ FHD Intel i7 – 16 Go / 512Go (CDAV : ...
499.99 € 699.99 €
Voir le deal

 

 Problème de PNJ

Aller en bas 
3 participants
AuteurMessage
touku911
La tête dans le gravier



Nombre de messages : 2
Date d'inscription : 22/08/2009

Problème de PNJ Empty
MessageSujet: Problème de PNJ   Problème de PNJ Icon_minitime1Lun 24 Aoû 2009 - 22:44

Bien le bonjour,

Pour commencer, je tenais a remercier les auteurs des tutoriels sur le forum. Ils sont bien présentés, clair et précis. En me basant sur le tutoriel de Cool Coyote sur la création d'un pnj, je me retrouve avec un léger problème. Mon PNJ me donne les bonnes répliques, ce joint au groupe, mais après il n'est plus supposé parler mais il réplique en boucle en me disant une phrase qui ne figure pas dans le fichier .tra...
(la phrase en question: Mais pourquoi persistez-vous à me faire perdre mon temps)

D'où cela peut-il venir? J'ai pourtant vérifié, re-vérifié, recommencer bêtement à zéro pour toujours avoir le même problème...


Mon fichier TAr0602.baf :

IF
Global("#TMaiwenExists","AR0602",0)
THEN
RESPONSE #100
SetGlobal("#TMaiwenIrenicus","GLOBAL",1)
SetGlobal("#TMaiwenExists","AR0602",1)
CreateCreature("#TMaiwen",[3374.3066],9)
END

IF
Global("#TMaiwenIrenicus","GLOBAL",1)
THEN
RESPONSE #100
SetGlobal("#TMaiwenIrenicus","GLOBAL",2)
END


Mon fichier #TMaiwen.baf:

IF
Range(Player1,10)
THEN
RESPONSE #100
Dialogue(Nearest([PC]))
END
Revenir en haut Aller en bas
Pépé Malin
Pépé Pizza
Pépé Pizza
Pépé Malin


Nombre de messages : 333
Age : 36
Date d'inscription : 29/05/2008

Problème de PNJ Empty
MessageSujet: Re: Problème de PNJ   Problème de PNJ Icon_minitime1Mar 25 Aoû 2009 - 0:28

Bonjour à toi, Touku911 et bienvenue. Wink

Avec un pseudo pareil, je tiens à te dire que je t'ai longtemps soupçonné d'être un bot chinois ! Mais étant donné la qualité de ta prose et que tu ne te mets pas à dégoiser des adresses de site de boule sur tout le forum, j'en déduis que tu n'en es pas un. C'est une bonne nouvelle aussi bien pour toi que pour nous. Smile Pour toi, car tu es donc le bienvenu ici, pour nous car ça signifie que ce forum est encore suffisamment profond dans le tube digestif (restons polis) du web pour que les bots chinois ne nous aient pas encore trouvés.

Bienvenue donc. ^^

Si tu ne t'es pas encore enfui en courant à ce stade du message, c'est bien. Cela signifie que tu as passé le premier test avec succès. (Attention, il y en aura d'autres, mais ce n'est pas l'endroit ni le moment d'en parler.)

Revenons-en à ton problème.

Alors, je vois deux défauts dans tes scripts, et la bonne nouvelle, c'est que l'un d'entre eux expliquera certainement l'origine de ton problème. Wink

Code:
Fichier TAr0602.baf :

IF
Global("#TMaiwenIrenicus","GLOBAL",1)
THEN
RESPONSE #100
SetGlobal("#TMaiwenIrenicus","GLOBAL",2)
END

Ce bloc ne sert pas à grand chose, pour ne pas dire à rien. En fait il est même préférable de le supprimer, car ça complique pour pas grand chose. Smile
L'intérêt d'augmenter la valeur d'une variable doit s'expliquer par le fait qu'on fait quelque chose d'autre en parallèle.
On pose une variable à un endroit (par exemple SetGlobal("#TMaiwenIrenicus","GLOBAL",1) dans ton premier bloc de script) et cette variable est retrouvée comme condition d'un autre bloc de script qui se déclenche après le premier bloc et fera apparaitre Coco le perroquet à côté de ton premier personnage.

IF
Global("#TMaiwenIrenicus","GLOBAL",1)
THEN
RESPONSE #100
CreateCreature("#TCoco",[3350.3010],9)
SetGlobal("#TMaiwenIrenicus","GLOBAL",2)
END

Et on passe la variable à 2 tout simplement pour que le bloc ne tourne pas en boucle. Dans ce cas là, augmenter la variable aura une utilité : que le bloc de script se déclenche une seule et unique fois.
Ceci est un exemple théorique, bien entendu. Wink Mais c'est juste pour t'expliquer que faire un bloc de script simplement pour augmenter une variable et rien d'autre n'est pas utile.

Passons au coeur du problème :

Code:
Fichier #TMaiwen.baf:

IF
Range(Player1,10)
THEN
RESPONSE #100
Dialogue(Nearest([PC]))
END

Ce bloc possède un gros défaut : il tourne en boucle. Pourquoi ? Eh bien tout simplement parce que la seule condition à remplir dans ce bloc c'est que Player 1 soit à une distance inférieure à 10. Autrement dit, tant (et dès) que Player 1 se trouvera à moins de 10 "mètres" de Maiwen, celui-ci essaiera de lui parler.
C'est pour cela que Maiwen parle à Charname une première fois, et là se déclenche le dialogue de recrutement. Puis, dès qu'il est dans le groupe, Maiwen enchainera en boucle ce bloc de script et tentera de parler à Charname. La ligne d'origine inconnue que Maiwen répète en boucle est suspecte en effet. Normalement, il devrait essayer de parler mais ne rien dire. Aurais-tu installé d'autres mods ? Est-ce que l'install de BG2 sur laquelle tu as fait tes tests est clean ?
Cela dit, ce problème de ligne en trop est secondaire, le plus prompt moyen de régler ton problème est le suivant : ajouter une variable à ton script :

IF
Global("#TMaiwenDial","GLOBAL",0)
Range(Player1,10)
THEN
RESPONSE #100
SetGlobal("#TMaiwenDial","GLOBAL",1)
Dialogue(Nearest([PC]))
END

La variable passe de 0 à 1, le script ne se lancera qu'une fois.

Pour finir, je pense qu'il serait intéressant que tu postes le contenu de #TMaiwen.d afin de finaliser tout à fait la concordance entre les variables pour que tout s'articule bien.

J'espère avoir répondu à ton problème de façon compréhensible.
Revenir en haut Aller en bas
touku911
La tête dans le gravier



Nombre de messages : 2
Date d'inscription : 22/08/2009

Problème de PNJ Empty
MessageSujet: Re: Problème de PNJ   Problème de PNJ Icon_minitime1Mar 25 Aoû 2009 - 17:03

Effectivement, tu avais raison. J'ai modifié les bouts de code que tu m'as donnés et il fonctionne correctement... J'ai compris mon erreur et je te remercie beaucoup pour ton aide, mais par contre, j'ignore pourquoi mon PNJ me donnait une réplique sortie de nul part et j'aurais bien aimé la comprendre celle-là.

Au plaisir et merci encore pour ton aide rapide Smile
Revenir en haut Aller en bas
Zranoff
Prétendant Cargoliste
Zranoff


Nombre de messages : 147
Age : 32
Localisation : Arles
Date d'inscription : 14/02/2009

Problème de PNJ Empty
MessageSujet: Re: Problème de PNJ   Problème de PNJ Icon_minitime1Mar 25 Aoû 2009 - 17:43

De ce côté-là, j'ai ma petite idée,
ce bug étant déjà apparu pour moi, avec un pnj quelconque, mais un problème différent.
Je n'ai pas pu en trouver la source mais maintenant, en recoupant les évènements,
je dirais que la phrase "Mais pourquoi persistez-vous à me faire perdre mon temps" est une astuce des créateurs du jeu. En effet, ces derniers ont dû penser que même s'ils créaient chaque pnj avec soin, il pourrait arriver un moment pendant lequel le pnj en question arriverait à cours de phrases à donner en pature à charname devant l'insasiable curiosité du joueur.
Mon hypothèse est que dans cette situation, leur parade a été de donner une phrase qui signifie "j'ai plus rien à dire dégage sal..... de c.. de charname de m...." commune à tous ces braves pnj qui n'ont rien fait pour que charname les torture ainsi à la parlote.
Ceci reste une pure spéculation (après tout, je suis assez spéculateur^^ à mes moments)
Donc si quelqu'un pouvait, pour le fun ou quoi, répondre à cette question intéressante, ça serait une curiosité assouvie en plus pour les légendaires curieux!

EDIT: au passage, désolé pour le pavé. Ca s'arrange pas avec le temps, dirait-on.
Revenir en haut Aller en bas
Contenu sponsorisé





Problème de PNJ Empty
MessageSujet: Re: Problème de PNJ   Problème de PNJ Icon_minitime1

Revenir en haut Aller en bas
 
Problème de PNJ
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
LEGENDES :: LE MONDE DU MODDING :: Maîtrise :: Apprentissage-
Sauter vers:  
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser