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

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

Afficher un texte en entrant dans une zone

Par Talab le 22/8/2002 à 19:41:51 (#2006759)

Voilà le problème :

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)

Je te promet pas que ça marche mais GetObjectByTag("tag_de_bozo")

Par Talab le 22/8/2002 à 21:36:36 (#2007346)

J'avais essayé sans succès.
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 Trollky le 23/8/2002 à 1:15:47 (#2008773)

Essaye ça peut que ça marchera ;)

Par Talab le 23/8/2002 à 11:37:39 (#2010990)

Intéressant mais dans mon cas le problème est que je souhaite afficher le texte sur une créature non concernée par lévènement "Entrée".
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)

Le problème c'est que tu utilises FloatingTextString. Cette commande ne montre un texte qu'au ctéatures de la même faction. Si tu appelles cette fonction sur oBozo, seules les créatures de la même faction que oBozo pourront la lire.

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)

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

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)

Quiche un jour, quiche toujours ! :sanglote:

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