[Script] Empêcher un Npc rejeté du groupe de lancer un dialogue

Répondre
Avatar du membre
Faust
Adepte de Grondemarteau
Loup noir
Messages : 291
Enregistré le : mer. 15 avr. 2009, 12:04
Localisation : Wherever I may roam
Statut : Hors ligne

[Script] Empêcher un Npc rejeté du groupe de lancer un dialogue

.

Message par Faust »

Bonsoir,

Dans mon mode mon héro est forcé de quitter le groupe pour subir une expérience et on est censés le retrouver allongé sur le sol. Jusque là tout va bien, pas de problème pour faire ça.

Le problème qui se pose est que je n'arrive pas à faire en sorte que mon héros reste au sol, et ne lance pas de banter afin que Charname choisisse de le lancer ou non en lui cliquant dessus afin de faire apparaître un dialogue.

Dès que mon héros voit charname, ll se lève et initialise le dialogue.

Existe t-il un moyen de faire en sorte qu'un npc n'initialise pas automatiquement de dialogue, ou même qu'il n'entreprenne une quelconque action dès qu'il est viré ?
[h=6]"Wrath is the burden of those who haven't faith in humanity but there's no mean to avoid it. I guess it's my choice, just try to stand it."[/h]Wherever I May Roam.
Avatar du membre
Faust
Adepte de Grondemarteau
Loup noir
Messages : 291
Enregistré le : mer. 15 avr. 2009, 12:04
Localisation : Wherever I may roam
Statut : Hors ligne
.

Message par Faust »

Apres plusieurs jours d'essais, j'ai finalement reussi:

IF

Global("El[r]inSoul","GLOBAL",1)
AreaCheck("AR1512")

THEN
RESPONSE #100

ActionOverride(Myself,ReallyForceSpellRES("Eloul",Myself)) // [LEFT]Graphics: Character Animation Change [138] Sleep, permanent[/LEFT]
SetGlobal("El[r]inSoul","GLOBAL",2) //
Continue()

END
IF

Global("El[r]inSoul","GLOBAL",2)
!InParty(Myself)

THEN
RESPONSE #100
ActionOverride(Myself,NoAction())

END

Coté Dialogue, dans le fichier xxxxP.DLG

BEGIN ~El[r]inP~
IF ~ Global("El[r]inSoul","GLOBAL",2)
~
BEGIN Skip
SAY @48
IF ~~ THEN DO ~
SetGlobal("El[r]inSoul","GLOBAL",3)~
JoinParty()
EXIT
END


Le personnage reste allongé jusqu'à ce qu'un PNJ lui clique dessus, le dialogue se lance bien, le personnage rejoint bien le groupe.
[h=6]"Wrath is the burden of those who haven't faith in humanity but there's no mean to avoid it. I guess it's my choice, just try to stand it."[/h]Wherever I May Roam.
Cocrane
Adepte de Grondemarteau
Ogre mage
Messages : 1328
Enregistré le : dim. 21 mars 2010, 12:03
Localisation : Paris
Contact :
Statut : Hors ligne
.

Message par Cocrane »

J'ai eu un problème dans le même genre.

Le Charname a quelque chose à faire seul et il quitte le groupe.

Ensuite dès qu'un PNJ voit le Charname, il fonce dessus et lance le dialogue de départ. A ma connaissance, tu ne peux pas l'empêcher. Par contre, tu peux faire évoluer le dialogue pour avoir ton texte.

Pour mon problème, j'ai finalement opté, pour ne pas faire sortir le Charname du groupe et le faire quitter la carte sans le groupe. (Tu peux paramétrer les cartes pour cela).
Le groupe peut évoluer de son coté. Au niv scénario, ça peut être aussi intéressant.


J'ai répondu sans voir ton dernier msg. Celà veut dire que c'est l'état sleep qui empêche le PNJ de parler automatiquement?

Cocrane
Avatar du membre
Faust
Adepte de Grondemarteau
Loup noir
Messages : 291
Enregistré le : mer. 15 avr. 2009, 12:04
Localisation : Wherever I may roam
Statut : Hors ligne
.

Message par Faust »

Cocrane a écrit :J'ai eu un problème dans le même genre.

Le Charname a quelque chose à faire seul et il quitte le groupe.

Ensuite dès qu'un PNJ voit le Charname, il fonce dessus et lance le dialogue de départ. A ma connaissance, tu ne peux pas l'empêcher. Par contre, tu peux faire évoluer le dialogue pour avoir ton texte.

Pour mon problème, j'ai finalement opté, pour ne pas faire sortir le Charname du groupe et le faire quitter la carte sans le groupe. (Tu peux paramétrer les cartes pour cela).
Le groupe peut évoluer de son coté. Au niv scénario, ça peut être aussi intéressant.


J'ai répondu sans voir ton dernier msg. Celà veut dire que c'est l'état sleep qui empêche le PNJ de parler automatiquement?

Cocrane
Hello Coco,

En fait il s'agit simplement de l'animation jouée lorsque une créature est sous l'état sleep, la créature reste allongée.

Si tu appliques un état qui fige la créature (inconscient, immobilisé, etc.̷) cela fige tout ses scripts (y compris dialogues) donc impossible de parler a la créature.

Ce qui me permet de garder la créature dans cette position c'est le script suivant:

IF

Global("El[r]inSoul","GLOBAL",2)
!InParty(Myself)

THEN
RESPONSE #100
ActionOverride(Myself,NoAction()) // La créature n'entreprend pas d'action, ici celle d'aller parler a CHARNAME après avoir été éjectée

END

La créature reste sous l'animation souhaitée "Graphics: Character Animation Change [138] Sleep, permanent" tant qu'elle n'est pas dans le groupe

Global("El[r]inSoul","GLOBAL",2)
!InParty(Myself)

THEN
RESPONSE #100
ActionOverride(Myself,NoAction())

END

Elle rejoint le groupe et se lève après que le PNJ lui ai parlé

IF ~ Global("El[r]inSoul","GLOBAL",2)
~
BEGIN Skip
SAY @48
IF ~~ THEN DO ~
SetGlobal("El[r]inSoul","GLOBAL",3)
ForceSpellRES("Eltnd",Myself) // pour faire se relever la créature, sinon elle reste au sol tant qu'elle n'est pas déplacée
JoinParty() ~
EXIT
END

Sinon tu peux utiliser DLTCEP

Spell Effect: Pause Target [165]
Cure: Unpause Target [270]
[h=6]"Wrath is the burden of those who haven't faith in humanity but there's no mean to avoid it. I guess it's my choice, just try to stand it."[/h]Wherever I May Roam.
Répondre

Retourner vers « Scripts »

Qui est en ligne

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