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  
-39%
Le deal à ne pas rater :
Ordinateur portable ASUS Chromebook Vibe CX34 Flip
399 € 649 €
Voir le deal

 

 Initier un Dialogue à une certaine distance avec StartDialogueNoSet() ?

Aller en bas 
AuteurMessage
Invité
Invité




Initier un Dialogue à une certaine distance avec StartDialogueNoSet() ? Empty
MessageSujet: Initier un Dialogue à une certaine distance avec StartDialogueNoSet() ?   Initier un Dialogue à une certaine distance avec StartDialogueNoSet() ? Icon_minitime1Ven 22 Aoû 2008 - 9:53

A la fin du TUTORIAL de Rimbaud dans le script de zone de SON mini MOD on a:

ActionOverride("#TBella",StartDialogueNoSet(Player1))
End

Ce qui fait que Bella Jansen vous parle dès que vous entrer dans la même Zone qu'elle, quelquesois la distance à laquelles on se trouve d'elle.

Bon en fait j'ai compris tout l'inverse de ce qu'il fallait en traduisant de l'anglais sur IESDP (normal ils parlent à l'envers les Anglais).
Plus net cet aprem et avec du Rock à fond dans les oreilles mon esprit c'est ouvert à la connaissance et de nouvelles conclusions se font jour:

Dans les scripts de zones:
StartDialogueNoSet(): Ne prend pas en compte la distance; le PNJ vous apostrophe dès votre entrée en zone.
StartDialogue(): Prend en comtpe une distance (peut-on la choisir ou est-elle réglée par défaut?) avant que le PNJ vous adresse la parole.

Dans les scripts de personnages:
Dialog(): Il faut "cliquer" sur le pnj pour se faire "discuter" par lui.

Donc si je remplace par:

ActionOverride("#TBella",StartDialogue(Player1))

MON PNJ va attendre que les PC se rapproche assez avant de leur parler c'est bien ça ?

PS:J'ai essayer mais ça n'a rien donner mais j'ai peut être pourri mon install donc je ne suis pas sur de mes tests...Q


Dernière édition par Rigel 1er le Lun 25 Aoû 2008 - 14:32, édité 1 fois
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

Initier un Dialogue à une certaine distance avec StartDialogueNoSet() ? Empty
MessageSujet: Re: Initier un Dialogue à une certaine distance avec StartDialogueNoSet() ?   Initier un Dialogue à une certaine distance avec StartDialogueNoSet() ? Icon_minitime1Ven 22 Aoû 2008 - 14:15

Rigel 1er a écrit:

Dans les scripts de zones:
StartDialogueNoSet(): Ne prend pas en compte la distance; le PNJ vous apostrophe dès votre entrée en zone.
StartDialogue(): Prend en comtpe une distance (peut-on la choisir ou est-elle réglée par défaut?) avant que le PNJ vous adresse la parole.

Première chose : toutes les actions et toutes les triggers sont utilisables invariablement dans tous les types de fichier de script que ce soit des scripts de zone, de personnages, de cutscene etc....

Concernant les actions, il faut distinguer l'action en elle-même (dans le cas présent il s'agit de déclencher un dialogue) des conditions dans lesquelles on peut utiliser ces actions.
Par exemple, pour StartDialogueNoSet(), on peut l'utiliser de base, sans poser de conditions particulières (triggers), pour déclencher un dialogue avec un personnage qui n'est pas dans le champ de vision du groupe. C'est son utilisation maximale. Mais ça ne veut pas dire qu'on ne peut pas l'utiliser dans d'autres situations : pour cela, il faudra poser des triggers spécifiques.

Par exemple si je met le bloc de script suivant dans le #TBella.baf :

IF
See([PC]) // si Bella voit Charname (PC = Player Character)
NumTimesTalkedTo(0) // si le nombre de fois où ils se sont parlés est égal à 0
THEN
RESPONSE #100
StartDialogueNoSet(Player1) // alors comencer le dialogue avec Charname
END

