Table des matières

Présentation de l'interface originelle de Ryzom Core

Appels depuis client_default.cfg

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 :

XMLInputFile

Le fichier appelé actuellement est input_config_v3.xml non modifié pour l'instant par rapport à RC.

XMLLoginInterfaceFiles

Ce sont les fichiers qui gèrent la fenêtre de connexion où l'on s'identifie.

Les fichiers appelés actuellement sont :

XMLOutGameInterfaceFiles

TexturesInterface

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.

TexturesLoginInterface

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.

TexturesOutGameInterface

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

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é.

Configuration minimale

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.

La base de données

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 :

  • le serveur à la base avec l'entrée SERVER: au départ de la requête.
  • LOCAL: quand on s'adresse à la base de données locale.
  • quid des appels qui commencent avec 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 :

database.xml
  <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 :

interface.xml
<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.

Analyse de l'existant

Liste des fichiers XML d'interface par usage

config.xml

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 ;

widgets.xml

Ce fichier contient les gabarits des différentes composantes non fixes du jeu tels que:

webig_widgets.xml

Ce sont les widgets qui servent pour les fenêtres en liaison avec des applications de type webIG.

player.xml

Descriptifs des éléments de type :

inventory.xml

Ce 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.

interaction.xml

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 :

phrase.xml

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 :

harvest.xml

Visiblement obsolète (intégralement commenté), servait au ramassages des MPs récoltées.

macros.xml

Ce fichier contient les informations pour gérer la fenêtre d'information sur les touches :

On trouve ensuite les informations sur la fenêtre de gestion des macros :

Gestion de la fenêtre de création et de gestion des Macros.

info_player.xml

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

outpost.xml

Ce fichier contient toutes les infos ayant trait à la gestion des avant-poste.

guild.xml

Gestion des éléments d'interface en rapport avec la guilde.

Comme d'habitude, d'abord les éléments de gabarits :

Puis les GROUPS :

On y trouve également d'autres fenêtres :

taskbar.xml

Ce fichier semble regrouper plusieurs fenêtres disparates :

Il y a ensuite ce qui est appelé le milko pad lignes 192 et suivantes.

Enfin il y a une partie WEB STUFF WHEN QUITING RYZOM lignes 1258 et suivantes dont la fonction demeure à préciser.

game_config.xml

Ce fichier contient tout d'abord des widgets très utiles :

On trouve ensuite la fenêtre en elle-même Main container lignes 415 et suivantes.

game_context_menu.xml

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

player_trade.xml

Ce fichier contient les informations sur les fenêtres de proposition accept_trade_invitation et d'échange/vente entre joueurs player_trade.

bot_chat_v4.xml

Ce fichier contient les éléments des fenêtres lors des interactions avec les NPCs, les objets, l'environnement :

compass.xml

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 CONNECTIONlignes 794 et suivantes

map.xml

Ce fichier contient les indications pour créer la fenêtre présentant la carte :

On trouve ensuite les paramètres de la fenêtre de résurrection RESPAWN MAP lignes 329 et suivantes ;

hierarchy.xml

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 :

reset.xml

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.

actions.xml

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.

help.xml

Ce fichier contient les fenêtres d'aide et d'information suivantes :

Il y a ensuite une partie Statistic report lignes 2817 et suivantes et enfin ADMIN WINDOW lignes 2914 et suivantes,

encyclopedia.xml

Ce fichier contient les paramètres d'affichage de la fenêtre d'Encyclopédie.

commands.xml

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

commands2.xml

Fichier vide en dehors de <interface_config></interface_config>.

bg_downloader.xml

Ce fichier très bref définit les paramètres de la fenêtre de téléchargement en arrière-plan (?).