Archives des forums MMO/MMORPG > Neverwinter Nights > NWN - Maskado > Afficher un texte en entrant dans une zone
Afficher un texte en entrant dans une zone
Par Talab le 22/8/2002 à 19:41:51 (#2006759)
Je souhaiterai qu'un texte s'affiche au-dessus d'un PNJ lorsque mon PJ rentre dans une zone.
J'ai défini la zone avec un trigger puis j'ai mis mon perso à l'intérieur.
Ensuite dans le OnEnter du trigger j'ai mis :
______________________
void main()
{
//phrase à afficher
string sBlague = "0+0=tete a toto" ;
//déclaration du tag du pnj
string sTagBozo = "Bozo" ;
//acquisition du pnj par son tag
object oBozo = GetNearestObjectByTag(sTagBozo, OBJECT_SELF, 1);
//Affichage de la phrase
ActionDoCommand(FloatingTextStringOnCreature(sBlague, oBozo, FALSE));
}
______________________
Je soupçonne au moins trois problèmes :
- je ne peux pas utiliser FloatingTextStringOnCreature sur un "objet" qui n'est pas lié à l'évènement (OnEnter)
- ActionDoCommand n'est pas la bonne commande à utiliser
- GetNearestObjectByTag n'acquiert pas le pnj (Bozo en l'occurence)
Toutes les suggestions sont bienvenues.
Merci d'avance.
Et comme on dit : quiche un jour, quiche toujours !
Par Mellinsa le 22/8/2002 à 20:34:53 (#2007061)
Par Talab le 22/8/2002 à 21:36:36 (#2007346)
Le script donnait ça (toujours dans le OnEnter du trigger)
___________________
void main()
{
string sBlague = "0+0=tete a toto" ;
object oBozo = GetObjectByTag("Bozo");
ActionDoCommand(FloatingTextStringOnCreature(sBlague, oBozo, FALSE));
}
___________________
Il compile bien mais j'ai peut-être oublié quelque chose. :aide:
J'arrive à activer un dialogue entre mon PNJ et mon PJ, on trouve ce script un peu partout mais là je sèche.
Merci tout de même.
Par Talab le 23/8/2002 à 11:37:39 (#2010990)
Cependant sur ce site que je trouve tout à fait sympathique j'ai trouvé ceci :
http://www.hellfire.firstream.net/index.php?txt=scripts_aff_ind&id=20
Je pense que c'est une base de départ propre. Je vous tiens au courant du résultat.
Par Kemay le 23/8/2002 à 11:59:50 (#2011152)
void main()
{
object oPC = GetEnteringObject();
if( GetIsPC(oPC) )
{
object oBozo = GetObjectByTag("Bozo");
string sBlague = "0+0=tete a toto" ;
AssignCommand(oBozo,SpeakString(sBlague));
}
}
Si tu veux absolument utiliser FloatingTextString, il faut l'utiliser un PC pour qu'il puisse la lire.
Par Talab le 23/8/2002 à 12:17:17 (#2011281)
Cependant je vais essayer ton code. Il m'a l'air plus sipmle (donc plus efficace).
Par Kemay le 23/8/2002 à 12:30:31 (#2011394)
Provient du message de Talab
Ce que tu dis est exact si tu mets TRUE, hors j'ai mis FALSE. D'après le lexiconn ça doit marcher.
Cependant je vais essayer ton code. Il m'a l'air plus sipmle (donc plus efficace).
Ok, une petite clarification sur FloatinTextString s'impose :)
(Comme d'hab l'explication de Bioware concernant cette fonction est à la limite entre le flou et l'erroné)// Fait apparaître un texte flottant au-dessus de la créature spécifiée
// Ce texte apparaîtra aussi dans la fenêtre de chat de chaque joueur qui voit le texte flottant.
// - sStringToDisplay: le texte à faire apparaître
// - oCreatureToFloatAbove: la créature au dessus de laquelle le texte doit apparaître
// - bBroadcastToFaction: Si c'est TRUE Alors seules les créatures de la même faction
// que oCreatureToFloatAbove se trouvant dans un rayon de 3à mètre verront le texte flottant
// Si c'est FALSE seule la créature elle-même verra le texte.
void FloatingTextStringOnCreature(string sStringToDisplay, object oCreatureToFloatAbove, int bBroadcastToFaction=TRUE)
Par Talab le 23/8/2002 à 13:01:16 (#2011621)
Sinon je viens de le tester et c'est ok. Mainenant que j'arrive à afficher le texte je vais avancer d'un pas dans mon script. J'aurais sûrement encore besoin de vos services !!
JOL Archives 1.0.1
@ JOL / JeuxOnLine