La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 05/12/2024 03:34:49


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Djezebel
Héros
Inscrit le: 29 Sep 2005
Messages: 252
Répondre en citant
Posté le : 01/01/2006 17:50:36 Sujet du message : [Réponses] Quêtes chronométrées

Question qui me vient à l'esprit :
Est-il possible de faire une quête chronométrée ?

C'est à dire par exemple :
Un PNJ donne un objet à apporter à un autre PNJ dans les 5 minutes irl.
Est-ce possible sans être trop lourd ?

(Merci Enki Sith Vicious de ta réponse par avance Wink)
Dernière édition par Djezebel le 01/01/2006 21:09:09; édité 2 fois
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 01/01/2006 20:31:24 Sujet du message :

(désolé c'est pas Enki Cool)

Je vois 2 types de solutions :

-soit un timer tout simple :

quand tu lances la quête et que tu donnes l'objet, dans le script ajoute :
NWScript :

object oPC = GetPCSpeaker();
fDelay = 300.0; //pour 5 min
SetLocalInt(oPC,"QUETECOLISSIMO",TRUE);
DelayCommand(fDelay,DeleteLocalInt(oPC,"QUETECOLISSIMO"));

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.

en ajustant la definition d'oPC si c'est pas dans un dialogue et fDelay.
Et ensuite tu verifies dans le script de réception que la variable est toujours vraie, donc que le joueur a réalisé la quete dans le temps imparti.

-En codant le temps. C'est moins lourd, puisque ça n'utilise pas de timer, mais surtout ça te permet d'avoir une mesure du temps écoulé entre 2 évenements (par ex. si tu veux ajuster la récompense en fonction du temps écoulé)

j'utilise cette fonction :
NWScript :

///renvoie l'heure depuis l'heure 0
//en dizieme d'heure
int SvGetModuleTime();
int SvGetModuleTime()
{
    int nTime = GetTimeMinute()*60+GetTimeSecond();
    nTime = FloatToInt(nTime*10/HoursToSeconds(1)) ;
    nTime += GetTimeHour()*10;
    nTime += GetCalendarDay()*240;
    nTime += GetCalendarMonth()*28*240;
    nTime += GetCalendarYear()*12*28*240;
    return nTime; //en heures/10
}
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.


Tu l'utilises en mettant une varible sur le joueur au début de la quete :
NWScript :

object oPC = GetPCSpeaker();
SetLocalInt(oPC,"QUETECOLISSIMO",SvGetModuleTime());
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.



Et a l'arrivée tu détermines le nombre d'heures de jeu écoulées par :
NWScript :

object oPC = GetPCSpeaker();
int nCurrentHour = SvGetModuleTime();
int nHeuresEcoulees = (nCurrentHour-GetLocalInt(oPC,"QUETECOLISSIMO"))/10;

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.


si tu veux le temps en temps réel fais :
NWScript :

int nSecondes = nHeuresEcoulees*HoursToSeconds(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.


Voila si ça peut t'aider. La fonction tu la colles dans une biblio ou tu la recopies en tête de script quand tu l'utilises. Je sais pas trop dans quelles conditions tu veux utiliser tout ça donc je te donne que des indications et des bouts de script, j'espère que ca t'ira.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Djezebel
Héros
Inscrit le: 29 Sep 2005
Messages: 252
Répondre en citant
Posté le : 01/01/2006 21:07:42 Sujet du message :

Merci beaucoup Sith Vicious ! Smile
C'est exactement l'aide que je cherchais !
Je ne savais pas si c'était possible et maintenant je suis renseignée Smile

Bonne année à toi Smile

PS : Pour la dernière phrase, c'est juste que ces derniers temps c'était toujours Enki qui répondait en premier Razz
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Enki
Légende vivante
Inscrit le: 06 Déc 2005
Messages: 432
Répondre en citant
Posté le : 02/01/2006 04:04:26 Sujet du message : Qui part à la chasse, perd sa place ...

Bonsoir à Djezebel et Sith Vicious, et bonne année à vous deux !

Je me suis absenté un jour...
Un misérable petit jour; je suis parti dans les montagnes, retrouver la vie naturelle et les humains non-virtuels ... Et que vois-je quand je reviens :


Citation :
(Merci Enki Sith Vicious de ta réponse par avance Wink)
et :


Citation :
(désolé c'est pas Enki Cool)
et enfin :


Citation :
PS : Pour la dernière phrase, c'est juste que ces derniers temps c'était toujours Enki qui répondait en premier Razz

Les commentaires passent encore, le fait que l'on ai barré mon nom ostensiblement, à la rigueur, mais les petits trucs jaunes ridicules, surtout celui avec un sourire narquois !

Ah, ça, vous en voulez des smilies, je vais vous en donner : Mad et Evil or Very Mad et Rire maléfique

Bon, blague à part Razz , c'est vrai que j'ai un peu "squatter" le forum ces derniers jours, mais j'avais besoin de me changer les idées, avant la reprise et les examens.
La fonction de Sith Vicious, int SvGetModuleTime(); est particulièrement intéressante, bon boulot, en fait, j'en avais besoin dans une de mes quêtes. D'ailleurs, je pense à une chose que l'on pourrait soumettre aux administrateurs du forum : un endroit où les membres pourraient poster leurs fonctions avec une brève description, mais sans qu'il y ai d'autres scripts, juste des fonctions pour ne pas "encombrer" la recherche.
J'espère qu'un tel endroit n'existe pas déja, sinon j'aurai vraiment l'air d'être un Boulet ! .

Bon, allez, il est temps de dormir. A bientôt !
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 02/01/2006 10:23:05 Sujet du message :

Mais j'aime bien les sourires narquois !!! Very Happy

C'est vrai j'avions oublié :Bonne Année à Tout le monde A boire
 
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 48.281ms