La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 02/05/2025 22:38:51


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Black Knight
Grand Maître Chanteur du Conseil
Inscrit le: 27 Oct 2005
Messages: 1031
Localisation: Fin fond du trou du cul du monde
Répondre en citant
Posté le : 17/11/2005 19:49:44 Sujet du message : SetLocalFloat c'est mal foutu

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 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 : 17/11/2005 20:19:27 Sujet du message :

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 Gné ?
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Black Knight
Grand Maître Chanteur du Conseil
Inscrit le: 27 Oct 2005
Messages: 1031
Localisation: Fin fond du trou du cul du monde
Répondre en citant
Posté le : 17/11/2005 20:25:03 Sujet du message :

C'est sa mon proble ... lol
_________________
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Semcatala
Grand Sage du Conseil
Inscrit le: 20 Jan 2004
Messages: 951
Répondre en citant
Posté le : 17/11/2005 22:15:35 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
finipe
Grand Sage du Conseil
Inscrit le: 11 Fév 2003
Messages: 519
Localisation: Nantes
Répondre en citant
Posté le : 17/11/2005 23:10:42 Sujet du message :

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)
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.


Eh voilà, tu peux définir le nombre de décimales que tu souhaites Cool
_________________
» 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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Black Knight
Grand Maître Chanteur du Conseil
Inscrit le: 27 Oct 2005
Messages: 1031
Localisation: Fin fond du trou du cul du monde
Répondre en citant
Posté le : 18/11/2005 17:29:59 Sujet du message :

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)
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 la j'aurais par exemple 0.2 ??
_________________
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
finipe
Grand Sage du Conseil
Inscrit le: 11 Fév 2003
Messages: 519
Localisation: Nantes
Répondre en citant
Posté le : 18/11/2005 20:47:04 Sujet du message :

Plus exactement, tu devras mettre un truc du genre :

NWScript :
SendMessageToPC("Votre score est de " + FloatToString(iScore, 18, 2), oPC);
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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Black Knight
Grand Maître Chanteur du Conseil
Inscrit le: 27 Oct 2005
Messages: 1031
Localisation: Fin fond du trou du cul du monde
Répondre en citant
Posté le : 18/11/2005 21:23:53 Sujet du message :

OKI merci!
_________________
[http]
 
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 28.628ms