La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 01/11/2024 22:36:11


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Boine
Novice
Inscrit le: 25 Sep 2005
Messages: 7
Répondre en citant
Posté le : 25/09/2005 22:02:38 Sujet du message : Pb avec DelayCommand

Bonjour, je découvre actuellement l'écriture des scripts et j'ai une première question.

Je voudrais retarder l'entrée d'un NPC dans une zone, ici un ermite qui rentre chez lui alors que le PC est dedans.

J'ai donc écrit ce script dans le OnEnter de la zone

object oermite=GetObjectByTag("ermite");
object odestination=GetWaypointByTag("wp_entreeermite");

void main()
{
AssignCommand(oermite,DelayCommand(5.0,ActionJumpToObject(odestination,0)));
}

Malheureusement le NPC est là des que le PC rentre ...
La fonction DelayCommand ne semble pas agir...
Quelle bourde ai-je faite ?

PS : Je debute en script depuis hier...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Semcatala
Grand Sage du Conseil
Inscrit le: 20 Jan 2004
Messages: 951
Répondre en citant
Posté le : 25/09/2005 22:13:04 Sujet du message :

essaye de mettre le delay command devant :

NWScript :

DelayCommand(5.0,AssignCommand(oermite,ActionJumpToObject(odestination,0)));
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.

_________________
" La ruse doit être employée pour faire croire que l'on est où l'on est pas, que l'on veut ce qu'on ne veut pas. " CdG
" La véritable école du Commandement est la culture générale. " CdG
" Une société prête à sacrifier un peu de liberté contre un peu de sécurité ne mérite ni l'une ni l'autre et finit par perdre les deux. " B.F
" La gloire se donne seulement à ceux qui l'ont toujours rêvée. " CdG
" La fin de l'espoir est le commencement de la mort. " CdG
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Boine
Novice
Inscrit le: 25 Sep 2005
Messages: 7
Répondre en citant
Posté le : 25/09/2005 22:18:24 Sujet du message :

J'ai essayé ...mais ça ne marche pas mieux...l'ermite est present des que le PC entre...

Merci qd même !!!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Boine
Novice
Inscrit le: 25 Sep 2005
Messages: 7
Répondre en citant
Posté le : 25/09/2005 22:20:49 Sujet du message :

A propos si quelqu'un peut me dire ce que signifie le 0 dans la fonction ActionJumpToObject, c'est bien aussi ...

Merci d'avance !
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Semcatala
Grand Sage du Conseil
Inscrit le: 20 Jan 2004
Messages: 951
Répondre en citant
Posté le : 25/09/2005 22:47:01 Sujet du message :

Excuse moi j'avais mal lu.

En fait tu ne peux pas " retarder " l'entrée d'un pnj dans une zone avec les " transitions classiques " .

Par contre tu peux le detruire quand il entre et le " recréer " quelques secondes plus tard , c'est peut être une solution.
_________________
" La ruse doit être employée pour faire croire que l'on est où l'on est pas, que l'on veut ce qu'on ne veut pas. " CdG
" La véritable école du Commandement est la culture générale. " CdG
" Une société prête à sacrifier un peu de liberté contre un peu de sécurité ne mérite ni l'une ni l'autre et finit par perdre les deux. " B.F
" La gloire se donne seulement à ceux qui l'ont toujours rêvée. " CdG
" La fin de l'espoir est le commencement de la mort. " CdG
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
lylver
Héros
Inscrit le: 08 Avr 2005
Messages: 274
Répondre en citant
Posté le : 25/09/2005 23:06:57 Sujet du message :

J'ai pas réfléchi très loin mais si vous voulez retardez des actions à coup sûr, purgez l'action queue et utilisez des ActionWait. En effet DelayCommand et Action queue ne font pas bon ménage, à priori l'action est mise en queue sans attendre : utilise ça qui est plus direct et n'utilise pas l'action queue.

DelayCommand(5.0,AssignCommand(oermite, JumpToObject(odestination)));
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Boine
Novice
Inscrit le: 25 Sep 2005
Messages: 7
Répondre en citant
Posté le : 26/09/2005 06:24:36 Sujet du message :

