Archives des forums MMO/MMORPG > Neverwinter Nights > NWN - Maskado > mĂȘme ça j'y arrive pas
mĂȘme ça j'y arrive pas
Par Le Hamster le 26/8/2002 Ă 17:22:48 (#2031156)
Un capitaine fait un briefing, il passe entre deux rangs de soldats, s'arrÚte à un bout de la rangée, dis un truc, va à l'autre bout, dis un autre truc puis retourne au premier point et continue son exposé.
J'ai fait ça (ci-dessous), c'est moche, il ne dit qu'une phrase et ne fait mĂȘme pas l'aller-retour parfois.
void main()
{
ClearAllActions();
ActionMoveToObject(GetNearestObjectByTag("point1"));
ActionWait(2.0);
ActionSpeakString("Je veux des rangs impeccables...");
ActionMoveToObject(GetNearestObjectByTag("point2"));
ActionWait(2.0);
ActionSpeakString("Surveillance maximale... !");
ActionMoveToObject(GetNearestObjectByTag("point1"));
ActionWait(2.0);
ActionSpeakString("ET PERSONNE NE FAIT PROUT AVEC LA BOUCHE !");
ActionMoveToObject(GetNearestObjectByTag("point2"));
ActionWait(2.0);
ActionSpeakString("Attention aux petits malins, je les matte moi... !");
}
Note : - point 1 et 2 sont des objets invisibles
- Je l'ai placé sur le onSpawn
- je voudrais que ça tourne en boucle.
VoilĂ .
Bises Ă toutes et Ă tous.
Note au modérateur : je devrais rester au rang de roturier ;)
Par Fed le 26/8/2002 Ă 17:35:29 (#2031241)
Pour que ton script tourne indĂ©finiment, il y a un methode utilisĂ© par le code des waypoints. Il s'agit en fait de crĂ©er une action qui s'appelle elle-mĂȘme.
Je suppose que la fonction DoBriefing contient le code que tu a donné tout à l'heure.
void DoInfiniteAction(action a)
{
ActionDoCommand(a);
ActionDoCommand(DoInfiniteAction(a));
}
Cette petite fonction permet de rendre une action infinie. L'action Ă executer est ajoutĂ©e dans la file des actions, suivit de la fonction elle-mĂȘme qui va faire appel Ă l'Action Ă executer, et ainsi de suite...
Maintenant, il suffit de faire appel Ă la fonction plus haut dans le script onSpawn
DoInfiniteAction(DoBriefing());
Et le tour est joué :)
JOL Archives 1.0.1
@ JOL / JeuxOnLine