La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
FAQ
Rechercher
Liste des Membres
Groupes d'utilisateurs
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
La date/heure actuelle est 23/11/2024 17:43:00
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
Voir le sujet précédent ¤ Voir le sujet suivant | |
---|---|
Auteur | Message |
mork Seigneur Messages: 205 Localisation: A landeda, pres de brest |
Salut
Je viens de faire une auberge, voila ce que j'aimerais qu'elle ait de spécial : J'aimerais que l'auberge ne s'ouvre que la nuit a partir de 21 heures (dans le module). Le tag de la porte est : "ci_porte_aub_001". Il faudrait donc que la porte, verrouillée au début, soit ouverte a partir de 21 heures dans le mod jusqu'à 10heures du mat ^^, et l'aubergiste, a cette heure, dise "Allez hop ! Tout le monde dehors !" et que les PJs présents dans l'auberge soient téléportes au waypoint ou au trigger "ci_dehors". Voila, si on me dit encore "débrouille toi pour faire ton script, on te donnera pas de scripts tout fait", je pense que cette partie du forum ne sert plus a rien a par a demander les fonctions ... Mais quand on est nuls en scripts, on n'y peut rien .... _________________ Aléthéia | Ceux qui cherchent la vie trouveront la mort, ceux qui cherchent la mort trouveront la mort |
Revenir en haut | |
Semcatala Grand Sage du Conseil Messages: 951 |
Qu'as tu essayé qui n'a pas fonctionné ?
Quelles étaient tes idées pour essayer de faire un truc qui fonctionne ? T'as repéré des fonctiones que tu as essayé d'utiliser sans succés ? As tu essayé de faire chaque chose séparément ( porte qui se verouille selon l'heure , ejection des pj de l'auberge d'une part , et selon l'heure par la suite ) , avant de tout faire d'un coup ? Si tu débute en script , je te conseille de commencer par des trucs faciles , des trucs de base , décompose le truc compliqué que tu veux faire en plusieurs petits trucs simples , et pose des questions sur chacun de ces trucs séparément. D'une part pour toi ça sera plus compréhensible , et d'une autre part , les gens qui liront ton message auront moins l'impression de voir en toi un mec du genre " je déballe mon cahier des charges et bossez pour moi les mecs ! ". Et puis aussi si tu pose une question compliqué ça demande une réponse aussi longue , temps dont les gens ne disposent pas forcément , donc ils choisissent de ne pas te répondre , alors que si tu pose plusieurs questions simples auxquelles on peut répondre facilement et rapidement , tu as plus de chances d'avoir des réponses. Comme je suis dans un bon jour , je te file le script pour que ta porte soit verouillee ou deverouille selon l'heure , parcequ'aprés j'ai sommeil , je vais au dodo ... A mettre dans le OnHeartBeat de la porte ... pour que la porte soit deverouille de 00H00 jusqu'a 8H00 du mat , et verouille de 8H00 du mat jusqu'a 00H00 , tu adaptera toi même. NWScript :
void main() { int heure = GetTimeHour(); if( heure < 8 ) { SetLocked(OBJECT_SELF,FALSE); } if ( (heure >= 8 )) { SetLocked(OBJECT_SELF,TRUE); } if(GetIsOpen(OBJECT_SELF)) { DelayCommand(15.0,ActionCloseDoor(OBJECT_SELF)); } } Sinon je te confirme que les gens du forum sont bénévoles et ne sont pas là pour faire les scripts a ta place , chacun a son caractére et ses humeurs , et personne n'a l'obligation de te répondre. Et quand on es nul ( comme moi au début , maintenant je suis "bof " , y a du progrés ! ) , c'est normal , c'est le début , on a tous commencé comme ça , mais ne dit pas que tu n'y peut rien , tu peux aller lire et bosser sur des tutoriaux sur le net et t'améliorer. Allez , je te file un lien : [http] Si avec ça tu te débrouille pas pour t'améliorer , je me tire une balle ! _________________ " 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 | |
L'Erudit Seigneur Messages: 167 |
Salut ! J'ai ressenti un peu la même chose que toi Semcatala; c'est dingue comme certaine personne exigent des autres qu'elles leur fournissent ce dont elles ont besoin sans meme l'ombre d'un remerciement, et plustôt des phrases du genre: "t'as de la chance que je te l'ai demandé à toi".
|
Revenir en haut | |
mork Seigneur Messages: 205 Localisation: A landeda, pres de brest |
D'abords, merci Semcatala.
... ensuite je dit pas "toi ! va me faire ca !" ou des trucs dans le genre, ou alors j'ai pas remarqué ... ce qui m'etonnerais. Et après j'oblige personne a les faire, les scripts. Et désolé de te contredire l'Erudit, mais quand on me fait un script, je remercie toujours, sauf une fois ou je m'été absenté quelques jours et apres je suis revenu trop tard pour remercier ........ _________________ Aléthéia | Ceux qui cherchent la vie trouveront la mort, ceux qui cherchent la mort trouveront la mort |
Revenir en haut | |
L'Erudit Seigneur Messages: 167 |
Ne te sens pas personnellement visé. Simplement, j'ai remarqué ça plusieurs fois, et je tenais à le faire remarquer.
|
Revenir en haut | |
Ivellios Légende vivante Messages: 447 Localisation: Poitiers |
Ici il y a de quoi gérer les évènements à horaires précis, il te suffit juste de bien le mettre et de faire tes petits scripts au momment venu.
_________________ Scripts, systèmes, fonctions,... c'est par ici... Pyjama pour castor, une vocation, un avenir sûr |
Revenir en haut | |
lylver Héros Messages: 274 |
mork a écrit : /.../ Voila, si on me dit encore "débrouille toi pour faire ton script, on te donnera pas de scripts tout fait", je pense que cette partie du forum ne sert plus a rien a par a demander les fonctions ... Mais quand on est nuls en scripts, on n'y peut rien .... 1) As-tu fait des recherches sur les sujets du forum pour trouver quelque chose d'équivalent? Je rappelle la petite note qui apparait à chaque fois que vous postez : Citation : [Avez-vous effectué une recherche avant de poster ?] => ce comportement est innacceptable : on lit les tutoriels, on fait ses premières bourdes, on poste ses bétises pour se faire aider. Bref on cherche à apprendre, mais on ne poste pas son problème au petit bonheur la chance. 3) Sur ce forum, on donne de l'aide dans la mesure ou on a le temps de le faire : les conseils ne prennent pas forcément la forme d'un script tout fait. Pour ma part : je ne réponds pas aux questions spécifiques sur le forum, lorsque cela devient très précis je l'ai fait et je le fait encore en Message Personnel. Je poste donc dans l'idée que cela serve et reserve à plusieurs. La lisibilité du forum est importante : évitons de flooder sinon on ne s'y retrouve plus. J'espère que cette agitation inutile est close. |
Revenir en haut | |
mork Seigneur Messages: 205 Localisation: A landeda, pres de brest |
J'ai deja lu des tutoriaux ... j'arrive a fire des tout petit scripts ... mais les gros je peux pas les faire ...... c'est pour ca que je les demande ...
Après j'oblige personne a faire les scripts que j'aimerais bien avoir ..... Et vu que ce sujet a pas l'air de plaire a beacoup de monde, si un modo voudrait bien le supprimer, merci. P.S, j'ai fait des recherches, tu peux les faire toi meme, il n'y a rien la dessus ... _________________ Aléthéia | Ceux qui cherchent la vie trouveront la mort, ceux qui cherchent la mort trouveront la mort |
Revenir en haut | |
L'Erudit Seigneur Messages: 167 |
A quoi ca servirait de le supprimer ? Ce n'est pas comme ca que tu vas pouvoir recevoir ton script... Si j'ai le temps, j'essaie de voir ce que je peux faire, mais je ne te promets rien.
Sinon, va voir dans le nouveau topic "Aide pour réaliser ses propres scripts" que j'ai ouvert. Il y a beaucoup de liens très utiles. |
Revenir en haut | |
L'Erudit Seigneur Messages: 167 |
Voilà le script. Après plus de 6 heures de travail acharné, je pense qu'il devrait fonctionner. Néanmoins, si vous avez des remarques concernant son amélioration, n'hésitez pas.
Je suis allé un peu plus loin que la demande pour créer un script digne de ce nom, mais je n'ai pas ajouté de sons aux réactions du tavernier, donc si tu en veux mork, demande moi. Par fatigue encore, je n'ai pas commenté le script, mais encore une fois, si tu le souhaites, je le ferais plus tard. P.S.: script revu, et corrigé (voir plus bas). Dernière édition par L'Erudit le 20/01/2006 12:32:07; édité 1 fois
|
Revenir en haut | |
mork Seigneur Messages: 205 Localisation: A landeda, pres de brest |
Salut et merci beaucoup l'Erudit.
J'ete pas venu sur mon post depuis hier sinon je t'aurais dit que c'était pas la peine et que j'allais essayer de faire le script tout seul bien qu'il soit compliqué, mais ce script va beaucoup me servir et encore merci d'avoir prit du temps pour faire le script. Juste une question, faut il que je mettes aussi le script de Semcatala ??? @+ et encore merci l'Erudit. Mork _________________ Aléthéia | Ceux qui cherchent la vie trouveront la mort, ceux qui cherchent la mort trouveront la mort |
Revenir en haut | |
Semcatala Grand Sage du Conseil Messages: 951 |
Mon script est totalement indépendant de n'importe quel autre script , il est pladé dans le onheartbeat de la porte et verifie toutes les 6 secondes l'heure , et verouille ou deverouille la porte en conséquence.
Je t'ai modifié le script , il permet maintenant de verouiller la porte de 8H00 du matin inclu jusqu'a 21H non inclu , et de deverouiller la porte de 21H inclu jusqu'a 8H non inclu. NWScript : void main() { int heure = GetTimeHour(); if( heure < 21 ) if( heure >= 8 ) { SetLocked(OBJECT_SELF,TRUE); } if ( (heure >= 21 )) if ( (heure < 8 )) { SetLocked(OBJECT_SELF,FALSE); } if(GetIsOpen(OBJECT_SELF)) { DelayCommand(30.0,ActionCloseDoor(OBJECT_SELF)); } } _________________ " 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 Dernière édition par Semcatala le 19/01/2006 19:08:41; édité 1 fois
|
Revenir en haut | |
Ivellios Légende vivante Messages: 447 Localisation: Poitiers |
Ivellios a écrit : Ici il y a de quoi gérer les évènements à horaires précis, il te suffit juste de bien le mettre et de faire tes petits scripts au momment venu. Je ne veux pas radoter mais je vous jure que c'est simple..._________________ Scripts, systèmes, fonctions,... c'est par ici... Pyjama pour castor, une vocation, un avenir sûr |
Revenir en haut | |
Semcatala Grand Sage du Conseil Messages: 951 |
Ivellios> Hummm .... bien sûr ça fonctionne et c'est simple au départ , mais j'ai peur que lorsqu'un module grandit , ce script ne devienne rapidement illisible et ne regrouppe trop de choses qui n'ont pas forcément lieu de se trouver regroupées sur le même script.
Si tu n'as que peu de pnj et peu d'objets a gérer ça va , mais si tu commence a avoir beaucoups d'objets et de pnj , ce script risque de devenir énorme ! _________________ " 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 | |
Anthraxcite Légende vivante Messages: 372 Localisation: Belgique |
Tu peux toujours utilisé un ExecuteScript et simuler un TagBasedScripting mais basé cette fois sur le système, il ne resterait plus alors qu'un script par système et une ligne dans le timer par système. Par contre si tu as beaucoup d'objet et de PNJ qui fonctionne avec ton ohb là ça peut devenir très lourd.
Un chose à laquelle je viens de pensé aussi, c'est en cas d'utilisation du timer pour une tache incluant par exemple plusieurs plaçables(exemple toutes les portes devant se fermer le soir et s'ouvrir le matin), c'est la première fois d'aller les rechercher grâce à leurs Tags mais d'ensuite les enregistrer en un quasi-tableau grâce à SetLocalObject (genre : "porteauto_"+i, on boulce ensuite jusqu'à OBJECT_INVALID), on aurait ainsi des références directes plutot que des recherches sur tout le module.(je l'aurais bien dévelloper en extension du timer mais j'ai plus nwn..). |
Revenir en haut | |
Semcatala Grand Sage du Conseil Messages: 951 |
Anthraxcite> Tu as raison , il faut économiser les ressources , c'est la raison pour laquelle sur les ohb que j'utilise je met de plus en plus souvent une condition au début du script du ohb pour vérifier si il est bien utile ou pas de lancer TOUT le script du ohb.
Par exemple , vérifier si il y a des joueur dans la zone ou se trouve l'objet qui posséde un ohb qui peut être lourd , si il y a un joueur par là et si les conditions sont réunies pour que l'execution du script ai une uttilité , alors le script se lance entiérement , si il n'y a personne ou si les conditions ne necessitent pas l'execution du script en entier , alors un gentil petit " return " viendra arreter l'execution de ce script et par la même occasion la consomation de ressources. Un ohb bien conçu peut rendre de grands service a conditions d'avoir prévu d'abréger ses nombres de cycles d'execution quand ils ne sont pas utiles. D'ailleurs je vais poster a ce sujet ... _________________ " 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 | |
L'Erudit Seigneur Messages: 167 |
J'apporte quelques modifications au système. Je supprime l'ancien script, pour éviter toute confusion.
Ces modifications sont: - Ajout d'un nouveau script qui gère l'ouverture et la fermeture de la porte, selon qu'il fait nuit ou qu'il fait jour - Correction du script initial - Nouvelle correction et ajout de commentaires (28/01/2006) - Nouvelle correction/simplification, merci Sith (29/01/2006) NWScript :
/* - Ce script doit etre place dans le OnUserDefined du tavernier.
- Dans le OnSpawn du tavernier, supprimer les "//" precedants la ligne: "SetSpawnInCondition(NW _FLAG_PERCIEVE_EVENT);", puis sauvegarder le script sous un nouveau nom. - Ajouter un Waypoint ayant pour tag "ci_dehors" a la sortie de la taverne. - Ce systeme permet de gerer la fermeture d'une taverne. Lorsque le jour arrive, et si un PJ est percu, la taverne va fermer apres quelques avertissements du tavernier. Tous les PJ presents a ce moment, seront sortis. */ void main() { object oPJ = GetLastPerceived(); if (!GetIsPC(oPJ)) return; int m = GetTimeHour(); int o = 18-m; int nEvenement = GetUserDefinedEventNumber(); if (nEvenement == 1002 && GetIsDay() == TRUE) { object oTavernier = OBJECT_SELF; if (GetLocalInt(oTavernier, "Fermeture") == TRUE) return; object oSortie = GetWaypointByTag("ci_dehors"); string sFermeture = "La Taverne va fermer, elle reouvrira dans "+IntToString(o)+" heures !"; string sAurevoir = "Allez, hop ! Tout le monde dehors !"; string sSortie = "La Taverne ferme. Revenez en soiree !"; int nFatigue = ANIMATION_LOOPING_PAUSE_TIRED; int nAurevoir = ANIMATION_LOOPING_TALK_FORCEFUL; int nFermeture = ANIMATION_LOOPING_CONJURE2; int nFCT = CREATURE_TYPE_PLAYER_CHAR; int nFCV = PLAYER_CHAR_IS_PC; int nSCT = CREATURE_TYPE_IS_ALIVE; int nSVT = TRUE; object oPJ = GetNearestCreature(nFCT, nFCV, oTavernier, 1, nSCT, nSVT); location lPJ = GetLocation(oPJ); location lSortie = GetLocation(oSortie); ClearAllActions(); ActionMoveToLocation(lPJ); ActionSpeakString(sFermeture); DelayCommand(0.1f, ActionPlayAnimation(nFatigue, 1.0f, 3.0f)); DelayCommand(3.1f, ActionMoveToLocation(GetLocation (GetNearestCreature(nFCT, nFCV, oTavernier, 2, nSCT, nSVT)))); DelayCommand(10.0f, ActionSpeakString(sFermeture)); DelayCommand(10.1f, ActionPlayAnimation(nAurevoir, 1.0f, 3.0f)); DelayCommand(13.1f, ActionMoveToLocation(GetLocation (GetNearestCreature(nFCT, nFCV, oTavernier, 3, nSCT, nSVT)))); DelayCommand(20.0f, ActionSpeakString(sFermeture)); DelayCommand(20.1f, ActionPlayAnimation(nAurevoir, 1.0f, 3.0f)); DelayCommand(23.1f, ActionMoveToLocation(GetLocation (GetNearestCreature(nFCT, nFCV, oTavernier, 4, nSCT, nSVT)))); DelayCommand(30.0f, ActionSpeakString(sAurevoir)); DelayCommand(30.1f, ActionPlayAnimation(nFermeture, 1.0f, 3.0f)); SetLocalInt(oTavernier, "Fermeture", TRUE); int n; for (n = 1; oPJ != OBJECT_INVALID; n++) { oPJ = GetNearestCreature(nFCT, nFCV, oTavernier, n); if (GetArea(oPJ) != GetArea(oTavernier)) continue; DelayCommand(IntToFloat(n)+33.0f, AssignCommand(oPJ, JumpToLocation(lSortie))); DelayCommand(IntToFloat(n)+33.1f, SendMessageToPC(oPJ, sSortie)); } } } NWScript :
/* - Ce script est a placer dans le OnEnter d'un trigger
en face de la porte d'entree de la Taverne. - Remplacer "TagPorte" */ void main() { // Si la creature qui s'approche n'est pas un PJ, // le script s'arrette object oPJ = GetEnteringObject(); if (!GetIsPC(oPJ)) return; object oPorte = GetObjectByTag("TagPorte"); // S'il fait jour, if (GetIsDay()) { // la porte de la Taverne est ouverte SetLocked(oPorte, TRUE); } // Par contre, s'il fait nuit, else if (GetIsNight()) { // la porte de la Taverne est fermee SetLocked(oPorte, FALSE); } } NWScript : /* Ce script est a placer dans le OnFailToOpen de la porte d'entree */ void main() { // Si la creature qui ouvre la porte n'est pas un PJ, // le script s'arrette object oPJ = GetClickingObject(); if (!GetIsPC(oPJ)) return; // La Taverne est fermee string sFermee = "La Taverne est fermee, et personne ne vous repond. D'apres l'ecriteau, il semblerait qu'elle n'ouvre qu'en soiree."; SendMessageToPC(oPJ, sFermee); } Dernière édition par L'Erudit le 29/01/2006 13:07:30; édité 8 fois
|
Revenir en haut | |
mork Seigneur Messages: 205 Localisation: A landeda, pres de brest |
Ok, merci l'Erudit,
Juste une petite question, le "TagTavernier" faut le remplacer par quoi, merci @+ et encore merci _________________ Aléthéia | Ceux qui cherchent la vie trouveront la mort, ceux qui cherchent la mort trouveront la mort |
Revenir en haut | |
L'Erudit Seigneur Messages: 167 |
La réponse est dans ta question !
Si tu rencontres des bugs, n'hésite pas à les signaler. |
Revenir en haut | |
mork Seigneur Messages: 205 Localisation: A landeda, pres de brest |
A oui lol, je suis vraiment un gros .
J'avais vraiment posé cette question sans reflechier Bon en tous cas merci ! _________________ Aléthéia | Ceux qui cherchent la vie trouveront la mort, ceux qui cherchent la mort trouveront la mort |
Revenir en haut | |
Sith Vicious Grand Sage du Conseil Messages: 693 |
Ca doit pas trop marcher je pense, les valeurs données pour les DelayCommand sont énormes dans le 2ème script du genre environ 12 heures IRL pour le dernier, ça fait un peu beaucoup non ?
GetTimeSecond et GetTimeMinute sont des fonction traitres, en fait elles donnent le temps écoulé depuis le dernier changement d'heure dans le jeu. C'est à dire, si le module est lancé et qu'il est 12 heures dans le jeu les valeurs sont : GetTimeHour = 12 GetTimeMinute = 0 GetTimeSecond = 0 Prenons comme exemple 3 minutes IRL par heure de jeu. Si on reprends les valeurs 2 minutes et 30 secondes plus tard on aura : GetTimeHour = 12 GetTimeMinute = 2 GetTimeSecond = 30 Si on refait la même une minute après (soit 3 minutes 30 après le lancement) ça donne : GetTimeHour = 13 GetTimeMinute = 0 GetTimeSecond = 30 et ainsi de suite. |
Revenir en haut | |
L'Erudit Seigneur Messages: 167 |
Ah, je ne pensais pas que c'était des temps IRL !
Evidemment, dans ce cas ca fait beaucoup... Il faut donc convertir toutes les valeurs en temps de jeu, mais evidemment, ca dépend de la vitesse d'écoulement du module . Je vais voir ça ! P.S.: @mork désolé pour toutes ces corrections, j'editerais mon post avec la version (re)corrigée. Merci pou rm'avoir signalé l'erreur Sith ! |
Revenir en haut | |
Sith Vicious Grand Sage du Conseil Messages: 693 |
De rien on est là pour ça.
Si ça peut t'aider, pense à la fonction HoursToSecond() (en gros si tu remplace tes 3600.0 par HoursToSeconds(1) ça devrait être bon pour ça) |
Revenir en haut | |
mork Seigneur Messages: 205 Localisation: A landeda, pres de brest |
-> @ l'Erudit : Lol, c'est pas grave, c'est deja sympas d'avoir fait le script donc si y'a une erreur je t'en voudrais pas .
_________________ Aléthéia | Ceux qui cherchent la vie trouveront la mort, ceux qui cherchent la mort trouveront la mort |
Revenir en haut | |
L'Erudit Seigneur Messages: 167 |
Post édité. Je pense que cela devrait marcher (sous confirmation des maîtres scripteurs présents). Néanmoins, je me demande s'il n'y aurait pas moyen d'améliorer la gestion du temps.
Je m'explique, les fontions "GetTime[...]" ne retournent que les valeurs correspondant à leur type: Hour, Minute, Second, Millisecond. Or supponsons que nous souhaitions obtenir l'heure (Hour: à ne pas confondre avec le terme d'heure du langage courant qui informerait non seulement sur l'heure proprement dite, mais aussi sur les minutes, voire les secondes parfois ). Le test s'il est effectué au moment précis du passage à l'heure, retournera exactement la même valeur jusqu'à 1 minute et 59 secondes après. Exemple: A 15h00 (IRL), l'heure du module (IG) est 12 exactement. A 15h01 (IRL), on teste l'heure du module (IG) avec GetTimeHour qui retourne la valeur 12. De même après 59 secondes (IRL), la valeur retournée (IG) sera toujours 12. Ceci pose un problème de précision horaire. Je pense qu'il est possible de construire une fonction qui prenne en compte une heure, constituée non seulement des heures, mais aussi des minutes, voire des secondes (bien qu'à l'échelle du temps réel (IRL), elle représente un laps de temps très court, et donc négligeable). Puis, de permettre une conversion des heures en temps de jeu (IG), en valeurs réelles (IRL), afin de permettre une utilisation plus intuitive des "DelayCommand". |
Revenir en haut | |
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
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