La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 22/09/2024 08:49:50


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
pierrot laLune
Acolyte
Inscrit le: 15 Aoû 2004
Messages: 22
Répondre en citant
Posté le : 19/08/2004 21:39:50 Sujet du message : executer une fonction ou un script a periode d'interval

Salut. voila mon petite probleme.
je suis entrain de monter un system de garde de ville, et j'aimerais payer mes gardes a interval regulier: genre toute les heures. Or pour le meoment je n'ai pas trouver de timer ou autre qui me permette d'excuter un action a interval regulier.
Dons si vous avez une astuce je suis preneur merci beaucoup Smile
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Yoyo
Seigneur
Inscrit le: 31 Aoû 2003
Messages: 223
Répondre en citant
Posté le : 19/08/2004 22:19:12 Sujet du message :

Désolé je peu pas te répondre mais ca te servirait a quoi de payer les gardes (parce que sinon il s'en foute)? Surprised

A moin que tu voudrait que le joueurs les détrousse? Very Happy
_________________
BOUH! (je vous ai fait peur ??) désolé

Vive moi
Pas vive Securom
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
pierrot laLune
Acolyte
Inscrit le: 15 Aoû 2004
Messages: 22
Répondre en citant
Posté le : 19/08/2004 23:21:54 Sujet du message :


Yoyo a écrit :
Désolé je peu pas te répondre mais ca te servirait a quoi de payer les gardes (parce que sinon il s'en foute)? Surprised

A moin que tu voudrait que le joueurs les détrousse? Very Happy
ça sert a quoi? les gardes ce sont les joueurs. et les joueur il aiment bien avoir un peu d'avoir qd il accomplissent une quete ou une action.
d'ou l'utilité.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Archéops
Ecuyer
Inscrit le: 03 Mai 2004
Messages: 55
Répondre en citant
Posté le : 20/08/2004 07:37:00 Sujet du message :

Salut....

Pour lancer un script à intervalles réguliers je vois que le OnHeartBeat de la zone, celui se déclenche toute les 6 secondes. Mais cette solution me paraît trés lourde... Personnellement, j'opterai pour une solution moins encombrante. Par exemple un chef de la garde PNJ qui donnerai une paye aux gardes pnj suivant le temps qu'ils sont resté en faction. Dans le principe ça donne çà :

1° le pj vient voir le chef pour dire qu'il part en patrouille, là je récupère l'heure à laquelle il a pris son service (heure initiale).

2°le joueur est en patrouille

3° il a fini sont tour de garde, il revient voir le chef qui le paye suivant les heure qu'il a fait en faisant heure initiale-heure actuelle.

Voila, par contre si tu tiens à utiliser le OnHeartBeat il faut que tu calcule combien de fois il doit se déclencher avant que une heure dans le jeu soit passée...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
pierrot laLune
Acolyte
Inscrit le: 15 Aoû 2004
Messages: 22
Répondre en citant
Posté le : 20/08/2004 13:21:25 Sujet du message :

ça peut etre une idée interressante. je vais y reflechir. merci beaucoup Smile
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Laxam
Légende vivante
Inscrit le: 12 Avr 2004
Messages: 425
Localisation: Lyon
Répondre en citant
Posté le : 21/08/2004 20:34:30 Sujet du message :

Sinon tu as le NPC activities qui permet d'éxécuter des script à des heures précises...

Tu pourrais par exemple initialiser une variable quand le PJ prend son poste (suite à un dialogue par exemple) et pour un NPC (chef des gardes), tu lui mets le NPC activities qui exécute un script à 14h, 16h, .... ce script peut être le lancement d'un dialogue si la variable a été initialisée et dans ce dialogue, le chef garde paie le PJ... voilà, simple non ?
_________________
Mon site NWN nouvelle version et mon module Boisperdu en ligne ! Et maintenant un FORUM
La première version française de la doc du NPC Activities (version 2.0)
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
pierrot laLune
Acolyte
Inscrit le: 15 Aoû 2004
Messages: 22
Répondre en citant
Posté le : 24/08/2004 01:28:00 Sujet du message :


Laxam a écrit :
Sinon tu as le NPC activities qui permet d'éxécuter des script à des heures précises...

Tu pourrais par exemple initialiser une variable quand le PJ prend son poste (suite à un dialogue par exemple) et pour un NPC (chef des gardes), tu lui mets le NPC activities qui exécute un script à 14h, 16h, .... ce script peut être le lancement d'un dialogue si la variable a été initialisée et dans ce dialogue, le chef garde paie le PJ... voilà, simple non ?
bonne idée. merci je vais faire un trucs comme ça.
Ou ce trouve le NPC activities stp? merci
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
kiky.le.magnifique
Homme très gay
Inscrit le: 19 Sep 2003
Messages: 907
Localisation: Camping de la nation martienne...
Répondre en citant
Posté le : 24/08/2004 08:18:01 Sujet du message :

Bonjour,

Comme indiqué dans la signature de Laxam,
le NPC ACTIVITIES 5.5 se trouve -> ici...
(tout en bas de la page...)

Bon courage et à plus. Cool
_________________
http://perso.wanadoo.fr/kikitor | Deviant Art | www.VistaEntraide.com | CCLLSELFV! | D-lire_K | Viendez rêver au Pays des fées... | Ne taquinez pas l'admin!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
pierrot laLune
Acolyte
Inscrit le: 15 Aoû 2004
Messages: 22
Répondre en citant
Posté le : 24/08/2004 11:36:23 Sujet du message :


kiky.le.magnifique a écrit :
Bonjour,

Comme indiqué dans la signature de Laxam,
le NPC ACTIVITIES 5.5 se trouve -> ici...
(tout en bas de la page...)

Bon courage et à plus. Cool
c clair j'avais pas vu la sign de laxam ^^
je pensais que c'etait une fonction de nwn ^^
merci
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
k0rvet
Ecuyer
Inscrit le: 24 Nov 2003
Messages: 67
Répondre en citant
Posté le : 25/08/2004 11:31:12 Sujet du message :

Une autre solution consisterait à utiliser la queue d'action d'un PNJ "compteur" pour réaliser tout ça. C'est vraiment ultime comme solution. Pour plus de précision, des éléments de réponse ici (pour la queue d'action et meme un peu plus) et par là (pour une idée sur les timers) Neuneu à lunette
Ca peut paraitre rébarbatif comme procédé au début, mais c'est super efficace.
_________________
Moi j'dis ca, mais bon j'dis rien hein?
..:: Les Chroniques de la Terre du Milieu ::..
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
pierrot laLune
Acolyte
Inscrit le: 15 Aoû 2004
Messages: 22
Répondre en citant
Posté le : 25/08/2004 13:05:11 Sujet du message :

j'etait entrain de penser a une fonction recursive qui lancereais un Delaycommand de cette fonction. ainsi tout les interval de temps j'ai une action a executer. mais c un peu barbare aussi. je vais regarder aussi ta solution ^^
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
pierrot laLune
Acolyte
Inscrit le: 15 Aoû 2004
Messages: 22
Répondre en citant
Posté le : 25/08/2004 14:49:25 Sujet du message :

Bon voila ma solution apres quelque test rapide ça marche j'ai codé ça en speed ^^
Voila mon timer maison

NWScript :

//:Confused///////////////////////// /////////////////////
//:: Timer
//:: pier_lib_timer.nss
//:: Copyright (c) 2001 Bioware Corp.
//:Confused///////////////////////// ////////////////////
/*
    cette bibliotheque permet d'executer un script
    a interval regulier.
*/

//:Confused///////////////////////// ////////////////////
//:: Created By: pierrot laLune
//:: Created On: 25 Aout 2004
//:Confused///////////////////////// ////////////////////

//:Confused///////////////////////// /////////////////////
//:: Timer
//:: Copyright (c) 2001 Bioware Corp.
//:Confused///////////////////////// ////////////////////
/*
  cette fonction recursive est appele par TimerStart.
  ATTENTION: les seules fonctions qui sont a
              utiliser dans cette bibliotheque
              sont TimerStart et TimerStop
*/

//:Confused///////////////////////// ////////////////////
//:: Created By: pierrot laLune
//:: Created On: 25 Aout 2004
//:Confused///////////////////////// ////////////////////
void Timer(string sName ,float fSeconds,string sScript, object oTarget){
    if(GetLocalInt(oTarget,sName)){
        ExecuteScript(sScript,oTarget);
        DelayCommand(fSeconds,Timer(sName,fSeconds,sScript,oTarget));
    }
}

//:Confused///////////////////////// /////////////////////
//:: Timer
//:: Copyright (c) 2001 Bioware Corp.
//:Confused///////////////////////// ////////////////////
/*
  Cette fonction permet de lancer un nouveau timer
*/

//:Confused///////////////////////// ////////////////////
//:: Created By: pierrot laLune
//:: Created On: 25 Aout 2004
//:Confused///////////////////////// ////////////////////
void TimerStart(string sName // le nom du Timer
                , float fSeconds // l'interval en seconds
                , string sScript // le script a executer
                , object oTarget // la cible du script
                ){
    SetLocalInt(oTarget, sName ,1);
    DelayCommand(fSeconds,Timer(sName,fSeconds,sScript,oTarget));
}
//:Confused///////////////////////// /////////////////////
//:: TimerStop
//:: Copyright (c) 2001 Bioware Corp.
//:Confused///////////////////////// ////////////////////
/*
  Cette fonction permet d'arreter de faon naturelle
  un timer
*/

//:Confused///////////////////////// ////////////////////
//:: Created By: pierrot laLune
//:: Created On: 25 Aout 2004
//:Confused///////////////////////// ////////////////////
void TimerStop(string sName // le nom du Timer
              , object oTarget // la cible est est stocker le nom du timer
              ){
    SetLocalInt(oTarget, sName ,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.


voial c'est assez simple on demmare le script que l'on veux executer a interval regulier avec TimerStart et on l'arrete avec TimerStop.

toute signslisation de bug est la bien venu. ou evidament toute ammelioration potentiel.
voila.
 
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 39.97ms