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







La date/heure actuelle est 02/05/2025 22:38:51
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 |
Black Knight Grand Maître Chanteur du Conseil ![]() Messages: 1031 Localisation: Fin fond du trou du cul du monde |
Salut salut, voila dans mon module (arene) j'ai fait un systeme de score. J'avais eu l'idée d'aulieu de faire les scores comme +1 pts ou +10 ou autres points c'est de faire soit des +0.2 points ou autres... Donc j'ai teste tout d'abord avec un SetLocalFloat, j'ai cru que sa allez marche, mais quand je mes sa dans un dialogue on vois un liste de chiffre imence......... et moi je veut juste 0.2 (par exemple), alors apres j'ai essaye de mettre sur un SetLocalString et de le configure en Float, cela fait pareil , ensuite j'ai faire encore sur un String et je les configure sur un INT le probleme c'est que sa me m'ettais pas les .2 juste le 0, et meme si sa le mette sans qu'on le vois il ne ferais pas de calcule (donc comme exemple 0.6 + 0.5 = 1.1 normalement sa aurait juste fait.... 0)
Donc voila, est ce qu'il y a une local qui puisse permetre de faire des points a virgule ??... _________________ [http] |
Revenir en haut | ![]() ![]() ![]() |
Sith Vicious Grand Sage du Conseil ![]() Messages: 693 |
Il y a toujours le même nombre de chiffres après la virgule, donc tu raccourcis la chaine après ton FloatToString, et là t'as plus que le nombre voulu de chiffres après ta virgule.
Mais c'est vrai que ça déconne je viens d'essayer un SpeakString(joueur,FloatToString(2520.0)); et ça donne 2520.000000673 ![]() |
Revenir en haut | ![]() ![]() ![]() |
Black Knight Grand Maître Chanteur du Conseil ![]() Messages: 1031 Localisation: Fin fond du trou du cul du monde |
|
Revenir en haut | ![]() ![]() ![]() |
Semcatala Grand Sage du Conseil ![]() Messages: 951 |
j'ai une idée plus simple , tu traite tout tes chiffres en " integer " , puis une fois que c'est fini tu repasse en float en divisant ton chiffre final.
Par exemple , tu veux travailler sur 2 chiffres aprés la virgule , donc tu fais ceci : Lorsqu'un joueur touche une porte , tu dois lui rajouter + 0,2 , là tu lui rajoute dans sa variable , + 20 , si ensuite tu dois lui rajouter + 0,36 , tu rajoute dans sa variable + 36 , ce qui lui fera un total souhaité de + 0,56 , mais de + 56 réel , , une fois que tu aura fini tes calculs , tu transforme ton " integer " de + 56 en float , donc en " + 56.0 " , et tu divise ce résultat ( quelqu'il soit ) par 100 , ce qui te fera en principe + 0.56 . J'ai pas essayé , mais c'est une piste , travailler en chifres entiers et repasser en chiffres a virgule par le suite , puis finir en divisant par 100 le résultat final. Aussi jette un coup d'oeil a la commande " GetStringLeft " ( la même existe en right ) , ça te permet par exemple de récupérer seulement les 5 premiers caractéres de ta chaine de caractéres en partant de la gauche , ce qui pourrais te permettre , en te debrouillant bien ( if number >= 10 & number < 100 , alors ncount = 3 , if number >= 100 & number < 1000 , alors ncount = 4 , etc etc etc ) , d'éliminer les décimales indésirables. _________________ " 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 | ![]() ![]() ![]() |
finipe Grand Sage du Conseil ![]() Messages: 519 Localisation: Nantes |
Je ne crois pas qu'il existe de fonction permettant d'arrondir. La solution de SemCatala est bien, mais y aura toujours ce problème de chiffres après la virgule : si tu divises pour obtenir des nombres relatifs, tu devras forcément déclarer ces variables comme float, et donc tu auras des résultats du genre 2.85000000000
Seulement, la fonction FloatToString t'évite ce genre de désagrement : NWScript :
// Convert fFloat into a string. // - nWidth should be a value from 0 to 18 inclusive. // - nDecimals should be a value from 0 to 9 inclusive. string FloatToString(float fFloat, int nWidth=18, int nDecimals=9) Eh voilà, tu peux définir le nombre de décimales que tu souhaites ![]() _________________ » Le Tref & l'Aucube : Histoire, misanthropie & zoologie léonine » 1626, le Gant & l'Epée : intrigues & duels sous le règne de Louis XIII |
Revenir en haut | ![]() ![]() ![]() ![]() |
Black Knight Grand Maître Chanteur du Conseil ![]() Messages: 1031 Localisation: Fin fond du trou du cul du monde |
Donc faut que je mette sa par exemple :
NWScript :
// Convert fFloat into a string. // - nWidth should be a value from 0 to 18 inclusive. // - nDecimals should be a value from 0 to 9 inclusive. string FloatToString(float fFloat, int nWidth=18, int nDecimals=1) Et la j'aurais par exemple 0.2 ?? _________________ [http] |
Revenir en haut | ![]() ![]() ![]() |
finipe Grand Sage du Conseil ![]() Messages: 519 Localisation: Nantes |
Plus exactement, tu devras mettre un truc du genre :
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. Dans ce cas précis tu auras 2 chiffres après la virgule. _________________ » Le Tref & l'Aucube : Histoire, misanthropie & zoologie léonine » 1626, le Gant & l'Epée : intrigues & duels sous le règne de Louis XIII |
Revenir en haut | ![]() ![]() ![]() ![]() |
Black Knight Grand Maître Chanteur du Conseil ![]() Messages: 1031 Localisation: Fin fond du trou du cul du monde |
|
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