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 22:27:09
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 |
Semcatala Grand Sage du Conseil Messages: 951 |
Salut !
Donc voila , j'aimerais faire mes propres fonctions un peu comme le "HasItem" qui a été crée mais qui n'esiste pas à la base. Ce que je veux faire est simple , créer une fonction qui donne en INT le nombre d'objets que l'on à dans son inventaire. Mais là je bute sur un problême ...... j'ai crée mon script "mes_fonctions": NWScript :
////////////////////////////// /////////////// //// Comptage d'objets dans l'inventaire //// ////////////////////////////// /////////////// int Ab_NombreObjets(object oPC); int Ab_NombreObjets(object oPC) { object objet = GetFirstItemInInventory(oPC) ; int nombre = 0 ; while(GetIsObjectValid(objet)) { nombre = nombre++ ; objet = GetNextItemInInventory(oPC); } } et mon autre script qui l'apelle : NWScript :
#include "mes_fonctions" void main() { object oPC = GetLastUsedBy(); int nbr_objets = Ab_NombreObjets(oPC); string str_nbr_objets = IntToString(nbr_objets); SendMessageToPC(oPC,"Vous avez " + str_nbr_objets + " objets dans votre inventaire); } Mon problême , c'est que je sait pas comment faire aller l'INT qui est dans "nombre" dans "nbr_objets" de mon script principal. Y aurait pas quelqu'un pour me debugger ce script svp ? Le but pour moi c'est de réussir a maitriser l'appel de fonctions , et de pouvoir faire un comptage d'objets avec une fonction simple ! _________________ " 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 | |
Sith Vicious Grand Sage du Conseil Messages: 693 |
T'as juste oublié le :
NWScript :
return nombre; a la fin de ta fonction. C'est tout. |
Revenir en haut | |
Semcatala Grand Sage du Conseil Messages: 951 |
Voici mon nouveau script :
NWScript :
////////////////////////////// /////////////// //// Comptage d'objets dans l'inventaire //// ////////////////////////////// /////////////// int Ab_NombreObjets(object oPC); int Ab_NombreObjets(object oPC) { int nombre ; object objet = GetFirstItemInInventory(oPC) ; while(GetIsObjectValid(objet)) { nombre = nombre++ ; objet = GetNextItemInInventory(oPC); } return nombre ; } mais ça ne fonctionne toujours pô ! je comprends plus , normalement ça devrait marcher nikel ! Et j'ai même voulu faire plus simple : NWScript :
////////////////////////////// /////////////// //// Comptage d'objets dans l'inventaire //// ////////////////////////////// /////////////// int Ab_NombreObjets(object oPC); int Ab_NombreObjets(object oPC) { int nombre = 5 ; //object objet = GetFirstItemInInventory(oPC) ; nombre = nombre ++ ; /* while(GetIsObjectValid(objet)) { nombre = nombre++ ; objet = GetNextItemInInventory(oPC); } */ return nombre ; } pour simplement faire revenir le chiffre 6 dans le message serveur , mais même ça ça ne donne rien ( encore et toujours " 0 " qui est renvoyé ). J'ai dû me planter sur un truc élémentaire , mais je ne vois pas quoi ! _________________ " 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 | |
Sith Vicious Grand Sage du Conseil Messages: 693 |
remplace
NWScript :
nombre = nombre++: par NWScript : nombre++; |
Revenir en haut | |
Semcatala Grand Sage du Conseil Messages: 951 |
Ben ...... ça change rien .... !
Toujours 0 qui apparait a la place de 6 au final !!! J4ai essayé ce script : NWScript :
////////////////////////////// /////////////// //// Comptage d'objets dans l'inventaire //// ////////////////////////////// /////////////// int Ab_NombreObjets(object oPC); int Ab_NombreObjets(object oPC) { int nombre = 5 ; string str_nombre = IntToString(nombre); SendMessageToPC(oPC,"#mes_fonctions avant ++ = Le nombre est : " + str_nbr_objets ); nombre ++ ; str_nombre = IntToString(nombre); SendMessageToPC(oPC,"#mes_fonctions apres ++ = Le nombre est : " + str_nbr_objets ); return nombre ; } Et ce qui est terrible c'est qu'on dirait que la fonction ne se lance PAS DU TOUT car les 2 messages serveur n'apparaissent pas. _________________ " 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 | |
Sith Vicious Grand Sage du Conseil Messages: 693 |
C'est bizarre j'ai testé vite fait sur un placeable avec ce script et quand j'ai changé en nombre++ il m'a bien dit un chiffre
le script que j'ai essayé : NWScript : ////////////////////////////// /////////////// //// Comptage d'objets dans l'inventaire //// ////////////////////////////// /////////////// int Ab_NombreObjets(object oPC); int Ab_NombreObjets(object oPC) { int nombre =0; object objet = GetFirstItemInInventory(oPC) ; while(GetIsObjectValid(objet)) { nombre++ ; objet = GetNextItemInInventory(oPC); } return nombre ; } void main() { object oPC = GetLastUsedBy(); SpeakString(IntToString(Ab_NombreObjets(oPC))); } |
Revenir en haut | |
Semcatala Grand Sage du Conseil Messages: 951 |
en prenant ton dernier script et en le découpant la premiére partie pour la mettre dans mon include , ça marche ! Merci bien !
J'arrive toujours pas a comprendre pourquoi mes autres scripts quasi iddentiques n'ont pas marché , mais bon ..... _________________ " 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 avais bien recompilé les scripts qui utilisent la bibliothèque?(les biblio nwn c'est comme des macro on remplace le code à l'intérieur à la compilation, rien n'est dynamique)
|
Revenir en haut | |
Semcatala Grand Sage du Conseil Messages: 951 |
Anthraxcite & Sithvicious > Bon , ben je viens de faire des essais et je nage en plein délire !!!!
J'ai donc pris les scripts qui fonctionnent en les nommant essai & mes_fonction , puis les scripts qui déconnent en les nommant essai2 & mes_fonctions2 en posant 2 leviers au sol et en mettant dans le onusedby de l'un "essai" et dans le onusedby de l'autre "essai2" Jusque là tout se passe normalement , le premier levier renvoie normalement le nombre d'objets et le second renvoie 0. Donc là , je décide de faire évoluer doucement les scripts essai2 et mes_fonctions2 jusqu'a ce que essai et essai2 , mes_fonctions et mes_fonctions2 soient parfaitement iddentiques , histoire de voir ce qui fait que l'un marche et PAS l'autre !!! Donc j'en arrive au point ou essai et essai2 sont parfaitement iddentiques , je me dit que le pb doit venir des mes_fonctions et mes_fonctions2. J'en arrive aprés plusieurs essais au point ou mes_fonctions et mes_fonction2 sont PARFAITEMENT iddentiques ( comparaison par onglets ) et le pb persiste , là j'étais sur le cul !!! La seule différence entre les scripts était que les 2 derniéres lignes du mes_fonctions2 20 et 21 étaient vides , alors que la derniére ligne réellement utilisée sur mes_fonctions était la 19. Donc je vire les lignes 20 et 21 sur mes_fonctions2 et LA les 2 scripts marchent bien !!!!! Donc je remet les lignes 20 et 21 vides sur les mes_fonctions2 , et LA , ça ..... continue a remarcher correctement ! :shock: Donc en résumé , l'éditeur doit parfois avoir du mal a mettre a jour certains de ses scripts à la compilation ! Là je cherche plus a comprendre ! lol _________________ " 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 | |
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
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