JeuxOnLineForumsPlusConnectés : 630 (sites) | 1149 (forums)Créer un compte
Forum jeux-vidéo>Neverwinter Nights
Maskado
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > Customisation des menus RSS
   
Répondre
Partager Outils Rechercher
Avatar de Taern
Taern
Alpha & Oméga
 
Avatar de Taern
 

Customisation des menus

Bonjour bonjour,

Suite à une discussion très intéressante avec Skanzo et Azrael07 sur le chan #NWN, je vais essayer de mettre ici le bilan de nos connaissances sur le sujet.

Bon. Le sujet est donc l'édition de l'ensemble des menus de NWN, des menus de création de personnage aux menus qui apparaissent au cours du jeu. Je crois que pratiquement tous les menus du jeu sont engendrés par des fichiers de type .gui, à part la feuille de personnage dont je n'ai pas trouvé le fichier correspondant. Ces fichiers se trouvent dans aurora_gui.bif (extractables avec Zviewer).

Un fichier .gui est un fichier GFF, qui marche donc par listes de variables répertoriées dans des entrées, etc.
Chaque élément du menu est défini par cette suite de variable :

*obj_caption[liste] (facultatif) : texte de l'élément (détail après)
*obj_layer [int >0, pair] : je ne suis pas sûr, mais je suppose que c'est la priorité de l'élément (devant / derrière les autres éléments)
*obj_locked [int =0] : aucune idée, toujours à 0
*obj_parent [string] : tag de la fenêtre de fond (cf. après)
*obj_parent_hook [string] : resref de la fenêtre
*obj_resref [string] (facultatif) : resref de l'élément (cf. après)
*obj_tag [string] : tag de l'élément (pas sûr de l'utilité, apparemment ça sert à attribuer des fonctions hardcodées aux éléments)
*obj_type [int] : type d'élément (cf. après)
*obj_x, _y, _z [float] : coordonnées de l'élément par rapport au centre de l'écran

Détail de obj_caption (peut-être incomplet ) :
*alignement horizontal/vertical avec l'élément [2 floats]
*couleur du texte [3 floats]
*StrRef du texte : référence au dialog.tlk dans le cas de textes statiques (exemple : "OK", "Fermer", etc.), sinon mystère dans le cas de textes dynamiques (mais dans ce cas changer la valeur n'a pas l'air d'influer en quoique ce soit sur ledit texte)

En ce qui me concerne, il reste quelques zones d'ombres, principalement au niveau du tag. Par exemple, j'ai essayé de supprimer la description dans le menu qui apparait lorsque l'on examine un objet. Cet élément portait le tag "Description". Dès que je changeait le tag, ou que je supprimais l'élément, le jeu plantait après examen d'un objet. J'en ai déduit que le code du jeu exigait qu'un élément taggé "Description" soit présent dans le menu pour que tout fonctionne.

Concernant le menu en lui même (la fenêtre de fond si vous préférez), voilà les variables qui le définissent :

*entrées des éléments[liste] (facultatif) : liste tous les éléments du menu, dont les index doivent être consécutifs, enfin je suppose
*obj_layer [int =0] : toujours à 0 dans le cas de la fenêtre de fond
*obj_locked [int =0] : idem
*obj_resref [string] : resref de la fenêtre
*obj_tag [string] : tag de la fenêtre
*obj_type [int =3] : type d'élement (cf. après) (3 dans le cas d'une fenêtre)
*obj_x, _y, _z [float] : coordonnées de la fenêtre par rapport au centre de l'écran

Ensuite vient la liste des différents types d'objet que j'ai répertorié jusque là (pas forcément exhaustive donc) :

