Les fichiers d'interface sont appelés à partir de ce qui se trouve dans la partie INTERFACES du fichier client_default.cfg
Dans le code, ces appels sont gérés par deux fichiers :
Le fichier appelé actuellement est input_config_v3.xml non modifié pour l'instant par rapport à RC.
Ce sont les fichiers qui gèrent la fenêtre de connexion où l'on s'identifie.
Les fichiers appelés actuellement sont :
La texture d'interface générale appelée est interface_game_khaganat.
Elle est fabriquée selon une procédure précise, et est accompagnée d'un fichier .txt du même nom. Voir les explications détaillées sur leur création dans : Génération des graphismes d'interface de Khanat.
La texture pour l'interface de la fenêtre de connexion est interface_login_khaganat. Elle est fabriquée comme la texture d'interface ci-dessus.
La texture pour l'interface de la fenêtre Outgame, c'est à dire de création et de sélection du personnage, est interface_outgame_khaganat. Elle est fabriquée comme la texture d'interface ci-dessus.
XMLInterfaceFiles, présent dans le client_default.cfg (ou le client.cfg) la liste des fichiers XML utilisés pour l'interface de jeu détaillés ci-dessous.
Deux fichiers référencés semblent donc absents sans que cela ne gêne le fonctionnement du jeu (en relation avec le Ring, il est vrai).
Les fichiers xml semblent être appelés dans l'ordre indiqué.
Après avoir fait de nombreux essais, il est possible de lancer un client en indiquant dans son client.cfg
:
XMLInterfaceFiles = { "config.xml", "widgets.xml", "inventory.xml", "interaction.xml", "phrase.xml", "macros.xml", "info_player.xml", "taskbar.xml", "game_context_menu.xml", "bot_chat_v4.xml", "map.xml", "hierarchy.xml", "actions.xml", "encyclopedia.xml", "commands.xml" };
Cela permet de réduire au minimum les fenêtres créées et gérées, sans avoir de segmentation Fault au lancement, ceci dans le but de réduire le nombre de fichier à étudier.
Le fichier database.xml recense l'architecture de la base qui est interrogée par les fichiers xml d'interface pour obtenir les données de jeudu serveur (apparemment).
Voir l'importance de ce fichier database.xml avec les indications sur Database_plr.
Il existe un fichier local_database.xml qui est fourni ensuite dans les data (il ne devrait pas être dans gamedev, c'est une erreur de placement). qui contient la base de données à interroger avec LOCAL:
.
LOCAL, UI ou SERVER ?
Il faut toujours indiquer une localisation de départ lorsqu'on interroge une base :
SERVER:
au départ de la requête.LOCAL:
quand on s'adresse à la base de données locale.UI:
?Partie à confirmer/approfondir
L'architecture de la base données dans ces fichiers est simple : des branches branch jusqu'à des feuilles leaf qui indiquent une donnée à retourner.
Par exemple :
<branch name="PACK_ANIMAL" bank="PLR"> <!-- beasts --> <!-- MAX_INVENTORY_ANIMAL --> <branch name="BEAST" count="4" atomic="1"> <!-- Atomic, for correct Bar Management on client --> type="I7" /> <leaf name="BULK_MAX" type="I32" />
Pour avoir le paramètre de BULK_MAX de nos animaux de bât, on pourrait créer des variables dans le fichier xml d'interface et leur affecter les valeurs avec les instructions :
<define id="pa1_bulk" value="SERVER:PACK_ANIMAL:BEAST0:BULK_MAX" /> <define id="pa2_bulk" value="SERVER:PACK_ANIMAL:BEAST1:BULK_MAX" /> <define id="pa3_bulk" value="SERVER:PACK_ANIMAL:BEAST2:BULK_MAX" /> <define id="pa4_bulk" value="SERVER:PACK_ANIMAL:BEAST3:BULK_MAX" />
Il suffit ensuite d'utiliser ces variables pa1_bulk, pa2_bulk, pa3_bulk et pa5_bulk dans nos VIEWS et autres CONTROLS.
La plupart des variables appelées dans les fenêtres d'interface sont créées dans config.xml qui est fourni dans les data du client.
Ce fichier contient surtout des définitions de variable, des gabarits. La plupart des variables utilisées dans les autres fichiers XML sont définies dans ce fichier.
On peut y remarquer, le lien entre les noms attribués aux images dans les appels des autres ficheirs XML et leur valeur en fichier. On peut changer l'aspect des images juste en changeant le contenu des variables.
On n'y rencontre aucun élément GROUP.
On y trouve le View type=“pointer”
ligne 2101 qui définit l'image de souris selon le contexte, avec sa taille etc.
<!-- *********** --> <!-- * MOUSE * --> <!-- * POINTER * --> <!-- *********** --> <view type="pointer" id="cursor" x="1" y="-5" w="44" h="39" global_color="false" tx_default="curs_default.tga" tx_move_window="curs_default.tga" tx_resize_BR_TL="curs_resize_BR_TL.tga" tx_resize_BL_TR="curs_resize_BL_TR.tga" tx_resize_TB="curs_resize_TB.tga" tx_resize_LR="curs_resize_LR.tga" tx_rotate="curs_rotate.tga" tx_scale="curs_scale.tga" tx_colpick="curs_pick.tga" tx_pan="curs_pan.tga" tx_can_pan="curs_can_pan.tga" tx_pan_r2="r2_hand_pan.tga" tx_can_pan_r2="curs_default.tga" posref="BL MM" />
On y trouve aussi la définition des groups container (CONTAINER
) que sont les fenêtres dans l'interface de jeu lignes 529 et suivantes ;
Ce fichier contient les gabarits des différentes composantes non fixes du jeu tels que:
“forage_source”
) ;“3dbulle_L”
(à noter qu'il existe une version “3dbulle_R”
non utilisée) ;ITEM/BRICK HELP
lignes 5394 et suivantes ;HTML FORM SELECT WIDGET
et des HTML TEXT BUTTON WIDGET
, vers la ligne 6668 ;html browser window
ligne 7019 et suivantes. Ce sont les widgets qui servent pour les fenêtres en liaison avec des applications de type webIG.
Descriptifs des éléments de type :
CURRENT ACTION
ligne 219. Les images utilisées pour la progression de l'action sont précisément : slot_jauge_action.tga
pour le cadre et jauge_action.tga
pour la zone de remplissage interne dynamique ;BONUS MALUS
ligne 631 et suivantes ;ANIMALS GLOBAL
ligne 930 et suivantes, incluant :ANIMAL(S) DEAD WINDOW
lignes 1309 et suivantes ;ANIMALS INVENTORIES
lignes 1359 et suivantesCe fichier au titre explicite contient tous les éléments de gestion des fenêtres d'inventaire.
Cela comprend l'inventaire porté sur soi, celui de son logement, celui du sac de ses animaux, de sa salle de guilde, de la zone d'échange temporaire.
Il contient aussi les deux zones de MAINS avec les zones de raccourci d'action : HANDS
lignes 1086 et suivantes pour la première, <!– second hands bar –>
lignes 1501 et suivantes pour la seconde.
On y trouve également la fenêtre de répartition des gains d'équipe TEAM SHARING SYSTEM
lignes 1933 et suivantes.
Une fenêtre DEFENSE
est citée ligne 2326 et suivantes, dont la fonction demeure à préciser. Peut-être la zone d'équipement des armures, à vérifier.
Un GROUP CUSTOM TEXT EDITION AND DISPLAY
est défini lignes 2637 et suivantes, qui sert peut-être à gérer la zone de saisie des textes personnalisés sur les objets.
Ce fichier contient les éléments d'interaction avec les autres créatures du jeu.
À partir de la ligne 10 et suivantes, la zone TARGET
permet de définir les affichages liés à la cible cliquée :
FRIEND LIST & IGNORE LIST TEMPLATE
lignes 459 et suivantes (et voir plus bas) ;CHAT TEMPLATE
lignes 554 et suivantes ;CHAT WITH NO EDIT BOX TEMPLATE
lignes 693 et suivantes ;CHAT WITH FILTER TEMPLATE
lignes 745 et suivantes ;GROUP OF CHAT
lignes 821 et suivantes ;template of a dynamic chat tab
lignes 940 et suivantes ;the main chat group
lignes 986 et suivantes avec : SYSTEM INFO TEMPLATE
lignes 1327 et suivantes ;TEAM_CHAT
lignes 1383 et suivantes ;AROUND_ME
lignes 1390 et suivantes puis lignes 1425 et suivantes ;REGION CHAT
lignes 1397 et suivantes puis lignes 1433 et suivantes ;UNIVERSE CHAT
lignes 1404 et suivantes ;SYSTEM INFO
lignes 1418 et suivantes puis lignes 1441 et suivantes ;TEAM
lignes 1449 et suivantes ;BASE MENU FOR CHAT BOX
lignes 1883 et suivantes (pour les fenêtres de Chat quand elles sont libres) :AROUND ME CHAT
lignes 2013 et suivantes ;CONTACT TEMPLATE
lignes 1648 et suivantes, en liaison avec l'ignore list, la friend list ci-dessusTEAM_MENU
lignes 2108 et suivantes ;CONTACT_MENU
lignes 2184 et suivantes ;PARTY CHAT MENU
lignes 2269 et suivantes ;WINDOW TO ASK IF A PLAYER WANT TO JOIN A TEAM
lignes 2333 et suivantes ;WINDOW TO ASK IF A PLAYER WANT TO JOIN A GUILD
lignes 2376 et suivantes ;WINDOW TO ASK IF A PLAYER WANT TO DUEL WITH ANOTHER PLAYER
lignes 2419 et suivantes ;WINDOW TO ASK IF A PLAYER WANT TO PVP
lignes 2482 et suivantes ;WINDOW TO ASK CLAN PLAYER WANT JOIN FOR PVP
lignes 2537 et suivantes ;POPUP TO ASK IF A PLAYER WANT TO JOIN A PARTY CHAT
lignes 2607 et suivantes ;POPUP TO ASK IF A PLAYER WANT TO ENTER A MISSION CRITICAL ZONE
lignes 2642 et suivantes ;POPUP TO ASK THE PLAYER FOR A TELEPORT LOCATION
lignes 2684 et suivantes ;WINDOW TO ENTER THE NAME OF A NEW PARTY CHAT
lignes 2978 et suivantes ;DEBUG CONSOLE
lignes 3042 et suivantes ;YUBO CHAT
lignes 3064 et suivantes ;DYNAMIC CHAT
lignes 3071 et suivantes ;Ce fichier contient apparemment les éléments de la fenêtre de composition des sbricks en sphrases ainsi que celle de la composition des recettes d'artisanat.
Il contient les informations sur la fenêtre Actions :
<!– Main container SKILLS PROGRESSION & ACTIONS –>
.Visiblement obsolète (intégralement commenté), servait au ramassages des MPs récoltées.
Ce fichier contient les informations pour gérer la fenêtre d'information sur les touches :
EDITION DES COMMANDES
lignes 8 et suivantes pour la fenêtre d'assignation de touche à une commande ;EDIT COMMAND MAIN CONTAINER
lignes 38 et suivantes pour la fenêtre d'information sur l'affectation des touches. Attention, le nom de gabarit teditcmd
est hardcodé.On trouve ensuite les informations sur la fenêtre de gestion des macros :
MACROS CONTAINER
lignes 235 et suivantes ;Gestion de la fenêtre de création et de gestion des Macros.
Ce fichier contient les éléments de différentes fenêtres en rapport avec le personnage et ses caractéristiques.
Tout d'abord la fenêtre d'information générale sur le personnage (Identité
).
Les gabarits sont en premier, jusqu'à la ligne 556 puis des ficheirs de définition de GROUPS jusqu'à la ligne 1684.
On trouve ensuite la partie dédiée à la renommée, FAME
lignes 1687 et suivantes avec d'abord les templates jusqu'à la ligne 1878 puis les GROUPS (incluant les SPIRES jusqu'à la ligne 2603.
Ensuite une zone info_player_journal
qui doit certainement concerner la fenêtre de missions lignes 2606 et suivantes, avec les gabarits jusqu'à la ligne 2969 puis les GROUPS jusqu'à la ligne 3547
Puis une zone de définition des POPUP MESSAGES
à partir de la ligne 3550 jusque 3667.
Enfin, une zone RPJOB TEMPLATES
pour les métiers développés par le WebIG à partir de la ligne 3670 et une dernière NPC WEB PAGE
pour les interactions avec les NPC gérés par le webIG à partir de la ligne 3700
Ce fichier contient toutes les infos ayant trait à la gestion des avant-poste.
Gestion des éléments d'interface en rapport avec la guilde.
Comme d'habitude, d'abord les éléments de gabarits :
TEMPLATE MEMBER
lignes 41 et suivantesPuis les GROUPS :
GUILD MAIN
qui définit la fenêtre principale de gestion de la guilde, lignes 118 et suivantes, avec les deux onglets ;GUILD FORUM
pour la gestion du forum de guilde, géré par le webIG lignes 464 et suivantes ;GUILD CHAT
lignes 593 et suivantes ;GUILD INVENTORY
, qui vient donc compléter ce qui était décrit dans inventory.xmlOn y trouve également d'autres fenêtres :
MAIL BOX
lignes 809 et suivantes ;WEB IG
lignes 937 et suivantes ;Ce fichier semble regrouper plusieurs fenêtres disparates :
QUIT MODAL
lignes 58 et suivantes ;SERVER STALLED
(le “Veuillez patienter”) lignes 122 et suivantes ;GAME QUIT PROGRESSION
, lignes 138 et suivantes ;Popup for free trial players
lignes 170 et suivantes.Il y a ensuite ce qui est appelé le milko pad lignes 192 et suivantes.
MODE 1 : text + button in two tabs : actions & windows
lignes 397 et suivantes ;MODE 2 : buttons in two columns : actions & windows
lignes 509 et suivantes ;MODE 3 : buttons in one columns : windows
lignes 565 et suivantes ;MODE 4 : buttons in two rows : actions & windows
lignes 615 et suivantes ;MODE 5 : buttons in one row : windows
lignes 671 et suivantes ;WINDOWS LIST MENU
lignes 856 et suivantes (avec le HELP MENU
en premier );WINDOWS MENUS TEMPLATES
lignes 862 et suivantes ;GESTION_WINDOWS
lignes 886 et suivantes ;PLAYER
lignes 980 et suivantes ;INVENTORY
lignes 1010 et suivantes ;GUILD & TEAM
lignes 1042 et suivantes ;COMMUNICATION
lignes 1073 et suivantes ;ORIENTATION
lignes 1103 et suivantes ;ANIMALS
lignes 1123 et suivantes ;OPTIONS
lignes 1140 et suivantes.
Enfin il y a une partie WEB STUFF WHEN QUITING RYZOM
lignes 1258 et suivantes dont la fonction demeure à préciser.
Ce fichier contient tout d'abord des widgets très utiles :
WIDGET TO CHOOSE A COLOR
lignes 27 et suivantes ;WIDGET TO CHOOSE AN INTEGER FROM A SCROLL BAR
lignes 167 et suivantes ;WIDGET TO CHOOSE A FLOAT FROM A SCROLL BAR
lignes 230 et suivantes ;WIDGET TO CHOOSE A BOOLEAN FROM A CHECK BOX
lignes 293 et suivantes.
On trouve ensuite la fenêtre en elle-même Main container
lignes 415 et suivantes.
Ce fichier contient les éléments de menus contextuels appelés lors des interactions avec des éléments dans la scène de jeu 3D. Cela apparaît avec le clic droit qui propose par exemple si c'est un marchand de certains types d'objets, une entrée “Acheter…”
Les handler
indiqués sont gérés dans action_handler_game.cpp
Ce fichier contient les informations sur les fenêtres de proposition accept_trade_invitation
et d'échange/vente entre joueurs player_trade
.
Ce fichier contient les éléments des fenêtres lors des interactions avec les NPCs, les objets, l'environnement :
BOT CHAT BASICS
lignes 10 et suivantes ;BOT CHAT PAGE FOR PLAYER GIFT
lignes 213 et suivantes ;BOT CHAT PAGE FOR CREATE GUILD
lignes 416 et suivantes ;BOT CHAT TRADE MODAL
lignes 1374 et suivantes ;BOT CHAT PAGE FOR TRADE : BUY & SELL
lignes 2429 et suivantes ;BOT CHAT PAGE FOR TRADE : BUY ONLY
lignes 3583 et suivantes ;BOT CHAT PAGE FOR NEWS
lignes 3830 et suivantes qui semble permettre de demande des informations au bot ? Son entrée d'étiquette dans le fichier fr.uxt
est uiBotChatNews → Nouvelles ;BOT CHAT PAGE FOR MISSION END
lignes 3860 et suivantes ;BOT CHAT PAGE FOR DYNAMIC MISSION
lignes 3969 et suivantes ;BOT CHAT PAGE FOR MISSIONS
lignes 4147 et suivantes.
Ce fichier contient tout d'abord les indications pour le lecteur MP3 MP3 PLAYER
lignes 15 et suivantes.
Il contient ensuite les indications pour la fenêtre de radar dans COMPASS
lignes 307 et suivantes
Puis il contient les indications sur la fenêtre de connexion CONNECTION
lignes 794 et suivantes
Ce fichier contient les indications pour créer la fenêtre présentant la carte :
WINDOW TO ENTER THE NAME OF A USER LANDMARK (or to rename one)
lignes 44 et suivantes ;USER MAP
lignes 144 et suivantes ;
On trouve ensuite les paramètres de la fenêtre de résurrection RESPAWN MAP
lignes 329 et suivantes ;
Ce fichier est à, part, il ne comporte qu'une liste de tree nodes dont toutes ont déjà été déclarées dans un autre fichier :
Ce fichier contient les paramètres de réinitialisation de nombreux éléments d'interface, de façon à pouvoir revenir à 0, sur TOUS les bureaux virtuels.
Ce fichier contient essentiellement des listes d'actions organisées en categories, avec des value et des parameters. La nomenclature en est expliquée dans action_category_action_parameter_value mais son usage précis demeure à définir.
Ce fichier contient les fenêtres d'aide et d'information suivantes :
welcome_info
lignes 10 et suivantes ;activate hardware cursor
lignes 152 et suivantes ;universe chanel warning
pour préciser que le channel Univers est spécial lignes 225 et suivantes ;death warning
lignes 333 et suivantes ;Night Warning
lignes 441 et suivantes ;help_browser
lignes 548 et suivantes ;quick_help
lignes 1034 et suivantes ;HELP BUBBLES
lignes 1210 et suivantes.
Il y a ensuite une partie Statistic report
lignes 2817 et suivantes et enfin ADMIN WINDOW
lignes 2914 et suivantes,
Ce fichier contient les paramètres d'affichage de la fenêtre d'Encyclopédie.
Ce fichier n'est qu'une liste de commands dont il semble que ce soient des paramètres pour entrer des instructions depuis la fenêtre de chat.
À tester/vérifier
Fichier vide en dehors de <interface_config></interface_config>
.
Ce fichier très bref définit les paramètres de la fenêtre de téléchargement en arrière-plan (?).