Oyez, oyez !

Les résultats du vote sur les meilleurs RPG de tous les temps sont désormais dévoilés dans ce message !

Merci à toutes et à tous pour votre participation !

N'hésitez pas à aller commenter, ajouter des jeux auxquels vous n'auriez pas pensé...

[DLG] Ajout d'interjection à un dialogue sans tenir compte de ses actions

Répondre
Avatar du membre
Pélagie
Adepte de Grondemarteau
Ogre
Messages : 209
Enregistré le : dim. 18 juil. 2004, 15:55
Localisation : In my wonderland
Contact :
Statut : Hors ligne

[DLG] Ajout d'interjection à un dialogue sans tenir compte de ses actions

.

Message par Pélagie »

Bonjour à tous !

J'ai un souci avec une interjection de Kupgup, le familier kobold sur lequel je suis en train de bosser. Peut-être quelqu'un pourra m'aider.

En entrant dans les mines de Bois-Manteau, un garde (IRON8.cre; IRON8.DLG) nous accoste en disant un truc du genre "c'est vous les vauriens bla bla..." (ligne #0) puis vire hostile (dans le jeu de base). Je fais intervenir Kupgup à la fin de la phrase du garde, or lorsque le dialogue prend fin, le garde reste neutre et c'est Kupgup qui vire hostile.
Je pense comprendre ce qui se passe (la commande Enemy() allouée au garde dans le dialogue de base est appliquée à Kupgup) mais je ne vois pas comment régler le truc.

Voilà ce que je tape dans le fichier .d de Kupgup pour lancer l'interjection:

Code : Tout sélectionner

INTERJECT_COPY_TRANS IRON8 0 kobvicieux
== FAMKOB IF ~InActiveArea("FAMKOB")~ THEN @29
END
où FAMKOB est la death variable du familier.

Quelqu'un a une idée ?

Note : j'utilise InActiveArea car le perso étant un familier et non un PNJ recrutable, je ne peux pas utiliser InParty.
Avatar du membre
Pélagie
Adepte de Grondemarteau
Ogre
Messages : 209
Enregistré le : dim. 18 juil. 2004, 15:55
Localisation : In my wonderland
Contact :
Statut : Hors ligne
.

Message par Pélagie »

C'est bon, j'ai trouvé la solution à mon problème (après moults tests et une grosse prise de tête).
Oghma soit loué!
Avatar du membre
mirandir
Adepte de Grondemarteau
Ver charognard
Messages : 674
Enregistré le : mer. 09 févr. 2011, 10:30
Contact :
Statut : Hors ligne
.

Message par mirandir »

N'hésite pas à expliquer comment tu as résolu ton problème, ça pourra sans doute servir à d'autres !
« Pssst. Tu as remarqué comme elle me dévore du regard ? Hein ? Tu as vu ça ? La façon dont elle a regardé la courbe de mon os occipital ? »
Avatar du membre
Pélagie
Adepte de Grondemarteau
Ogre
Messages : 209
Enregistré le : dim. 18 juil. 2004, 15:55
Localisation : In my wonderland
Contact :
Statut : Hors ligne
.

Message par Pélagie »

Oui en effet! J'ai hésité à le faire puis ai finalement abandonné en me disant que mon erreur était tellement débile qu'une explication n'était peut-être pas nécessaire :$

En fait voilà :

La commande INTERJECT_COPY_TRANS permet de faire appel à une ligne de dialogue extérieur déjà existant (Celui d'un NPC créé par le jeu donc) et de faire intervenir votre propre NPC à la ligne choisie en "liant" ce dialogue au sien. Pour une simple interjection donc. Le problème est que les actions "DO" de la ligne de dialogue en question seront également liées à votre NPC pendant son intervention.
Je donne un exemple un peu plus concret :

Un PNJ du jeu original se dirige vers Charname et lui sort une réplique "bla bla" puis se barre (via le script EscapeArea() par exemple) ; et bien si vous voulez faire réagir votre propre NPC à sa réplique, la commande INTERJECT_COPY_TRANS va vous permettre de le faire. Seulement, l'action EscapeArea() s'appliquera également à sa ligne de dialogue et il quittera la zone (tandis que le NPC du jeu original ne bougera pas).

Donc... Lorsque que vous désirez que seule la ligne de dialogue soit liée à votre perso et non l'action résultante, il faut plutôt utiliser INTERJECT_COPY_TRANS2
Cette commande fait la même chose que la première mais ne prend pas en compte les actions générées par le "DO".

Voilou ;)
Répondre

Retourner vers « Dialogues »

Qui est en ligne

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