0 = divers : barre de chargement, slots d'inventaire
1 = petite croix de fermeture (style windows)
3 = fenêtre de menu
5 = texte (statique ou dynamique)
8 = description, contenant le texte, l'évaluation de FP dans le cas d'une créature, etc. (ce type d'élément reste dur à modifier, puisque majoritairment hardcodé)
9 = bouton (avec texte statique ou dynamique)

Remarque : après reflexion, je suis à 99% sûr que le contenu d'un texte dynamique est choisi en fonction de son tag; par exemple, le texte qui s'affiche en haut de la fenêtre d'examen d'objet, porte le tag "Name" (et pas de resref) et affiche effectivement le nom de l'objet.

Enfin, les quelques resrefs que j'ai répertorié (liste sûrement pas exhaustive) :

*ctl_btn_pre_116 : bouton
*ctl_btn_pre_176 : bouton (un peu plus gros je crois)
*ctl_btn_x : croix de fermeture
*ctl_exam_item01 : description d'objet

Dans le cas de ces éléments précis, le resref est spécifié et est probablement indispensable (créer un élément de type 9, soit un bouton, sans préciser un des resrefs au dessus, peut donner des résultats imprévisibles). Même chose pour la description, supprimer le resref n'a amené qu'un joli plantage.

Dernière chose : l'ajout comme la suppression d'éléments non-cruciaux (cf. description) semble ne pas poser de problèmes si elle est faite avec rigueur. Par contre, le programme semble attribuer une fonction uniquement au premier bouton portant le tag qu'il attend; ainsi, une croix de fermeture que j'avais rajouté, alors qu'un autre était déjà là, n'était pas "cliquable" car aucune fonction ne lui était associée. (son index était supérieur à la croix de fermeture originale).
Au final, rajouter des éléments présente donc bien peu d'intérêt, à moins de maîriser parfaitement le fonctionnement des textes dynamiques (ce qui n'est pas mon cas ).

Quand j'aurais répertorié les différents tags associés à leurs fonctions respectives, je les posterais ici.

Voilà, fin du premier compte-rendu sur le sujet. Ca peut paraître un peu léger et surtout très flou, mais ça a demandé pas mal d'essais et de cafouillements

Avec tout ça, je pense qu'il est possible de créer un éditeur de menus rudimentaire. Les fonctions seraient principalement :
* modification des coordonnées d'éléments existants, de leur texte (statique uniquement), éventuellement de leur fonction
* rajout/suppression d'éléments
* euh... peut-être permettre de modifier la skin du menu, mais ça demanderait la liste des resref des menus associés à leurs images respectives

Bon, allez, j'ai fait mon devoir pour aujourd'hui Bonne nuit à tous
Lien direct vers le message - Vieux
Avatar de Skanzo Sylan
Skanzo Sylan
Empereur
 
Avatar de Skanzo Sylan
 
Ben faut-il encore préciser que je n'ai fait qu'écouter puis déballer mes conneries pendant qu'Azra était dans un bras de Morphée sachant que l'autre n'était pô loin
Lien direct vers le message - Vieux
Avatar de gaeriel/nekresh
gaeriel/nekresh
Empereur
 
Avatar de gaeriel/nekresh
 
Comment fais t'on pour éditer ces fichiers .gui ?
J'arrive à obtenir quelque chose de lisible avec itptool mais je n'arrive pas à la retransformer en itp avec asc2itp, il me dis que j'ai une erreur alors que je n'ai pas modifié une seule ligne du fichier.
Y a t'il mieux qu'itptool pour éditer ces fichiers ?
Lien direct vers le message - Vieux
Avatar de Ormus
Ormus
Roi
 
Avatar de Ormus
 
Citation:
Provient du message de gaeriel/nekresh
Y a t'il mieux qu'itptool pour éditer ces fichiers ?
Argh, ITPTool...

Carrément qu'il y a mieux
Lien direct vers le message - Vieux
Avatar de Taern
Taern
Alpha & Oméga
 
Avatar de Taern
 
Personellement, j'utilise GFF Editor, le prog utilisé en interne par Bioware. Cela dit, Leto est très bien, et il y a d'autres progs sur NWVault.

Mais ITPTool, enfin bon, voilà quoi
Lien direct vers le message - Vieux
Avatar de gaeriel/nekresh
gaeriel/nekresh
Empereur
 
Avatar de gaeriel/nekresh
 
