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

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

[script]générer un texte au dessus de la cible lorsqu'elle passe sur un declancheur.

Par shadoh le 23/10/2002 à 11:13:41 (#2388178)

// Generer un texte au dessus d'une zone si un joueur passe sur celle ci.
//
// Script a placer sur l'evenement OnEnter du declancheur.
void main()
{
if(GetIsPc(GetEnteringObject())); // Verifie si la chose qui passe sur le déclancheur est un joueur.
{
object oCreature = GetEnteringOject(); // Cible la chose qui verra le texte.
string sText = "Vous sentez q'un danger vous guette"; // Texte qui sera affiché au dessus de oCreature.
FloatingTextStringOnCreature(sText, oCreature, FALSE); // FALSE indique que le message sera uniquement visible par oCreature.
}
}

Je n'ai pas pu le tester encore car je suis au boulot :D
Mais si un pro du scriptage voulait bien me dire si je n'ai pas fait d'erreure, ca serait sympa.

Par shadoh le 23/10/2002 à 12:00:13 (#2388485)

Comme j'ai du temps à perdre au boulot, je me permet de vous soumettre ce script que je n'ai pas encore tésté...
Etant un amateur, si il y a des erreures merci de bien vouloir me les signaler :).
Avec ce script, je voudrais faire que lorsqu un joueur passe sur mon déclancheur, un texte s'affiche au dessus de lui le prévenant d'un danger imminant. Puis que 2 secondes plus tard, un sort s'abatte à l'endroit ou se trouve le déclancheur.

void Magie()
{
int nSort = SPELL_CIRCLE_OF_DOOM;
location lTargetSort = GetObjectByTag("piege1");
int nMetaMagic = METAMAGIC_ANY;
int bCheat = TRUE;
int nProjectilePathType = PROJECTILE_PATH_TYPE_DEFAULT;
int bInstantSpell = FALSE;
AssignCommand(lTargetSort, ActionCastSpellAtLocation(nSort, lTargetSort, nMetamagic, bCheat, nProjectilePathType, bInstantSpell));
}
void main()
{
if (GetIsPc(GetEnteringObject()) && GetExitingObject() == GetEnteringObject()); // Verifie si la chose qui rentre dans le declancheur n'est pas la meme que celle qui vient d'en sortir
}
else if(GetIsPc(GetEnteringObject())); // Verifie si la chose qui passe sur le déclancheur est un joueur.
{
object oCreature = GetEnteringOject(); // Cible la chose qui verra le texte.
string sText = "Vous sentez q'un danger vous guette"; // Texte qui sera affiché au dessus de oCreature.
FloatingTextStringOnCreature(sText, oCreature, FALSE); // FALSE indique que le message sera uniquement visible par oCreature.
DelayCommand(2.0, Magie());
}
}

Re: [script]générer un texte au dessus de la cible lorsqu'elle passe sur un declancheur.

