JeuxOnLineForumsPlusConnectés : 232 (sites) | 562 (forums)Créer un compte
Forum jeux-vidéo>Neverwinter Nights
Maskado
Répondre
Partager Outils Rechercher
Avatar de daemogorgon
daemogorgon
Roi
 
Avatar de daemogorgon
 

dialogues

Salut à tous,

la question a peut être déjà été posée, mais je ne trouve rien.

Est ce qu'un dialogue peut être commencé par un PNJ (et non pas par le joueur) ?
Je m'explique, j'ai besoin qu'un PNJ arrive devant une porte et qu'il s'adresse au joueur via un dialogue, et non pas qu'il attende que le joueur clique dessus pour commencer le dialogue..
Lien direct vers le message - Vieux
Avatar de tanator
tanator
Bagnard
 
Avatar de tanator
 
oui ca peut (mais je ne connai pas les script par coeur ) dès que j'en aurai le temps je te dirai si il existe un script sinon ben faudra soit le crée soit dowloader un hadpak
Lien direct vers le message - Vieux
Avatar de Tyrion
Tyrion
Roi
 
Avatar de Tyrion
 
Tien si ca peu te servir ^^


Citation:
Créez votre Npc et dans ces propriétés renommez son tag "kahar" (pour exemple).

Ensuite placez un generic trigger sur votre carte (zone qui va faire déplacer le Npc vers le jouer quand celui-ci rentre dans cette zone).

Enfin mettez ce script dans "on enter" de votre trigger.

Code PHP:
void main() 

object oPC GetEnteringObject(); 

// Mettre le tag de votre perso, ici c'est kahar 
object oNPC GetNearestObjectByTag("kahar"); 

// Trouvez le Npc. Il est peut etre mort.. 
if (GetIsObjectValid(oNPC)) { 

// verifie que le npc ne parle pas déjà à quelqu'un 
if (!IsInConversation(oNPC)) { 

// stop les actions en cours du Npc. 
AssignCommand(oNPCClearAllActions()); 

// Faire marcher le Npc vers le joueur. Si vous voulez que le npc court, changez la variable par true. 
AssignCommand(oNPCActionMoveToObject(oPCFALSE)); 

// Pour que le Npc parle au joueur. 
AssignCommand(oNPCActionStartConversation(oPC)); 



// Si vous voulez que le script ne marche qu'une seule fois 
// placer la ligne en dessous en la mettant sans commentaire: 
//DestroyObject(OBJECT_SELF); 


Lien direct vers le message - Vieux
Avatar de daemogorgon
daemogorgon
Roi
 
Avatar de daemogorgon
 
merci, je vais essayer ça.
Lien direct vers le message - Vieux
Avatar de daemogorgon
daemogorgon
Roi
 
Avatar de daemogorgon
 
Le problème, car il y a un problème, est le suivant maintenant :

Le PNJ a toute une série d'action avant de démarrer la conversation qui sont gérées par des DelayCommand.
Pour la dernière action qui débute la conversation, le Delay étant aléatoire en fonction du temps qu'il met pour arriver au PJ, comment faire pour qu'il commence la conversation quand il arrive devant le PJ ?
Lien direct vers le message - Vieux
Avatar de Tyrion
Tyrion
Roi
 
Avatar de Tyrion
 
Ben tu met un command de delay de 1.0
voir 0.0 mais je crois pas que ce soit possible le 0.0
Lien direct vers le message - Vieux
Avatar de daemogorgon
daemogorgon
Roi
 
Avatar de daemogorgon
 
Etant donné que quand le Pnj commence son déplacement vers le Pj, son Delay est déjà à 17.0, et que je ne connaît pas le temps qu'il va mettre pour arriver devant le Pj, la question est : y'a t il une astuce pour savoir si le Pnj a fini son déplacement et est devant le joueur pour pouvoir lancer son dialogue ?

En me relisant, j'arrive à peine à me comprendre moi même !!!!
Lien direct vers le message - Vieux
Avatar de Tyrion
Tyrion
Roi
 
Avatar de Tyrion
 
Ben tu peu faire une Sphere autour du joueur, je n'est pas la fonction en tete la mais avec cette fonction tu faire une sphere de 1 metre et des que le pj est dans cette sphere tu declenche le dialogue
Lien direct vers le message - Vieux
Avatar de Tyrion
Tyrion
Roi
 
Avatar de Tyrion
 
tu as celle la aussi

GetObjectSeen(object oTarget, object oSource=OBJECT_SELF)

celle que je disait est celle la

GetFirstObjectInShape(int nShape, float fSize, location lTarget, int bLineOfSight=FALSE, int nObjectFilter=OBJECT_TYPE_CREATURE, vector vOrigin=[0.0,0.0,0.0])
Lien direct vers le message - Vieux
Avatar de daemogorgon
daemogorgon
Roi
 
Avatar de daemogorgon
 
Non, c'est bon, il suffit de mettre dans une fonction a part et appelée par le main() la liste des actions qui débutent après le démarrage du Pnj vers le joueur sans les Delay et l'appeler avec un Delay dans mon exemple de 18.0, et ça marche...

Merci pour le début. ( C'est souvent difficile, le DEBUT du chemin de la réflexion qui mene à l'éblouissement de la découverte, ... )
Lien direct vers le message - Vieux
Avatar de daemogorgon
daemogorgon
Roi
 
Avatar de daemogorgon
 
Mais c'est pas vrai, ça ...
Tout marche jusqu'au moment ou le Pnj déballe son dialogue : il attend même pas la fin pour se casser au loin.
J'ai vérifié les factions, y'a pas de pb.
Lien direct vers le message - Vieux
Avatar de Zunzun
Zunzun
Alpha & Oméga
 
Avatar de Zunzun
 
Un petit ClearAllActions() judicieusement placé devrait te tirer d'affaire. Et tu relances le script de déplacement du PNJ en fin de dialogue.
Lien direct vers le message - Vieux
Avatar de Tyrion
Tyrion
Roi
 
Avatar de Tyrion
 
bah tu ten fou de sa...

faut surtout vider les emplacement normal2 et abandon.

et a la rigueur dans abandon tu met un rendomwalk.

(se trouve dans ton dialoodue a droit de action consquente onglet : fichiers actuel)
Lien direct vers le message - Vieux
Répondre
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > dialogues
   

Outils Rechercher
Rechercher:

Recherche avancée

Les vidéos de Neverwinter Nights RSS
  • Aucune vidéo pour le moment...
Thème visuel : Fuseau horaire GMT +1. Il est actuellement 07h28.
   

© JeuxOnLine, le site des MMO, MMORPG et MOBA. Tous droits réservés. - Conditions générales d'utilisation - Conditions d'utilisation des forums - Traitement des données personnelles - ! Signaler un contenu illicite