Bon ben ça ne marche pas non plus...l'ermite est chez lui des que le PC entre.

Sad
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Ailesnoires
Grand Chevalier
Inscrit le: 21 Oct 2004
Messages: 110
Localisation: Vendée
Répondre en citant
Posté le : 26/09/2005 08:27:33 Sujet du message :

NWScript :
// Jump to oToJumpTo (the action is added to the top of the action queue).
void JumpToObject(object oToJumpTo, int nWalkStraightLineToPoint=1)
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


Comme indiqué, le JumpTo est mis en tête de queue

Je regarde ce qu'on peut faire


Edit : Essaie ça :

NWScript :
object oermite=GetObjectByTag("ermite");
object odestination=GetWaypointByTag("wp_entreeermite");

void main()
{
object oPc = GetEnteringObject();
if (!GetIsPC(oPc)){return;}
DelayCommand(5.0,AssignCommand(oermite,JumpToObject(odestination,0)));
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


Il faut tester si c'est un PJ qui entre sinon le script se lance dès qu'il y a une entrée.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Boine
Novice
Inscrit le: 25 Sep 2005
Messages: 7
Répondre en citant
Posté le : 26/09/2005 09:27:59 Sujet du message :

Ca fonctionne !!!!

Le PC entre dans la maison de l'ermite et quelques secondes plus tard l'ermite deboule et lui demande ce qu'il fout là ?!?

Par contre je n'ai pas bien compris en quoi le fait de vérifier si l'objet entrant est bien un PC active le DelayCommand.
Auparavant aucun objet n'entrait avant le PC...je ne fais que des tests, il n'y a rien d'autre dans le module...

Ailes Noires, si tu peux m'éclairer ?

dans tout les cas, merci de ton aide déjà précieuse !!!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Ailesnoires
Grand Chevalier
Inscrit le: 21 Oct 2004
Messages: 110
Localisation: Vendée
Répondre en citant
Posté le : 26/09/2005 09:51:23 Sujet du message :

je ne sais pas exactement ce que le jeu prend en compte dans ce qui entre dans une zone, des object, la zone elle même? Mais j'ai remarqué que le script se lançait au lancement du jeu
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
lylver
Héros
Inscrit le: 08 Avr 2005
Messages: 274
Répondre en citant
Posté le : 26/09/2005 12:19:25 Sujet du message :

Tout ce qui rentre dans la zone "fires" l'évênement OnEnter
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
lylver
Héros
Inscrit le: 08 Avr 2005
Messages: 274
Répondre en citant
Posté le : 26/09/2005 12:19:51 Sujet du message :

TBD
to be deleted, à effacer
double postage à cause de $£@# de lag (bon j'en dis pas plus)
Dernière édition par lylver le 26/09/2005 21:22:53; édité 2 fois
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Boine
Novice
Inscrit le: 25 Sep 2005
Messages: 7
Répondre en citant
Posté le : 26/09/2005 18:58:22 Sujet du message :

Lylver, je n'ai pas compris tes deux posts...

Comme je l'ai dit plus haut, je suis un grand novice !!!

"fires" ???

TBD ???

Si tu peux m'expliquer ...

merci
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Ailesnoires
Grand Chevalier
Inscrit le: 21 Oct 2004
Messages: 110
Localisation: Vendée
Répondre en citant
Posté le : 26/09/2005 19:25:24 Sujet du message :

pour le premier post il veux dire que tout ce qui entre dans la zone lance le script dans le OnEnter

pour le deuxième heu.....
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Montrer les messages depuis :
Page 1 sur 1 ¤


Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Sauter vers:
FAQ | Rechercher | Liste des Membres | Groupes d'utilisateurs | S'enregistrer | Profil | Se connecter pour vérifier ses messages privés | Connexion
Powered by phpBB 2.* [m] © 2001, 2002 phpBB Group
Theme rewritten in beautiful XHTML code by Baldurien.
Thème "La Bibliothèque de Neverwinter" crée par Kruger
Traduction par : phpBB-fr.com
Page generated in 44.3ms