
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.







La date/heure actuelle est 01/05/2025 06:10:59
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 |
Baldurien L'homme qui chutait sur le macadam ![]() Messages: 14070 Localisation: Quadran Alpha |
![]() Bon, ça va vous paraître con, mais j'en ai besoin:
j'utilise l'événement OnPlayerRested qui démarre quand on clique sur le bouton repos, et finit quand on annule le repos ou quand le repos se finit (logique!) Quand le repos commence, je stocke le nombre de points de vie du personnage dans une variable "i". Quand le repos se finit ou est interrompu, je vérifie que cette variable est définie, et si oui , je fais le calcul suivant: (avec j points de vie du perso après repos) Heure écoulée = 8*((j - i)/i); Jusque là rien de sorcier: sauf que Neverwinter me broute le chou pour des questions de flottant (je peux mettre 8.0 aussi) et il me semble bien qu'il calcule mal vu que par exemple: Heure écoulée = 8*((100-30)/100) = 2.4 Ce qui fonctionne mal dans le jeu (me semble, me rappelle plus, de plus, ce calcul je sais le faire, il faut juste convertir les variables en flottants avant vu que nwn n'a pas l'air de faire les conversions implicites. Le truc, c'est que 2.4 indique qu'il y a aussi des minutes qui se sont écoulées et donc je dois faire le calcul suivant: Minute écoulée = PartieDecimaleDe(2.4) * 60; Minute écoulée = PartieEntièreDeMinute écoulée ); avec PartieDecimaleDe(2.4) = 0.4 Aussi, je dois retirer cette même partie décimale car par exemple 2.6 la conversion en entier de 2.6 me donnerait 3, alors que seulement deux heures et 0.6*60 minutes se sont écoulées... Voilà. Si quelqu'un se sent capable de me répondre... ![]() Edit > j'ai oublié la question : comment simuler les fonctions PartiesEntieres et PartieDecimales? Edit Bis > dans mon cas, il suffisait simplement de faire Minutes Ecoulées := 8.0 * 60.0 * ((j - i)/i); Et d'utiliser la fonction SetTime qui corrige les excès de manière logique. Néanmoins, ça m'aiderait d'avoir des fonctions floor (arrondi à l'entier inférieur), ceil, round ... => PartieEntièreDe( x ) <=> floor( x ); => PartieDécimaleDe( x ) <=> x - floor( x ); En gros, me manque que cette fonction d'arrondissement... _________________ #nwnights-fr @ irc.darkmyst.org TitanQuest-FR |
Revenir en haut | ![]() ![]() ![]() ![]() |
Jedaï Chevalier Messages: 89 Localisation: Le Havre, ville pourrie |
Ah j'avais pas vu ça. Si c'est pour des valeurs positives, alors tout va bien, FloatToInt() et ma fonction iront très bien.
![]() |
Revenir en haut | ![]() ![]() ![]() |
Baldurien L'homme qui chutait sur le macadam ![]() Messages: 14070 Localisation: Quadran Alpha |
|
Revenir en haut | ![]() ![]() ![]() ![]() |


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