Page 1 sur 1

[DLG] Comment ajouter des interjections d'un nouveau PNJ dans un dialogue existant ?

Posté : mar. 21 oct. 2003, 22:37
par Grenouillebleue
Je souhaiterais que Kim ait de nombreux commentaires insérées dans un certain nombre de discussions ou quêtes. Malheureusement, l'examen des fichiers correspondants de Chloe m'a donné le tournis.

Est-ce que quelqu'un pourrait m'expliquer clairement, avec des mots basiques, comment utiliser les EXTEND_BOTTOM et autres INTERJECT, ou bien me diriger vers un tutorial plus complet que celui de teambg ?

Pour prendre un exemple CONCRET (qui évidemment ne sera pas dans le mod), supposons que je veuille que, lorsqu'on rencontre le tanneur dans le quartier du pont, Kim rajoute au milieu de la discussion un commentaire comme quoi "Ça sent mauvais, par ici".

Quelles sont les étapes à faire pour rajouter ça ?

Posté : mer. 22 oct. 2003, 19:17
par Lamnis Valnon
A mons avis, ça se fait par script, ça. EXTENDED_BOTTOM, c'est pour rajouter quelques scripts dans un bcs (ou autre je pense). Ca s'utilise dans le tp2, tu crées ton script bcs, puis tu indiques (comme dans le tuto traduit) à quel script du jeu tu veu l'attacher. INTERJECT, je ne sais pas du tout ce que c'est.

Posté : mer. 22 oct. 2003, 19:20
par Silk
Je présume que c'est l'inverse :) Ca doit servir à créer une réplique dans un dialogue autre.

Posté : mer. 22 oct. 2003, 19:54
par Grenouillebleue
Bon, ça va, je viens d'avoir un cours par le grand JCompton en personne (co-créateur de Weidu & créateur de Kelsey), et ça simplifie tout de suite les choses :hein:

En clair, pour ceux que ça intéresse:
Okay, well, let's say you want your interjection after the line "The guards have already canvassed the neighborhood, so if you want anything, go talk to them.* I don't know who or what you are, so I'm not talking to you." This line is TANNER 3: you can discover that with WeiDU, with DLTCEP, with NI (remember that the normal NI browsing mode starts numbering from 1 instead of 0, so either subtract 1 or use the Edit tab), or with the beta version of InfExp that shows weighting and DLG/state info and such (which I can provide if you give me an e-mail address.)

I_C_T says "Okay, I am going to give you a DLG name and state number. You will put this new transition for my NPC at the botom of that state, we will have our new line, and then you will COPY_TRANS the old transition list from the original DLG name and state number I provided at the beginning."

I_C_T TANNER 3 UniqueVariableNameHere
== FROG IF ~IsValidForPartyDialog("Frog")~ THEN ~Hey, sicko tanner boy! We've got your number! Tell him, <CHARNAME>!~
END

So now, you'll see the TANNER 3 line, and then if the NPC is valid for dialogue, you'll see "Hey, sicko tanner boy!" etc., and then the game will use the old transition list that used to be at TANNER 3.

In this case, that's a list of reply options for the PC, so the reply options will appear immediately under the new Frog lines. Since this can look weird (because the PC is addressing the tanner and not Frog), when you know you're I_C_T'ing into a state with PC reply options, I consider it good style to give the object of the replies another line, so that his name is the one on the screen for the replies. Like so:

I_C_T TANNER 3 UniqueVariableNameHere
== FROG IF ~IsValidForPartyDialog("Frog")~ THEN ~Hey, sicko tanner boy! We've got your number! Tell him, <CHARNAME>!~
== TANNER IF ~IsValidForPartyDialog("Frog")~ THEN ~Hah! I doubt it, Frog!~
END


Note that the condition is the same for both of the lines in the I_C_T (IsValidForPartyDialog("Frog")) because we only want the Tanner's new line to show up if we've actually seen Frog's line.

Il y a aussi une explication bien faite dans le readme de Weidu.

Bref, ces fonctions servent à créer des interjections (c'est à dire des interventions du PNJ en plein milieu d'un autre dialogue, comme par exemple Minsc qui parle de ne pas tuer d'animaux innocents quand on accepte la quête de FrancMarché).

I_C_T veut dire Interject_Copy_Trans. Ça permet de rajouter un commentaire dans le fichier .dlg d'un autre personnage qui s'insère DANS le dialogue préexistant.


Exemple: grâce à ça, on peut modifier une rencontre comme celle du tanneur.

Au lieu d'avoir:
- Je suis fermé, revenez demain
- Haha, on sait pour tes crimes
- Oh, zut, je suis pris (fuit)

On peut avoir:
- Je suis fermé, revenez demain
- Haha, on sait pour tes crimes
- Oui, t'es trop nul, t'as laissé une peau d'éléphant sur le sol <-- interjection
- Oh, zut je suis pris (fuit)

Posté : mer. 22 oct. 2003, 20:00
par Silk
C'est un peu ce que j'avais dit, mais bon... :notme:

Posté : mer. 22 oct. 2003, 20:21
par Lamnis Valnon
Excellent ! :rigoler: La peau d'éléphant fait un peu peau de tigre mais bon... Ca m'a toujours dérangé ce petit détail... Ca va fuser avec Saemon, je sais pas pourquoi, mais Lamnis va perdre des phrases...

Posté : mer. 22 oct. 2003, 20:23
par Silk
Lamnis, tu es au courant que c'est fait exprès, au moins ? :heu:

Posté : mer. 22 oct. 2003, 20:40
par Lamnis Valnon
Euh... Que quoi est fait exprès ? (sent qu'il va encore passer pour un con... :8: )

Posté : mer. 22 oct. 2003, 20:43
par Silk
Bah la peau d'éléphant à l'apprence de tigre, c'est de l'humour... :oops: Pour montrer que le mec qui analyse est vraiment une tarte et que personne ne sait ce que c'est qu'un éléphant en réalité, tout le monde invente des trucs mais personne ne le sait... (c'est un point commun à TOUS les livres de SF, cette blague, j'ai jamais su pourquoi :8: Une référence obscure à l'afrique et au commerce triangulaire, peut-être).

Posté : mer. 22 oct. 2003, 20:51
par Grenouillebleue
C'est probablement une référence à la blague de Tolkien et de son Olifant (avec Samwise qui explique que les Olifants sont de gros animaux avec un grand nez qui bouge tout seul)

Posté : mer. 22 oct. 2003, 21:22
par Silk
Et qui a été reprise après... ^^ En tout cas, j'ai toujours trouvé ça à mourir de rire, cette peau de tigre, et l'autre avec ses connaissances pointues qui t'affirmes scientifiquement que c'est une peau d'éléphant. Bref, revenons à nos moutons, enfin à nos éléphants.