Par mobidique le 23/10/2002 à 13:04:35 (#2389025)

Si je puits me permettre met nous plutôt ton code entre des balises php comme ça

Provient du message de shadoh
// Generer un texte au dessus d'une zone si un joueur passe sur celle ci.
//
// Script a placer sur l'evenement OnEnter du declancheur.
void main()
{
// Verifie si la chose qui passe sur le déclancheur est un joueur.
if(GetIsPc(GetEnteringObject()));
{
// Cible la chose qui verra le texte.
// Texte qui sera affiché au dessus de oCreature.
string sText = "Vous sentez q'un danger vous guette";
FloatingTextStringOnCreature(sText, oCreature, FALSE);
// FALSE indique que le message sera uniquement visible par oCreature.
}
}


ramène tes commentaires à la ligne et indente c'est plus lisible. Je pense que ça marchera. Perso je le ferais comme ça :
void main()
{
object oCreature = GetEnteringOject();

FloatingTextStringOnCreature("Vous sentez qu'un danger vous guette", oCreature, FALSE);
}


Pourquoi vérifier que la créature est un perso quand l'info est uniquement affichée pour la créatrure ? Pourquoi mettre son texte dans une variable quand on peut le mettre directement dans la fonction ? Pourquoi effectuer un test avec getenteringobject quand il faut le réutiliser ensuite pour le récupérer l'objet entrant ? Pourquoi faire un test pour s'assurer que l'on a bien affaire à un perso ? Des monstres sont vraiment supposés passer ici ? Si oui est-ce que tu es sûr que les monstres déclenchent les triggers ? Y z'ont pas une faction les triggers aussi ? Quand bien même y auraient des monstres suscéptibles de passer sur le trigger quand bien même ils déclenchent effectivement le trigger et quand bien on remplacerait FALSE par TRUE dans le FloatingText, est-ce que pour autant le message serait visible des autres joueurs ? Pour ce dernier point je signale qu'en tant que MJ les Floating text je les vois jamais sur mes joueurs et je suis pas sûr du tout qu'un joueurs voient les FloatingText des autres joueurs. A tester peut être tout ça.

Enfin en ce qui concerne le fait de dire "Un danger vous guette", j'essairai plutôt de faire ressentir au joueur qu'un danger le guette. Compare le fait de faire apparaitre ce texte au fait de mettre le joueur dans un ambiance sombre rempli de son étrange. Par exemple, pour faire comprendre aux joueurs qu'ils sont à proximité d'un nid d'arraignées, utilise le son bug scary et pose des coccons un peu partout avec un petit FloatingText sur le OnUsed signalant le contenu du cocon, animal ou humanoïde. Enfin c'est une suggestion.

Par mobidique le 23/10/2002 à 13:25:28 (#2389242)

Provient du message de shadoh
Comme j'ai du temps à perdre au boulot, je me permet de vous soumettre ce script que je n'ai pas encore tésté...
Etant un amateur, si il y a des erreures merci de bien vouloir me les signaler :).
Avec ce script, je voudrais faire que lorsqu un joueur passe sur mon déclancheur, un texte s'affiche au dessus de lui le prévenant d'un danger imminant. Puis que 2 secondes plus tard, un sort s'abatte à l'endroit ou se trouve le déclancheur.


Ha ... pardon ... J'avais pas vu l'idée dans son ensemble ... Je sais pas si ton code marche ou pas. J'ai jamais fait d'appel de fonction et j'ai jamais fait lancer de sort ...

Par contre pour revenir au dernier paragraphe de mon post précédent, à ta place je mettrais au sol un floor design ou bien j'utiliserais un effet lumineux ou bien encore un effet sonore pour signaler une singularité dans l'environement qui tiendrait lieu de mise en garde. Peut être qu'un trigger avant cet élément attirant l'attention du joueur sur cet élément serait judicieux, surtout pour le floor design en fait. Pour finir, lorsque le joueurs est sur l'élément étrange je ferais un nouvel effet visuel et/ou sonore pour avertir le joueur que son passage a déclanché kkchose.

Par contre un truc peut petre moyen dans cette idée c'est qu'au final c'est un piège ton truc. Alors déjà des pièges y en a de tout fait. Qui marche trés biens. Ensuite ce qui peut petre trés frustrant pour les joueurs c'est le fait que tu ne leur donne aucun moyen de détecter ce piège aucun moyen de le désamorcer. Bon ... si c'est un piège magique, peut être qu'un magicien serait suscéptible de le voir, faudrait lui faire faire un check de compétence (cf. "[Srcipt] Des traces à suivre", où je faisais faire un check à mes persos) et ensuite peut être qu'un dispel magic pourrait désamorcer le piège ? D'une manière général je pense qu'il est extrémement frustrant pour les joueurs de prendre des pattates sans pouvoir rien faire.

Valà :)

Par shadoh le 23/10/2002 à 13:48:58 (#2389501)

Comme je l ai dit, je debute :). Il y a a peine 2 semaines, je n'avais jamais touché au scriptage de ma vie lol...

En fait, j ai pensé à ce piege "indétéctable et non désarmorçable" car dans le module que je construis, il m'est indispensable.
Mettre un effet particulier en plus du texte c'est une bonne idée tiens :).

JOL Archives 1.0.1
@ JOL / JeuxOnLine