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

Panneau de contrĂŽle

Recherche | Retour aux forums

JOL Archives

mĂȘme ça j'y arrive pas

Par Le Hamster le 26/8/2002 Ă  17:22:48 (#2031156)

Bon,

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)

point1 et point2 devraient plutot etre des waypoint. C'est justement l'utilite de ces petites choses la :)

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