Ici, comme j'ai posé la condition/trigger See([PC]), le bloc ne se déclenchera que si Charname est dans le champ de vision de Bella.

Après, on peut imaginer des conditions de distance plus fines. Par exemple, avec la trigger Range(Objet,Distance), on peut poser une condition de déclenchement dans le cas où l'Objet passe près du personnage à une certaine distance.

Par exemple :

IF
Range(Player1,10) // si Player1 passe à une distance inférieure à 10 pieds de Bella
THEN
RESPONSE #100
StartDialogueNoSet(Player1) // alors déclenchement du dialogue.
END

A titre indicatif, le champ visuel correspond à un cercle de 30 pieds de rayon.
Voilà, donc ici, Bella commence le dialogue si Charname passe à moins de 10 pieds d'elle.
Et on utilise StartDialogueNoSet() sans problème puisque ce sont les triggers qui conditionnent le déclenchement du dialogue.
C'est ce qu'utilise Anomen pour déclencher son dialogue quand on le rencontre à la Couronne de Cuivre, il ne nous parle que si on passe près de lui.

Après il y a aussi le cas de Nalia qui combine un déplacement vers Charname puis un déclenchement du dialogue quand elle est suffisemment proche de lui. Mais c'est une autre histoire, je ne vais pas surcharger inutilement, je crois que mon pavé sera déjà bien assez gros ^^

Concernant StartDialogue(), je ne sais pas si il marche quand le PNJ est hors du champ de vision ou pas, manifestement non sinon ce serait précisé mais sa grosse différence avec StartDialogueNoSet(), c'est qu'il faut préciser le fichier dialogue associé au dialogue qu'on déclenche.
Un exemple concret de l'intérêt de StartDialogue() est celui que j'évoque dans mon tutorial pour déclencher un dialogue à partir de Charname.
Dans ce cas-là on utilisera l'action :
ActionOverride(Player1,StartDialogue("player1",Player1))
et non pas ActionOverride(Player1,StartDialogueNoSet(Player1)) qui manque de précision.

"player1" désigne le fichier dialogue de Player1 ce qui signifie qu'il reverra aux blocs contenus dans le .d qui possédera un BEGIN ~Player1~
Ceci permettra de faire parler Charname à lui-même et ne sera possible qu'avec StartDialogue(), StartDialogueNoSet() ne fonctionnera pas dans ce cas.

Rigel 1er a écrit:

Dans les scripts de personnages:
Dialog(): Il faut "cliquer" sur le pnj pour se faire "discuter" par lui.

Non, Dialog() déclenche également le dialogue entre le personnage qui fait l'action et le personnage cible placé entre les parenthèses de l'action.
Mais cette commande n'apporte rien de plus que StartDialogueNoSet(), à mon avis elle est à éviter.

En fait, pour faire un dialogue déclenché par le joueur en cliquant sur le PNJ avec le curseur dialogue, il n'y a justement pas besoin d'une Action qui déclenche le dialogue car dans cette situation, c'est le curseur qui a pour rôle de déclencheur de dialogue.
Le déclenchement des dialogues par action ne concerne que les dialogues scriptés, qui se déclenchent donc de façon automatique à un moment précis d'où la nécessité d'un script d'aileurs.
Pour les dialogues déclenchés par le joueur, le simple clic sera le déclencheur.
Après ce sont les triggers contenus dans les blocs du .d qui vont déterminer quel bloc sera déclenché à tel moment entraînant le dialogue entier.
C'est le principe du flirt pack par exemple, ces interactions avec un PNJ en cours de romance qui se déclenchent manuellement par le joueur.

Si tu veux que je te donne un exemple, pas de problème.
Revenir en haut Aller en bas
Invité
Invité