Je vais essayer le GFF editor car Leto ne me permet pas de mettre des valeurs négatives dans un champ FLOAT en mode Edition avancée. Dommage, il est bien pourtant.

EDIT: GFF editor marche très bien. En fait, Leto ne permet pas de mainpuler des FLOAT négatifs. Des valeurs peuvent être négatives mais ne peuvent pas être édité. Je pense que le - ne marche pas dans Leto.
Lien direct vers le message - Vieux
Avatar de gaeriel/nekresh
gaeriel/nekresh
Empereur
 
Avatar de gaeriel/nekresh
 
Bon ben j'arrive qu'à faire ça, ça m'avance pas beaucoup, tiens.
Pourquoi on peut pas gérer nous mêmes le contenu des listbox ? Pourquoi c'est hardcodé pour chaque listbox ?



C'est désespérément vide.
Lien direct vers le message - Vieux
Avatar de Le grognon
Le grognon
Alpha & Oméga
 
Avatar de Le grognon
 
moi.. je me prosternerais officiellement devant le premier qui me sort un moyen de virer la description des bonus/malus/autres des pj/pnj/objets et tous ce qui n'est pas la "simple" description de l'objet/pnj

(et voui je connais le hak qui cache ça en mettant un "plan" devant mais c'est pas efficace tous le temps....)
Lien direct vers le message - Vieux
Avatar de gaeriel/nekresh
gaeriel/nekresh
Empereur
 
Avatar de gaeriel/nekresh
 
Quand on examine un objet, un pnj ou un pj, c'est ça ?
Lien direct vers le message - Vieux
Avatar de gaeriel/nekresh
gaeriel/nekresh
Empereur
 
Avatar de gaeriel/nekresh
 
Si c'est le cas, j'ai fait quelque chose.
On ne peut plus voir que le nom et la photo de la personne (j'ai essayé qu'avec des pnj) quand on l'examine.
http://phpgratuit.free.fr/noexam.zip

Bon, vous regardez pas trop comment j'ai fait, c'est vraiment pas beau. J'ai juste viré la fenêtre qui affiche la description à un endroit où on peut pas la voir. Mais il n'y aura pas de problème de superposition, vu où elle doit être

En espérant que c'est ce que tu veux.

PS: on peut quand même examiner les objets, c'est grave ?
Lien direct vers le message - Vieux
Avatar de Taern
Taern
Alpha & Oméga
 
Avatar de Taern
 
Pareil que Gariel. Je doute qu'il y ait de meilleure solution.

En fait le jeu rajoute lui-même les bonus/malus à la fin de la description, donc pas moyen de séparer les deux.
Lien direct vers le message - Vieux
Avatar de gaeriel/nekresh
gaeriel/nekresh
Empereur
 
Avatar de gaeriel/nekresh
 
On ne peut cacher le fp que avec ce que Le Grognon a déjà. Sinon, on doit tout enlever, on ne peut même pas le virer car ça fait planter le jeu.

Au fait, faudrait pas couper le post pour pas polluer ton tuto, Taern ?
Lien direct vers le message - Vieux
Avatar de Taern
Taern
Alpha & Oméga
 
Avatar de Taern
 
Bof non je pense pas qu'on le pollue vraiment.
Et puis ça a rapport avec le sujet quand même
Lien direct vers le message - Vieux
Avatar de gaeriel/nekresh
gaeriel/nekresh
Empereur
 
Avatar de gaeriel/nekresh
 
Alors, Tonton, t'en pense quoi ? C'est ce que tu voulais ?
Lien direct vers le message - Vieux
Répondre
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > Customisation des menus
   

Outils Rechercher
Rechercher:

Recherche avancée

Les vidéos de Neverwinter Nights RSS
  • Aucune vidéo pour le moment...
Thème visuel : Fuseau horaire GMT +1. Il est actuellement 22h14.
   

© JeuxOnLine, le site des MMO, MMORPG et MOBA. Tous droits réservés. - Conditions générales d'utilisation - Conditions d'utilisation des forums - Traitement des données personnelles - ! Signaler un contenu illicite