La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 23/11/2024 15:19:20


  Page 1 sur 3 ¤ Aller à la page 1, 2, 3  Suivante

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
CerberusXt
Novice
Inscrit le: 17 Juin 2004
Messages: 12
Répondre en citant
Posté le : 18/06/2004 13:17:28 Sujet du message : Créer un evenement au bout d'un certains temps de jeu

Je cherche a faire en sorte qu'un compteur s'active en debut de jeu ou bien au cours d'une discussion qui va declencher par exemple une embuscade sur le joueur au bout d'un certains nombre de minutes de jeux.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Bloutiouf
Chevalier
Inscrit le: 18 Jan 2004
Messages: 70
Répondre en citant
Posté le : 19/06/2004 14:24:32 Sujet du message :

Tu peux pour cela utiliser la fonction DelayCommand, dans le script d'arrivée de la zone par exemple, mais en verifiant bien que GetEnteringObject()==GetFirstPC() ( si le mod est solo bien sur, sinon il faut verifier sur l'ensemble des pc mais je ne m'y connais pas en multi Confused )
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Numéro ICQ Ignorer l'utilisateur
 
CerberusXt
Novice
Inscrit le: 17 Juin 2004
Messages: 12
Répondre en citant
Posté le : 19/06/2004 15:29:26 Sujet du message :

je ne suis pas encore tres autonome niveau code, j'arrive a faire des trucs mais il me faut une idee de structure, est ce que tu pourrais me montrer comment structurer cette commande.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Longbow
Grand Sage du Conseil
Inscrit le: 10 Déc 2003
Messages: 638
Localisation: Orléans
Répondre en citant
Posté le : 19/06/2004 15:57:46 Sujet du message :

Hum, hum...

Je te propose une autre solution que celle évoquée par Bloutiouf, car j'ai du mal a voir où placer le script incluant un delayCommand à "long terme"

Ma proposition est un peu sauvage... Tu crées un objet invisible qui servira de compteur avec un test dans son heart beat... D'où l'aspect sauvage du système.

1. Tu crées un objet invisible (ni utilisable, ni statique)... Onglet Placeable/ Divers
2. Tu lui donnes le Tag Compteur
3. Dans ces propriétés/ Script / heart Beat tu places ceci

