Archives des forums MMO/MMORPG > Neverwinter Nights > NWN - Maskado > je trouve pas !
je trouve pas !
Par hido le 18/11/2002 à 19:24:28 (#2588795)
voila je cherche un scripts pour que un de mes PNJ reste assis par terre et pas sur une chaise ! et pouvant discuter toujours assis.
vous avez un script pour ça ?
merci amicalement hido
Par eMRaistlin le 18/11/2002 à 20:11:43 (#2589243)
"..."
int nDuree = 50.0f //en secondes
AssignCommand(GetObjectByTag("TAGNPC"),ActionPlayAnimation( ANIMATION_LOOPING_SIT_CROSS, 1.0, nDuree));
"..."
Par contre, je suis pas sur que ca n'empeche pas la conversation. A verifier par toi-même ^^
Par shadoh le 18/11/2002 à 20:13:48 (#2589264)
pour que ton PNJ reste assis met ça sur tous les OnXXX de ton PNJ :
void main()
{
int nAnimation = ANIMATION_LOOPING_SIT_CROSS;
float fSpeed = 1.0;
float fDurationSeconds = X.X; (ou X.X correspond à la durée en seconde).
ActionPlayAnimation(nAnimation, fSpeed, fDurationSeconds);
}
Pour lui faire dire une phrase lorsqu'un PJ clic sur le PNJ met un truc comme ceci sur le OnDisturbed de ton PNJ en remplaçant les phrases entre parenthèse par ce que tu veux (ça lui fera dire une de ses phrases au hasard suivant le chiffre que donnera nRandom):
void main()
{
int nRandom = Random(5);
if (nRandom == 1)
{
SpeakString("Prenez garde, de nombreux dangers hantent cette mine.");
}
else if (nRandom == 2)
{
SpeakString("Il est rare d'avoir de la visite dans le coin... Ca n'est pas plus mal d'ailleur.");
}
else if (nRandom == 3)
{
SpeakString("Bonjour.");
}
else if (nRandom == 4)
{
SpeakString("Les goblins ont fui la mine. Je me demande si cela a pour çause les etranges bruits provenant des profondeurs de la mine.");
}
else
{
SpeakString("Je me demande ou est passe la bague de Legnar.");
}
}
Si tu veux juste lui faire dire une phrase et non pas plusieurs au hasard met ceci sur le OnDisturbed en remplaçant la phrase entre parenthèse par la tienne :
void main()
{
SpeakString("Prenez garde, de nombreux dangers hantent cette mine.");
}
A noter que le prochain patch permettra de faire converser un PNJ sans qu'il se lève à l'entame de la conversation.
Par shadoh le 18/11/2002 à 20:15:30 (#2589275)
PS : dis moi eMRaistlin, tu ecris tes scripts sous dreamweaver MX pour les couleurs ? :)
Par eMRaistlin le 18/11/2002 à 20:20:51 (#2589317)
(c'est comme quote, mais tu met PHP a la place ^^)
Par coolstar le 18/11/2002 à 20:35:06 (#2589442)
Par shadoh le 18/11/2002 à 20:46:54 (#2589552)
C pas ma faute si je vois dreamweaver MX partout hein :ange:
merci ça été trés rapide
Par hido le 18/11/2002 à 22:33:45 (#2590343)
pour la conversation cela ne me dérange pas du tout !
mais par contre je suis obligé de le mettre assis par sec ?
pas possible de le faire s'asseoir et qu'il y reste ? même après la conversation ?
Par shadoh le 18/11/2002 à 22:57:13 (#2590520)
Du coup, à l heure actuelle, la seule solution pour faire "parler" un PNJ sans qu'il se relève c'est de remplacer le script par défaut du OnConversation et du on Disturbed par un script qui contient une commande SpeakString().
Comme ceci, lorsque le PJ cliquera sur le PNJ, celui ci sortira une phrase. Mais impossible de faire une "vraie" conversation avec intervention à la fois du PJ et du PNJ (genre les conversations avec plusieurs réponses possibles).
Maintenant, pour le fait qu'il reste assis tout le temps, ça se passe au niveau du OnHeartBeat je pense. Vu que celui ci active le script qu'il contient toutes les 6 secondes, si dans tes paramètres du script pour faire asseoir ton PNJ tu mets plus de 6 secondes, cela aura pour effet de faire que le PNJ restera assis tout le temps.
Je te remet le script pour faire asseoir le PNJ :
void main()
{
int nAnimation = ANIMATION_LOOPING_SIT_CROSS;
float fSpeed = 1.0;
float fDurationSeconds = 7.0;
ActionPlayAnimation(nAnimation, fSpeed, fDurationSeconds);
}
Edit : houa c'est cool les couleurs :D. Je savais pas qu'on pouvait faire ça sur ce forum lol... Tu as bien fait de me dire comment faire :merci:
JOL Archives 1.0.1
@ JOL / JeuxOnLine