Archives des forums MMO/MMORPG > Neverwinter Nights > NWN - Maskado > besoin d'une pause !
besoin d'une pause !
Par daemogorgon le 13/11/2002 à 22:22:20 (#2556738)
J'ai besoin dans 1 script de faire 1 pause de 10secondes, avant une autre action automatique.
Qq1 à une idée, j'y arrive plus ........
Par miriandel le 13/11/2002 à 22:31:06 (#2556795)
Par Jedaï le 13/11/2002 à 23:00:50 (#2557007)
Il existe par contre des commandes qui peuvent retarder l'éxécution d'une fonction. (Ces commandes n'auront aucun effet sur l'éxécution du reste du script)
DelayCommand(fDelay, aActionToDelay) retarde l'exécution de la fonction aActionToDelay de fDelay secondes, mais les fonctions qui se trouve après un delaycommand s'exécute immédiatement.
ActionWait(fTime) ne change pas plus l'exécution du script : il rajoute l'action "attendre pdt fTime secondes" à la file d'action du NPC.
Exemple :
void main()
{
DelayCommand(5.0, ClearAllActions());
DelayCommand(6.0, ActionMoveToObject(oBidule));
ActionMoveToObject(oBidule);
}
Le NPC va se diriger vers oBidule, si au bout de 5 s il n'est pas arrivé, il va arrêter de se déplacer, puis après 1 seconde, il va recommencer à se déplacer vers oBidule. Le deuxième delaycommand() n'est absolument pas influencé par le premier : il s'exécute normalement à la suite des autres fonctions.
void main()
{
ActionWait(5.0);
ActionWait(6.0);
ActionMoveToObject(oBidule);
ActionWait(2.0);
ActionMoveToObject(oBidule2);
}
Le NPC va rester sur place 11 s : il "attend" pdt 5 s puis il "attend" pdt 6 s. Ensuite il va jusqu'à oBidule, une fois arrivé là-bas, il ne fait rien pdt 2 s puis il se dirige vers oBidule2.
Donc il faut préter beaucoup d'attention à l'utilisation de ces fonctions, leur emploi n'est pas toujours évident...:p
Par Aziphael le 13/11/2002 à 23:11:16 (#2557091)
"CreateItemOnObject"...
Delay command ne fonctionne pas dans ce cas là :doute:
Par miriandel le 13/11/2002 à 23:16:37 (#2557132)
void VoidCreateItemOnObject(string sItemTemplate, object oTarget=OBJECT_SELF, int nStackSize=1) {
CreateItemOnObject(sItemTemplate, oTarget, nStackSize);
}
void VoidCreateObject(int nObjectType, string sTemplate, location lLocation, int bUseAppearAnimation=FALSE) {
CreateObject(nObjectType, sTemplate, lLocation, bUseAppearAnimation);
}
...
Par Aziphael le 13/11/2002 à 23:29:13 (#2557215)
(où alors je suis encore plus bête que je en pensais)
:confus:
Par eMRaistlin le 14/11/2002 à 0:11:11 (#2557459)
Par shadoh le 14/11/2002 à 0:27:50 (#2557547)
Par Aziphael le 14/11/2002 à 16:53:02 (#2561707)
Provient du message de shadoh
Vous pourriez au moins etre poli et dire s'il vous plait et merci lorsque vous demandez un truc...
C'est à moi que ça s'adresse ? sachez Monsieur que je suis toujours aimable, dans la mesure du possible.
Je n'avais pas compris la réponse de miriandiel et je ne pense en aucun cas avoir été impoli...
Maintenant que j'ai une réponse qui permet à mon intelligence limitée de trouver l'illumination,
OUI
Je dis Merci à vous deux pour votre patience (comme je le fais à chaque fois !).
PS: si vous avez trouvé mon attitude irrespectueuse je vous présente mes plus plates excuses :merci: , ce n'a jamais été mon attention.
Par daemogorgon le 14/11/2002 à 21:41:39 (#2564119)
Un perso joueur doit faire une action précise, a partir de ce momment, il peux faire ce qu'il veut, mais 1mn après une action ce produit indépendament de ce qu'il peux faire.
(en fait, c'est pas le perso que je veut pauser, mais l'action suivante d'un objet).
Voilà, c'est + clair.
Par Jedaï le 14/11/2002 à 22:37:48 (#2564566)
Je suppose que si tu n'as pas trouvé ton bonheur dans mes exemples c'est que tu veux en fait qu'un autre objet fasse l'action 1 min après le script, non ?:confus:
Dans ce cas il suffit de faire un AssignCommand().
Ex. :
AssignCommand(oNPC2, DelayCommand(55.0, ClearAllActions()));
AssignCommand(oNPC2, DelayCommand(60.0, ActionMoveToObject(oBidule)));
Placé dans le script de ton NPC1 (qui peut bien danser la javanaise pdt ce tps là, on s'en fout !), ces fonctions déclencheront, une minute après leur utilisation, une envie irrépressible chez oNPC2 d'aller voir ce que peut bien être oBidule.:p
Par daemogorgon le 14/11/2002 à 22:58:06 (#2564744)
Mais (je suis assez débutant), oPNC1 ou 2, tu le déclares ou ?
Encore merci.
Par Jedaï le 14/11/2002 à 23:04:42 (#2564795)
Par daemogorgon le 14/11/2002 à 23:10:06 (#2564841)
Par daemogorgon le 14/11/2002 à 23:17:06 (#2564893)
C'est parfait, ça marche.
Encore merci.
JOL Archives 1.0.1
@ JOL / JeuxOnLine