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 21:22:22
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 |
Jedaï Chevalier Messages: 89 Localisation: Le Havre, ville pourrie |
Voilà ce que j'ai à proposer :
Une bibliothèque de gestion des tokens, non des tokens dans l'inventaire, mais bien de ceux qu'on peut utiliser dans les dialogues pour obtenir le nom du PC par exemple. ( <FirstName>, <Sir/Madam>, etc...) Les tokens proposés en standard par Bioware sont utiles mais un peu limité, surtout en français et surtout en grammaire française : il n'existe même pas de token permettant l'accord au féminin comme </e> ! Aussi Bioware a-t-il fourni un outil pour se créer ses propres tokens : les customs tokens, ils s'écrivent <CUSTOMn> (avec n un entier entre 1 et 99999 environ) et ont une valeur bien déterminée. Autrement dit, pour tout accord de genre ces tokens sont lourdement inadaptés puisqu'il faut pour les utiliser dans ce cas, créer un script qui change leur valeur en fonction du sexe du PC ET placer ce script dans toutes les conversations où on va utiliser ce token... Tout cela devient franchement très lourd lorsqu'on doit gérer plusieurs tokens qu'on emploie fréquemment, d'autant plus que les tokens de Bioware souffrent d'une seconde limitation : On ne peut pas les utiliser dans un script ! L'emploi des tokens (aussi bien standard que custom) est limité aux dialogues. Alors d'accord un peu d'imagination permet de huiler les rouages et d'éviter d'avoir à personnaliser ses scripts en fonction du PC auquel on s'adresse (tâche la plupart du temps très lourde il faut bien l'avouer), mais n'est-il pas regrettable de se priver ainsi d'un monde ou les NPCs, soudain guéri de leur presbytie, s'adresse aux PCs selon leur apparence, leur réputation, leur sexe et leur race... N'est-il pas regrettable que la plupart des taverniers elfes traitent les PCs nains comme des clients normaux alors qu'ils ne devraient leur adresser la parole que pour des injures pleines de fiel ?... Pour pallier à tous ces inconvénients, je me propose de mettre à disposition ce que je considère comme l'aboutissement de mes efforts en ce domaine. C'est à dire une bibliothèque (inspirée par une idée fondatrice de Lendraste et par une fonction de Gloirin/Wololo) qui permet ce que je crois être la solution la plus souple et la plus puissante qui soit actuellement possible (tant que Bioware n'aura pas autorisé le dialog.tlk dans les haks, on ne trouvera pas mieux qui soit indépendant de la machine) : Une solution qui vous permet d'associer deux concepts intéressants, c'est à dire l'association d'un script à un type de token, et la personnalisation de ce type de token indépendamment du script. Je m'explique : "<mf:cuisinier/cuisinière>", ce token est lié au script "tok_mf" qui renvoie 0 si la cible du token est masculine, 1 si elle est féminine. Ce script se présente ainsi : Code : #include "nwl_sti"
void main() { object oTest = GetObjectTokTarget(); int nChoice = -1; if (GetGender(oTest) == GENDER_FEMALE) nChoice = 1; else nChoice = 0; ReponseInt(nChoice); } Comme vous le voyez, ce script est totalement indépendant du contexte, sa mise en oeuvre est assuré par la bibliothèque centrale qui se chargera de le lancer automatiquement si le token est utilisé, de lui fournir les bonnes valeurs et de récolter le résultat, résultat qui sera utilisé pour obtenir un résultat final qui n'est pas explicité dans le script. Ce script est bien évidemment l'un des plus utile : il permet d'utiliser des tokens comme : "<mf:/e>" (le fameux token d'accord dont je vous parlais) ou même : "<mf:Viens te battre femmelette, on va voir ce que tu vaux !/Désolé m'dame, j'croyais qu'c'était quelqu'un d'autre [Il incline respectueusement son chapeau].>" Ce concept est extensible à toute sorte de chose, en fait à tout ce que vous permet votre imagination : il vous suffit de rédiger une fois un script, vous n'êtes plus limité par une mise en place fastidieuse puisque c'est la bibliothèque qui s'en occupe à votre place. Notez que ce token est utilisable aussi bien dans les scripts (ou il est possible de le "calculer" grâce à l'une des fonctions de la bibliothèque) que dans les dialogues. Pour ces derniers, une seule opération suffit à rendre le token disponible et dynamique : Code : AddCustomToken(666, "<mf:cuisinier/cuisinière>"); Suite à l'utilisation de cette fonction, ce token sera disponible sous l'appellation "<CUSTOM666>" dans tous les dialogues et ceci sans qu'il soit nécessaire de placer un quelconque script pour recalculer sa valeur : la bibliothèque s'en chargera toute seule ! Vous êtes encore là ? Bon, si vous êtes intéressé ou désirez des précisions n'hésitez pas ! |
Revenir en haut | |
Gorkk Site Admin Messages: 1768 Localisation: Ici et ailleurs |
Je mets ce topic en persistant : c'est quelquechose d'incontournable que tu nous proposes là !
EDIT de Cassin : je le déstick parce qu'il commence à y avoir beaucoup de topics persistants sur ce forum, on ne s'y retrouve plus... J'ai mis un lien dans le topic "vos scripts" pour le retrouver _________________ Sacred - FR - La Bibliothèque de Neverwinter - Titan Quest - FR Bloqué dans SoU ? La solution n'est pas loin... HotU vous pose des problèmes ? Une seule solution |
Revenir en haut | |
Jedaï Chevalier Messages: 89 Localisation: Le Havre, ville pourrie |
Merci
OK, je suis en phase finale, toute l'ancienne bibliothèque a été portée sous ce nouveau format, de plus quelques modifications ont été apportées : utilisation des accolades à la place des signes "<" et ">", ce qui permet d'utiliser facilement les tokens de couleur, intégration d'une partie "paramètre" dans les tokens, optimisation du code... Pour ceux qui ne sauraient pas ce qu'est un token couleur, apprenez simplement qu'avec un simple token, et ceci est valable dans les scripts comme dans les dialogues, ils vont pouvoir changer la couleur de leur texte : Code : #include "nwl_tokcust" void main() { SpeakTokStr("{c(red:}Je dis ceci en rouge !"); SpeakTokStr("{c(blue:}Et ceci en bleu !"); SpeakTokStr("Et voici le drapeau {c(blue:}bleu{c(white:}-blanc-{c(red:}rouge {c(white:}!"); } Ce script affichera : Je dis ceci en rouge ! Et ceci en bleu ! Et voici le drapeau bleu-blanc-rouge ! |
Revenir en haut | |
Jedaï Chevalier Messages: 89 Localisation: Le Havre, ville pourrie |
Voilà, elle est disponible, manque un peu d'un tutoriel sur la création de script-token, mais c'est pas trop dur de toute façon. Je verrais à améliorer le tutorial quand j'aurais un peu de temps libre (tout de suite je suis un peu submergé... ). L'utilisation est expliqué dans le readme.
Vous la trouverez à ce lien. En espérant que ça vous serve ! |
Revenir en haut | |
Jedaï Chevalier Messages: 89 Localisation: Le Havre, ville pourrie |
Je rajoute que vous trouverez un exemple d'utilisation sur ce module de démonstration.
|
Revenir en haut | |
Astrée Acolyte Messages: 28 |
Il doit être possible de créer un script qui définit le contenu d'un token, non ?
Est-il possible de redéfinir le contenu d'un custom token ? _________________ Astrée Les hommes, c'est pas des mecs bien |
Revenir en haut | |
Jedaï Chevalier Messages: 89 Localisation: Le Havre, ville pourrie |
Citation : Il doit être possible de créer un script qui définit le contenu d'un token, non ? Pour les tokens prédéfinis c'est impossible (pas la peine de chercher, moi-même j'ai mis longtemps à me persuader que Bioware avait oublié un truc pareil).
Citation : Est-il possible de redéfinir le contenu d'un custom token ? Bien sûr, sinon quel intérêt ? A noter cependant qu'on ne peut absolument pas "accrocher" de script à un custom token sans ma bibliothèque : il faut le définir avant qu'il soit utilisé, dans un script quelconque.
Ma bibliothèque est justement là pour combler à cette carence ! |
Revenir en haut | |
Ronbond Voyageur Messages: 2 |
Bonjour,
Puisque ce sujet tourne autour des tokens je me permet de posser une question. Dites moi si je me trompe mais il n'y a pas de fonctions GetToken pour avoir sa valeur et pas de fonction DeleteToken pour le vider non? |
Revenir en haut | |
Jedaï Chevalier Messages: 89 Localisation: Le Havre, ville pourrie |
Non, on ne peut pas rappeller la valeur d'un token, pas en standard, mais si tu utilise pleinement ma bibliothèque, cela t'est possible.
(De toute façon puisque c'est toi qui fixe la valeur du custom token il suffit de mémoriser cette valeur dans une variable locale en même temps) Pour le DeleteToken(), c'est normalement inutile car un token prend assez peu de place en mémoire et on peut diminuer cette place en faisant : SetCustomToken(nNumToken, ""); après usage. Dans ma bibliothèque par contre cette fonction prend un peu d'importance puisque les tokens dynamique prennent du temps pour être calculés (je pense que ce n'est sensible qu'à partir d'un très grand nombre, ma machine est très peu puissante et ça n'a jamais posé problème). Du coup j'ai introduit une fonction DeleteCustomToken(nNumToken, sValeurFinale) pour stopper le calcul d'un custom token dont on ne se sert plus. (Je répète que cette bibliothèque est très peu gourmande contrairement à des horreurs comme les HCR). |
Revenir en haut | |
Baldurien L'homme qui chutait sur le macadam Messages: 14066 Localisation: Quadran Alpha |
Tiens, j'ai une question: avec ma vo, j'ai mis les fichiers tlk français, et l'éditeur de script me refuse (toujours) les accents. J'aimerai savoir si c'est normal car je suppose que pour utiliser une telle bibliothèque, les accents sont assez intéressant (ne serait-ce pour que pour écrire "Gwanaël" !! )
Bref? Sinon pourrais-tu fournir une liste des méthodes (ou fonction) de ta bibliothèque ? (pour un peu documenter ça surtout!) _________________ #nwnights-fr @ irc.darkmyst.org TitanQuest-FR |
Revenir en haut | |
Jedaï Chevalier Messages: 89 Localisation: Le Havre, ville pourrie |
Mmmm Ben toutes les fonctions sont documenté dans le script et je fournis un readme... Mais si tu insiste...
Pour le problème des accents : même si l'éditeur de script ne semble pas les accepter, il n'as en fait rien contre un copier coller en comprenant, ce qui te permet de taper tes scripts à part et de les copier coller avec leurs accents. Néanmoins il y a plus simple : tu peux taper les accents dans la zone de "filtre" des fonctions en haut à droite de l'éditeur, il n'y a pas de problème, et tu peux ensuite les copier coller |
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