Bienvenue sur JeuxOnLine - MMO, MMORPG et MOBA !
Les sites de JeuxOnLine...
 

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

je trouve pas !

Par hido le 18/11/2002 à 19:24:28 (#2588795)

bonjour a tous !

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)

Euh.. c'est presque faisable :



"..."
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)

Malheureusement, il n est pas possible de converser tout en restant assis. Si ton pnj engage la conversation, il se lèvera puis se rassiéra. Le seul moyen de faire parler un PNJ en le laissant assis c'est de générer des phrases avec SpeakString() sur le OnDisturbed de ton PNJ par exemple.

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)

LOL, on à posté en meme temps :)

PS : dis moi eMRaistlin, tu ecris tes scripts sous dreamweaver MX pour les couleurs ? :)

Par eMRaistlin le 18/11/2002 à 20:20:51 (#2589317)

nan... Fais des Balises PHP

(c'est comme quote, mais tu met PHP a la place ^^)

Par coolstar le 18/11/2002 à 20:35:06 (#2589442)

:mdr:

Par shadoh le 18/11/2002 à 20:46:54 (#2589552)

Arf te moque pas :D...

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)

dite ?

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)

Non le truc c est que si tu laisses le script de base du OnConversation et du OnDisturbed des PNJ, ceux ci se lèveront lorsqu'un PJ viendra leur adresser la parole.

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:

merci

Par hido le 19/11/2002 à 0:54:56 (#2591166)

merci beaucoup !!

JOL Archives 1.0.1
@ JOL / JeuxOnLine