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

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

explication svp !

Par Le Hamster le 12/9/2002 à 11:31:42 (#2143780)

Bon, j'en suis à animer mes npc, JE PERSISTE et j'essaie de comprendre, d'où cette demande.
En bon nullissime que je suis j'explique le script suivant comme ça
(nom du script : anim_spec1)

void main()
{
ClearAllActions();
ActionSpeakString ("Tape plus fort");
ActionWait(10.0);

ActionSpeakString ("Bouge toi");

DelayCommand(3.0,ExecuteScript("anim_Spec1",OBJECT_SELF));

}

Le npc dit "tape plus fort"
puis se passent 10 sec
le npc dit "Bouge-toi"
et au bout de 3 sec le script recommence


Et bien, ça fonctionne pas (j'ai viré tous les autres scripts du npc)

Un autre :


void main()
{
ClearAllActions();

ActionSpeakString ("Pfffff, quelle barbarie !");
ActionWait(4.0);

ClearAllActions();
ActionSpeakString ("Remarque il est pas mal celui de gauche !!");
ActionWait(5.0);

ClearAllActions();
ActionPlayAnimation (ANIMATION_LOOPING_TALK_LAUGHING);

DelayCommand(4.0,ExecuteScript("anim_Spec3",OBJECT_SELF));

}

même genre de déroulement :

le npc dit "quelle barbarie"
se passent 4 sec
le npc dit "remarque...
se passent 5 sec
le npc rigole et après 4 sec le script recommence.


pourquoi les choses simples sont-elles si compliquées ?
Même si vous n'avez pas le temps de m'expliquer, corrigez, pleeeeeease, le second pour obtenir le déroulement que je souhaite et j'essaierai de comprendre.


Bises à toutes et à tous

Par Jedaï le 12/9/2002 à 15:28:29 (#2144969)

ActionWait est une Action rajouté dans la liste des actions et comme tu fais ClearAllActions() tout le temps dans ton script toute tes actions et DelayCommand sont éliminés par cette fonction, je pense que le script suivant marchera mieux :


void main()
{
ClearAllActions();
ActionSpeakString ("Tape plus fort");
ActionWait(10.0);

ActionSpeakString ("Bouge toi");

DelayCommand(13.0, ExecuteScript("anim_Spec1",OBJECT_SELF));
}


et celui-là :


void main()
{
ClearAllActions();

ActionSpeakString ("Pfffff, quelle barbarie !");
ActionWait(4.0);

ActionSpeakString ("Remarque il est pas mal celui de gauche !!");
ActionWait(5.0);

ActionPlayAnimation (ANIMATION_LOOPING_TALK_LAUGHING);

DelayCommand(13.0,ExecuteScript("anim_Spec3",OBJECT_SELF));
}


CLUF : Attention ces script ne sont pas garantis, la Jedaï&Co ne peut être tenue pour responsable des conséquences de l'installation de ces script... ;)

Attention

Par Jedaï le 12/9/2002 à 15:38:38 (#2145018)

les DelayCommand ou ActionWait ne font pas "attendre" le script :
donc tes DelayCommand finaux relançaient le script avant qu'il ne soit fini en effet pour le 1er script

"Dire :Tape plus fort"
3 secondes après : relance du script et destruction des actions comme "Attendre 10 sec" ou "Dire : Bouge-toi" (par le ClearAllActions)

Même problème pour le 2nd script.


Autres questions :
Avais-tu bien mis ces script dans le OnSpawn ?
Il faudrait peut-être spécifier une durée pour l'animation en boucle
ANIMATION_LOOPING_TALK_LAUGHING ?(même si le ClearAllActions du début devrait l'arrêter...)

Parfait

Par Le Hamster le 12/9/2002 à 16:56:46 (#2145437)

Merci beaucoup Jedaï


Malheureusement pour vous tous les costauds, voilà le genre de réponses qu'il faut faire aux truffes. Corriger et un peu expliquer. Promis je reposerai plus de questions concernant ce genre d'animation.
De plus, j'ai bien compris qu'il me faudra choisir des titres plus explicatifs à mes posts ! ;-)

;)

Message reçu

JOL Archives 1.0.1
@ JOL / JeuxOnLine