Depuis la sortie de NWN2, la gestion des fichiers des UIs a énormément changé. Il y a eu des bugs au début (avec la non prise en charge du repertoire custom de Mes Documents), et des problèmes de conception rendant les UIs chiante pour le multi. Tout cela a bien changé et il n'y a plus tous ces problèmes.
Désormais aucune modification du nwn2.ini n'est nécessaire car toute UI contenu dans default/ ou un sous repertoire de custom/ est automatiquement utilisable par le moteur (que ce soit dans Mes Documents ou Program Files).
Tout comme overide, la structure de dossier est totalement ignoré par le système vous pouvez faire autant de sous répertoire que vous voulez, tout sera toujours chargé, les répertoires sont uniquement là pour classer et ordonner, mais n'ont aucune influence pour le jeu.
Pour ce qui est du chargement d'une UI, il existe une fonction script:
Code: |
//RWT-OEI 12/08/05
//This function allows the script to display a GUI on the player's client. //The first parameter is the object ID owned by the player you wish to //display the GUI on. //The second parameter is the name of the GUI screen to display. Note //that only screens located in the [GuiScreen] section of ingamegui.ini //will be accessible. //The 3rd parameter indicates if the displayed GUI should be modal when //it pops up. //RWT-OEI 01/16/07 - Added 4th parameter. This defines the resource //that should be used for this screen if the screenName is not already //found in the ingamegui.ini or pregamegui.ini. If left blank, then no //gui will be loaded if the ScreenName doesn't already exist. If the //sScreenName is *already* in use, then the 4th parameter will be ignored. void DisplayGuiScreen( object oPlayer, string sScreenName, int bModal, string sFileName = ""); |
Vous avez donc deux manières pour utiliser cette fonction, soit en précisant le dernier paramètre sFileName, soit en ne le précisant pas.
Si vous ne donner pas de sFileName, le système essayera de trouver ce nom de fichier dans ingamegui.ini et/ou ingameguix1.ini (c'est celui de MotB).
Après si il ne trouve pas de sScreenName dans ingamegui.ini et/ou ingameguix1.ini, c'est foutu. Il n'ouvrira aucune UI.
Si vous donnez un sFileName, inutile de modifier ingamegui.ini et/ou ingameguix1.ini, vous avez déjà donné toutes les infos suffisantes au bon fonctionnement, le moteur arrivera tout seul à ouvrir le fichier voulu.
Désormais il va de soit qu'on essaye de toujours préciser sFileName, pour la simple et bonne raison qu'il n'y a qu'un seul fichier ingamegui.ini et/ou ingameguix1.ini pour le jeu. Donc si vous allez sur deux modules ayant des UIs persos, c'est le bordel.