Ceci est une ancienne révision du document !
Gestion des interfaces
Cette page vise à centraliser toutes les informations concernant la création des interfaces de jeu.
Les indications pour créer les fichiers xml d'interfaces sont décrites sur une page dédiée: Configuration de l'interface client.
Ce qui est prévu comme concept sous-tendant l'interface de jeu est expliqué dans un page détaillée : Interface du client Khanat.
Notes à classer :
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 :
- init.cpp contient l'appel vers XMLInputFile.
- interface_manager.cpp contient les appels vers XMLLoginInterfaceFiles et XMLOutGameInterfaceFiles, et vers les images TexturesInterface, TexturesLoginInterface et TexturesOutGameInterface.
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 :
- login_config.xml non modifié pour l'instant par rapport à RC
XMLOutGameInterfaceFiles
- out_v2_config.xml non modifié pour l'instant par rapport à RC
- out_v2_widgets.xml non modifié pour l'instant par rapport à RC
- out_v2_intro.xml non modifié par rapport à RC
- out_v2_keys.xml non modifié par rapport à RC
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 Création du fichier d'interface (à mettre sur une page à part avec procédure détaillée).
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.
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 tree nodes
Les tree nodes permettent de savoir quelles fenêtres (non modales) sont prévues par le système, cela permet de faciliter l'étude de l'interface de départ.
Liste des fichiers XML d'interface par usage
Interface de jeu
XMLInterfaceFiles, présente 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.
- ring_access_point_filter.xml
- ring_window.xml
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)
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" />
widgets.xml
Ce fichier contient les gabarits des différentes composantes non fixes du jeu tels que:
- cadres d'informations dans la scène 3D (comme le contenu des sources :
“forage_source”) ; - les bulles de dialogues
“3dbulle_L”(à noter qu'il existe une version“3dbulle_R”non utilisée) ; - gabarits de séparateurs de menus, de menus à cocher… ;
- menus de gestion des inventaires ;
- cadre affichage de la monnaie, des points de compétence, de faction ;
- éléments du chat, de la boîte d'édition, de l'aide contextuelle, de la boîte de dialogue de destruction d'objet, de certaines fenêtres modales ;
- les gabarits de fenêtres de message simple ;
- le gabarit de la fenêtre d'aide des objets et briques
ITEM/BRICK HELPlignes 5394 et suivantes ; - le gabarit des
HTML FORM SELECT WIDGETet desHTML TEXT BUTTON WIDGET, vers la ligne 6668 ; - le gabarit de la fenêtre du WebIG :
html browser windowligne 7019 et suivantes.
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 :
- Informations au-dessus de la tête du personnage ;
- La barre de progression des actions
CURRENT ACTIONligne 219. Les images utilisées pour la progression de l'action sont précisément :slot_jauge_action.tgapour le cadre etjauge_action.tgapour la zone de remplissage interne dynamique ; - La fenêtre d'informations diverses (barres, noms, statut PvP) sur le personnage joueur ;
- La fenêtre de buff/debuff
BONUS MALUSligne 631 et suivantes ; - Le menu de contrôle des animaux
ANIMALS GLOBALligne 930 et suivantes, incluant :- les ordres données aux créatures (stop, Suivez-moi etc.) ;
- La fenêtre de gestion globale des animaux ;
- La fenêtre de gestion des animaux morts
ANIMAL(S) DEAD WINDOWlignes 1309 et suivantes ; - Le gabarit de fenêtre d'inventaire des animaux
ANIMALS INVENTORIESlignes 1359 et suivantes
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
Cefichier 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 :
- son niveau/ sa puissance relative ;
- ses barres de niveau ;
- la liste d'amis et de ignore list,
FRIEND LIST & IGNORE LIST TEMPLATElignes 459 et suivantes (et voir plus bas) ; - les zones de CHAT :
CHAT TEMPLATElignes 554 et suivantes ;CHAT WITH NO EDIT BOX TEMPLATElignes 693 et suivantes ;CHAT WITH FILTER TEMPLATElignes 745 et suivantes ;GROUP OF CHATlignes 821 et suivantes ;template of a dynamic chat tablignes 940 et suivantes ;the main chat grouplignes 986 et suivantes avec :SYSTEM INFO TEMPLATElignes 1327 et suivantes ;TEAM_CHATlignes 1383 et suivantes ;AROUND_MElignes 1390 et suivantes puis lignes 1425 et suivantes ;REGION CHATlignes 1397 et suivantes puis lignes 1433 et suivantes ;UNIVERSE CHATlignes 1404 et suivantes ;SYSTEM INFOlignes 1418 et suivantes puis lignes 1441 et suivantes ;- Les boites de dialogues avec l'équipe,
TEAMlignes 1449 et suivantes ; BASE MENU FOR CHAT BOXlignes 1883 et suivantes (pour les fenêtres de Chat quand elles sont libres) :AROUND ME CHATlignes 2013 et suivantes ;
- les gabarits des contacts :
CONTACT TEMPLATElignes 1648 et suivantes, en liaison avec l'ignore list, la friend list ci-dessus - le menu de gestion d'équipe
TEAM_MENUlignes 2108 et suivantes ; - le menu de gestion des contacts
CONTACT_MENUlignes 2184 et suivantes ; - le menu de chat par équipe et par guilde
PARTY CHAT MENUlignes 2269 et suivantes ; - la fenêtre pour rejoindre une équipe
WINDOW TO ASK IF A PLAYER WANT TO JOIN A TEAMlignes 2333 et suivantes ; - la fenêtre pour rejoindre une guilde
WINDOW TO ASK IF A PLAYER WANT TO JOIN A GUILDlignes 2376 et suivantes ; - fenêtre pour accepter un duel
WINDOW TO ASK IF A PLAYER WANT TO DUEL WITH ANOTHER PLAYERlignes 2419 et suivantes ; - fenêtre pour passer en PvP
WINDOW TO ASK IF A PLAYER WANT TO PVPlignes 2482 et suivantes ; - fenêtre pour passer en Pvp de faction (clan ?)
WINDOW TO ASK CLAN PLAYER WANT JOIN FOR PVPlignes 2537 et suivantes ; - fenêtre pour rejoindre un chat de groupe
POPUP TO ASK IF A PLAYER WANT TO JOIN A PARTY CHATlignes 2607 et suivantes ; - fenêtre pour entrer dans une zone critique de mission
POPUP TO ASK IF A PLAYER WANT TO ENTER A MISSION CRITICAL ZONElignes 2642 et suivantes ; - fenêtre pour demander téléportation
POPUP TO ASK THE PLAYER FOR A TELEPORT LOCATIONlignes 2684 et suivantes ; - fenêtre pur entrer le nm d'une nouvelle fenêtre de chat de groupe :
WINDOW TO ENTER THE NAME OF A NEW PARTY CHATlignes 2978 et suivantes ; - gestion du
YUBO CHATlignes 3064 et suivantes ; - gestion de canaux dynamiques
DYNAMIC CHATlignes 3071 et suivantes ;
phrase.xml
Ce ficheir 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.
harvest.xml
Visiblement obsolète (intégralement commenté), servait au ramassages des MPs récoltées.
macros.xml
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