Initier un Dialogue à une certaine distance avec StartDialogueNoSet() ? Empty
MessageSujet: Re: Initier un Dialogue à une certaine distance avec StartDialogueNoSet() ?   Initier un Dialogue à une certaine distance avec StartDialogueNoSet() ? Icon_minitime1Ven 22 Aoû 2008 - 17:53

OK c'est déjà BCP plus clair !!!

En fait je me suis embrouillé en lisant\traduisant en même temps sur IESDP.

Au début j'ai bien compris qu'on pouvais régler une distance avec StartDialogueNoSET()
mais il aurais pu dire comment !!! Mettre une condition Trigger avec Range() ou See() OK.
Mais je trouvais pas la trigger Range(Objet,Distance) (enfin je l'ai VU mais j'ai pas penser que ça voulais dire la distance...), d'ailleurs je crois que j'avais essayer See([PC]) mais mon PNJ n'étais peut être pas assez loin pour voir la différence. En tous cas j'avais compris qu'il fallais sans doute poser une condition de distance avec une trigger mais je trouvais pas laquelle

MERCI BCP pour ton aide

PS: j'ai SUPPRIMMER MES EDIT car c'étais du grand n'importe quoi ! je vais reprendre tous ça calmement
Revenir en haut Aller en bas
Invité
Invité




Initier un Dialogue à une certaine distance avec StartDialogueNoSet() ? Empty
MessageSujet: Re: Initier un Dialogue à une certaine distance avec StartDialogueNoSet() ?   Initier un Dialogue à une certaine distance avec StartDialogueNoSet() ? Icon_minitime1Ven 22 Aoû 2008 - 23:43

Voilà où j'en suis: j'ai fait un Capitaine Amnien qui vous propose de vous recruter (il vous promet de l'argent facile) et de vous dédommagé de 50 pièces d'Or de frais de route. Si vous acceptez il vous rejoins pour vous amener loin dans sa garnison à l'est (d'où les frais de routes...et bien sur ça je l'ai pas fait ...).
Je vais chercher les Highlighters Weidu parce que là ça deviens plus possible ... Embarassed
Je crois que j'ai encore pourri mon install... cheers

2 bugs cependant;je pense, à cause de ce pourrissage !!
Le dialogue ne s'initie plus à distance (J'ai tester le code avant ça marchais bien)
et le Capitaine donne tout son Or au lieu de donner 200, quelle générositée cette IE engine ! cheers cheers cheers
Revenir en haut Aller en bas
Invité
Invité




Initier un Dialogue à une certaine distance avec StartDialogueNoSet() ? Empty
MessageSujet: Re: Initier un Dialogue à une certaine distance avec StartDialogueNoSet() ?   Initier un Dialogue à une certaine distance avec StartDialogueNoSet() ? Icon_minitime1Sam 23 Aoû 2008 - 8:17

En fait j'ai l'impression que mes bugs viennent de mes créatures, par exemple j'ai remplacé ma créature de capitaine par Bella Jansen et là la distance pour le dialogue est prise en compte mais elle donne tout son or "EDITce qui est normal vu qu'elle rejoins le groupe"...hihihi....
Je me fais des bugs imaginaires...LA névrose quoi !
Ce qui conforte cette analyse empirique --->>>
----->>> Faut mieux pas modifier les créatures et les réalisée totalement dès le premier Jet !
Revenir en haut Aller en bas
Contenu sponsorisé





Initier un Dialogue à une certaine distance avec StartDialogueNoSet() ? Empty
MessageSujet: Re: Initier un Dialogue à une certaine distance avec StartDialogueNoSet() ?   Initier un Dialogue à une certaine distance avec StartDialogueNoSet() ? Icon_minitime1

Revenir en haut Aller en bas
 
Initier un Dialogue à une certaine distance avec StartDialogueNoSet() ?
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Tuto NPC dialogue
» Aide sur dialogue
» Condition horaire/surprendre un dialogue
» Une CHAIN dans un dialogue [RESOLU]

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