NWScript :
void main()
{

if (GetLocalInt(OBJECT_SELF, "COMPTEUR") == 10 )
{
SendMessageToPC(GetFirstPC(), "");
ExecuteScript("nomduscript de l'embuscade", OBJECT_SELF);
DestroyObject (OBJECT_SELF, 5.0);
}
// sinon le compteur monte d'un
else
{SetLocalInt(OBJECT_SELF,"COMPTEUR",GetLocalInt(OBJECT_SELF,"COMPTEUR") + 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.


4. Bouton droit sur ton objet invisible d'essai / ajouter à la palette / onglet avancée... tu lui mets comptobj

5. Tu détruis l'original.

6. Tu crées un script pour ton embuscade ou autre évènement déclenché par le compteur. Son nom sera reporté dans le 1e script...
7. Tu crées le script de création du compteur. Dans un dialogue par exemple...
Onglet Actions Conséquentes de la bonne ligne de dialogue....
NWScript :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.


Voila, bon courage
_________________
Rex illeteratus
Quasi Asinus Coronatus
Jean de Salisbury
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Bloutiouf
Chevalier
Inscrit le: 18 Jan 2004
Messages: 70
Répondre en citant
Posté le : 19/06/2004 16:16:01 Sujet du message :

Effectivement c'est aussi une solution, mais ce n'est pas vraiment très temporisé comme truc ( à moins que le onHearthBeat reviens à temporisation précise mais je n'étais pas au courant )

Le script du DelayCommand est à placer dans le onEnter de n'importe quelle zone ( de toute façon, il y a toujours des pnj qui entrent dans toutes les zones aussi ) mais pour une raison de clarté, il serait préférable de la mettre dans celle de la zone pour la rencontre

NWScript :

void rencontre()
{
    // Scripts de la rencontre
}

void main()
{
    if ( GetEnteringObject()==GetFirstPC() )
        DelayCommand(<TEMPS>, rencontre());
}
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.


à changer <TEMPS> par un nombre, le fameux temps à attendre avant l'embuscade ( avec un .0 meme si il n'y a pas de virgule )

Donc là, cela concerne le premier pc à rentrer dans la zone de la rencontre, si tu veux que ce script se mette en place dès la rentrée du premier pc dans le module, il faut plutot mettre une variable locale au module blablabla... mais bordel j'en ai marre que personne me comprenne ! Very Happy
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Numéro ICQ Ignorer l'utilisateur
 
CerberusXt
Novice
Inscrit le: 17 Juin 2004
Messages: 12
Répondre en citant
Posté le : 19/06/2004 21:59:54 Sujet du message :

Je fais un module solo ca devrait sans doute simplifier les choses. Sinon d'apres ce que j'ai compris de vos deux scripts c'est que le decompte ne sera pas globale. C'est a dire que le decompte risque de ne fonctionner que dans une seule et unique zone, hors, moi je voudrais que au bout d'une 20ene de minutes par exemple, quel que soit l'endroit dans lequel se trouve le joueur j'ai déclenchement. J'ai peu etre mal compris et vos script vont fonctionner quand meme, je n'ai pas eu l'occasion de tester. Je vous tiens au courant si ca fonctionne.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Longbow
Grand Sage du Conseil
Inscrit le: 10 Déc 2003
Messages: 638
Localisation: Orléans
Répondre en citant
Posté le : 19/06/2004 22:31:22 Sujet du message :

Hum, hum...
Pour mon hypothèse de travail, 20 minutes = 20x60 secondes = 200 cycles

Le test serait alors:
if (GetLocalInt(OBJECT_SELF, "COMPTEUR") == 200 )
_________________
Rex illeteratus
Quasi Asinus Coronatus
Jean de Salisbury
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Bloutiouf
Chevalier
Inscrit le: 18 Jan 2004
Messages: 70
Répondre en citant
Posté le : 20/06/2004 10:52:00 Sujet du message :

pour donner une valeure globale au script, il faut que tu l'appele dans OnClientEnter des proprietes du module
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Numéro ICQ Ignorer l'utilisateur
 
Muad'Dib Maitre de Dune
Grand Chevalier
Inscrit le: 13 Jan 2004
Messages: 124
Localisation: Dans un petit trou de ver des sable a coté de nice
Répondre en citant
Posté le : 20/06/2004 11:56:23 Sujet du message :

Nan, tu fait ce qu'a dit Longbow, mais dans le OnHeartBeat du module, et pas celui de l'objet invisible.
_________________
Minsc et Bouh sont prets..*Petits bruits de hamster geant miniature*
Rejoignez le Module de Bladur's Gate 2, et jouez sur Dune en arene Smile
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
CerberusXt
Novice
Inscrit le: 17 Juin 2004
Messages: 12
Répondre en citant
Posté le : 20/06/2004 12:32:13 Sujet du message :

donc en gros pas la peine de creer d'objet invisible
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Muad'Dib Maitre de Dune
Grand Chevalier
Inscrit le: 13 Jan 2004
Messages: 124
Localisation: Dans un petit trou de ver des sable a coté de nice
Répondre en citant
Posté le : 20/06/2004 12:33:04 Sujet du message :

Nan
_________________
Minsc et Bouh sont prets..*Petits bruits de hamster geant miniature*
Rejoignez le Module de Bladur's Gate 2, et jouez sur Dune en arene Smile
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Longbow
Grand Sage du Conseil
Inscrit le: 10 Déc 2003
Messages: 638
Localisation: Orléans
Répondre en citant
Posté le : 20/06/2004 15:13:23 Sujet du message :

Hum, hum...


Citation :
dans le OnHeartBeat du module, et pas celui de l'objet invisible.
Atgh... Hérésie... Il faut éviter à tout prix d'impliquer le HB du module... Ca bouffe le système alors qu'une fois le cycle atteint avec un objet tu peux le détruire... Avec le HB du module, le test se fera continuellement...
_________________
Rex illeteratus
Quasi Asinus Coronatus
Jean de Salisbury
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Bloutiouf
Chevalier
Inscrit le: 18 Jan 2004
Messages: 70
Répondre en citant
Posté le : 20/06/2004 15:51:10 Sujet du message :

donc faut prendre ma solution Very Happy
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Numéro ICQ Ignorer l'utilisateur
 
Longbow
Grand Sage du Conseil
Inscrit le: 10 Déc 2003
Messages: 638
Localisation: Orléans
Répondre en citant
Posté le : 20/06/2004 16:14:21 Sujet du message :

Hum, hum...

Sans vouloir froisser ton ego, je ne comprends pas l'utilisation du OnEnter dans une zone. Ca veut dire que l'évènement est dépendant de l'entrée du joueur dans une zone ?? Mais alors, la temporisation n'est plus contrôlée par le scénar mais le déplacement du joueur... Une fois entré dans une zone, pendant combien de temps le script est "actif" (voila une question qui m'interesse à titre personnel), d'autre part, cela implique de coller ce script dans toutes les zones (si j'ai bien saisi).

Encore une fois, nous sommes là pour réfléchir à la meilleure solution et j'ai bien conscience des faiblesses de l'ojet invisible mais au moins il est indépendant des actions du joueur et son cycle se fait toutes les 6 secondes.
_________________
Rex illeteratus
Quasi Asinus Coronatus
Jean de Salisbury
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Bloutiouf
Chevalier
Inscrit le: 18 Jan 2004
Messages: 70
Répondre en citant
Posté le : 20/06/2004 16:16:47 Sujet du message :

pas du OnEnter d'une zone, tu le met dans le OnClientEnter, mais de toute façon, meme si la zone n'est pas affichée, au lancement du module, s'il ya des pnjs, ils activent la procédure OnEnter
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Numéro ICQ Ignorer l'utilisateur
 
Longbow
Grand Sage du Conseil
Inscrit le: 10 Déc 2003
Messages: 638
Localisation: Orléans
Répondre en citant
Posté le : 20/06/2004 16:20:21 Sujet du message :

Donc une temporisation dépendante d'éléments extérieurs ?
_________________
Rex illeteratus
Quasi Asinus Coronatus
Jean de Salisbury
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Bloutiouf
Chevalier
Inscrit le: 18 Jan 2004
Messages: 70
Répondre en citant
Posté le : 20/06/2004 16:23:10 Sujet du message :

Si on place un DelayCommand dans le OnEnterClient du module, ça permet d'executer le script de la rencontre un certain temps après l'arrivée du joueur dans le module, non ?
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Numéro ICQ Ignorer l'utilisateur
 
Longbow
Grand Sage du Conseil
Inscrit le: 10 Déc 2003
Messages: 638
Localisation: Orléans
Répondre en citant
Posté le : 20/06/2004 16:33:17 Sujet du message :

C'est justement la question qui m'interesse... Combieb de temps un script reste-t-il "actif" après son déclenchement... J'ai rencontré ce problème avec des Actions conséquentes qui lancent un script mais dès que le dialogue est fermé, le script s'arrête, idem avec des triggers qui lance un script mais celui ne va pas jusqu'au bout... Et encore, il s'agissait d'actions à court terme (ex: après une phrase, le PNJ s'enfuit...) alors pour plusieurs minutes... je suis perplexe mais interessé par le résultat.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Bloutiouf
Chevalier
Inscrit le: 18 Jan 2004
Messages: 70
Répondre en citant
Posté le : 20/06/2004 16:44:17 Sujet du message :

normalement le script reste jusqu'à tant qu'il soit fini...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Numéro ICQ Ignorer l'utilisateur
 
Longbow
Grand Sage du Conseil
Inscrit le: 10 Déc 2003
Messages: 638
Localisation: Orléans
Répondre en citant
Posté le : 20/06/2004 16:51:36 Sujet du message :

J'attends les conclusions de CerberusXt... En attendant je retourne dans mon volcan... modeler du tileset duegar...
_________________
Rex illeteratus
Quasi Asinus Coronatus
Jean de Salisbury
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Muad'Dib Maitre de Dune
Grand Chevalier
Inscrit le: 13 Jan 2004
Messages: 124
Localisation: Dans un petit trou de ver des sable a coté de nice
Répondre en citant
Posté le : 20/06/2004 17:10:29 Sujet du message :

Faut aussi prendre en compte que le DelayCommand bug au dela d'ine certaine limite. Faudrait demander à Lendraste, mais je pense que c'est environ 30 min max.
_________________
Minsc et Bouh sont prets..*Petits bruits de hamster geant miniature*
Rejoignez le Module de Bladur's Gate 2, et jouez sur Dune en arene Smile
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Bloutiouf
Chevalier
Inscrit le: 18 Jan 2004
Messages: 70
Répondre en citant
Posté le : 20/06/2004 17:36:04 Sujet du message :

Et si on fait un DelayCommand(20.0, DelayCommand(20.0... pour obtenir 40 minutes ? Smile de toute façon 30 min max, c'est suffisant pour les 20 min qu'il voulait
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Numéro ICQ Ignorer l'utilisateur
 
Muad'Dib Maitre de Dune
Grand Chevalier
Inscrit le: 13 Jan 2004
Messages: 124
Localisation: Dans un petit trou de ver des sable a coté de nice
Répondre en citant
Posté le : 20/06/2004 17:38:46 Sujet du message :

Je pencherai plutot pour un ActionWait() déclanché dans le OnEnter d'un trigger/zone deja...
_________________
Minsc et Bouh sont prets..*Petits bruits de hamster geant miniature*
Rejoignez le Module de Bladur's Gate 2, et jouez sur Dune en arene Smile
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Bloutiouf
Chevalier
Inscrit le: 18 Jan 2004
Messages: 70
Répondre en citant
Posté le : 20/06/2004 17:42:13 Sujet du message :

Ce n'est pas une action annodine qu'il veut, du genre ouvrir une porte ou tout ça, mais un ensemble de commandes qui permetraient de faire beaucoup plus de choses, donc un DelayCmd avec un appel de procédure, enfin après faut voir Smile
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Numéro ICQ Ignorer l'utilisateur
 
Muad'Dib Maitre de Dune
Grand Chevalier
Inscrit le: 13 Jan 2004
Messages: 124
Localisation: Dans un petit trou de ver des sable a coté de nice
Répondre en citant
Posté le : 20/06/2004 18:24:10 Sujet du message :

ActionWait suivie de ExecuteScript marche aussi bien...
_________________
Minsc et Bouh sont prets..*Petits bruits de hamster geant miniature*
Rejoignez le Module de Bladur's Gate 2, et jouez sur Dune en arene Smile
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Montrer les messages depuis :
Page 1 sur 3 ¤ Aller à la page 1, 2, 3  Suivante


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 39.206ms