====== Interface Management ======
{{user:yannk:kh_interface.jpg?direct&450|}}
This page aims to centralize all the information concerning the creation of the game interfaces.
The instructions for creating the interface xml files are described on the dedicated page:[[en:configuration_interface_client]].
As what is provided as a concept, underlying the game interface.. is explained on the detailed page:[[en:interface_khanat_client]].
Notes to be filed:
* [[en:configuration_interface_client:jauge|Explanation of the player variables]]
===== Calls from client_default.cfg =====
The interface files are called from what is in the //INTERFACES// part of the file[[gitlab>khaganat/khanat-code/blob/develop/code/ryzom/client/client_default.cfg|client_default.cfg]]
In the code, these calls are managed by two files:
* [[gitlab>khaganat/khanat-code/blob/develop/code/ryzom/client/src/init.cpp|init.cpp]] contient l'appel vers //XMLInputFile//.
* [[gitlab>khaganat/khanat-code/blob/develop/code/ryzom/client/src/interface_v3/interface_manager.cpp|interface_manager.cpp]] contains calls to //XMLLoginInterfaceFiles// and //XMLOutGameInterfaceFiles//, and towards the images //TexturesInterface//, //TexturesLoginInterface// and //TexturesOutGameInterface//.
==== XMLInputFile ====
The currently called file [[gitlab>khaganat/khanat-data-client/blob/master/data/ryz/ryz_zzz_bazaar/input_config_v3.xml|input_config_v3.xml]] is unchanged at this time(relative to RC).
==== XMLLoginInterfaceFiles ====
These are the files that manage the login window where you identify yourself.
The files currently called are:
* [[gitlab>khaganat/khanat-data-client/blob/master/data/ryz/ryz_zzz_bazaar/login_config.xml|login_config.xml]] non modifié pour l'instant par rapport à RC
* [[gitlab>khaganat/khanat-data-client/blob/master/data/kh/kh_interfaces/login_widgets.xml|login_widgets.xml]]
* [[gitlab>khaganat/khanat-data-client/blob/master/data/kh/kh_interfaces/login_main.xml|login_main.xml]]
* [[gitlab>khaganat/khanat-data-client/blob/master/data/ryz/ryz_zzz_bazaar/login_keys.xml|login_keys.xml]]
==== XMLOutGameInterfaceFiles ====
* [[gitlab>khaganat/khanat-data-client/blob/master/data/ryz/ryz_zzz_bazaar/out_v2_config.xml|out_v2_config.xml]] Unchanged for the time being with respect to RC
* [[gitlab>khaganat/khanat-data-client/blob/master/data/ryz/ryz_zzz_bazaar/out_v2_widgets.xml|out_v2_widgets.xml]] Unchanged for the time being with respect to RC
* [[gitlab>khaganat/khanat-data-client/blob/master/data/kh/kh_interfaces/out_v2_connect.xml|out_v2_connect.xml]]
* [[gitlab>khaganat/khanat-data-client/blob/master/data/ryz/ryz_zzz_bazaar/out_v2_intro.xml|out_v2_intro.xml]] Unchanged from RC
* [[gitlab>khaganat/khanat-data-client/blob/master/data/kh/kh_interfaces/out_v2_select.xml|out_v2_select.xml]]
* [[gitlab>khaganat/khanat-data-client/blob/master/data/kh/kh_interfaces/out_v2_appear.xml|out_v2_appear.xml]]
* [[gitlab>khaganat/khanat-data-client/blob/master/data/ryz/ryz_zzz_bazaar/out_v2_location.xml|out_v2_location.xml]]
* [[gitlab>khaganat/khanat-data-client/blob/master/data/kh/kh_interfaces/out_v2_crash.xml|out_v2_crash.xml]]
* [[gitlab>khaganat/khanat-data-client/blob/master/data/kh/kh_interfaces/out_v2_hierarchy.xml|out_v2_hierarchy.xml]]
* [[gitlab>khaganat/khanat-data-client/blob/master/data/ryz/ryz_zzz_bazaar/out_v2_keys.xml|out_v2_keys.xml]] unchanged from RC
==== TexturesInterface ====
The general interface texture is: [[gitlab>https://branaz.khaganat.net/khaganat/khanat-data-client/blob/master/data/kh/kh_interfaces/interface_game_khaganat.tga|interface_game_khaganat]].
It is manufactured according to a precise procedure, and is accompanied by a .txt file of the same name.See: [[https://khaganat.net/wikhan/en:creer_icone_objet?s[]=interface#creation_du_fichier_d_interface| Creating the interface file]](To be put on a separate page with detailed procedure).
==== TexturesLoginInterface ====
The texture for the interface of the connection window is: [[gitlab>khaganat/khanat-data-client/blob/master/data/kh/kh_interfaces/interface_login_khaganat.tga|interface_login_khaganat]]. It is manufactured as: [[#texturesinterface|the above interface texture]].
==== TexturesOutGameInterface ====
The texture for the interface of the //Outgame// window, ie the creation and selection of the character, is: [[gitlab>khaganat/khanat-data-client/blob/master/data/kh/kh_interfaces/interface_outgame_khaganat.tga|interface_outgame_khaganat]]. It is manufactured as: [[#texturesinterface|the above interface texture]].
===== The database =====
The file: [[gitlab>khaganat/khanat-code/blob/develop/code/ryzom/common/data_common/database.xml|database.xml]] lists the architecture of the database that is queried by the interface xml files to obtain the server's game data(apparently).
See the importance of this //database.xml// file with the [[en:database_plr]].
There is a file [[gitlab> khaganat/khanat-code/blob/develop/code/ryzom/client/data/gamedev/interfaces_v3/ local_database.xml|local_database.xml]] (Not in //gamedev//, it is an error of placement). Which contains the database to query with ''LOCAL:''.
**LOCAL, UI or SERVER?**
\\ Always indicate a starting location when querying a database:
* The server at the base with the entry ''SERVER:'' at the start of the request.
* ''LOCAL:'' when addressing the local database.
* Quid calls that start with ''UI:''?
Party to be confirmed/deepened
The architecture of the database given in these files is simple: branches //"branch"//, to leaves //"leaf"//.. which indicate a data to return.
For example:
type="I7" />
To have the BULK_MAX parameter of our pack animals, we could create variables in the interface xml file and assign them the values with the instructions:
It is then sufficient to use these variables //pa1_bulk//, //pa2_bulk//, //pa3_bulk// and //pa5_bulk// in our //[[en:configuration_interface_client#views|VIEWS]]// and others //[[en:configuration_interface_client#controls|CONTROLS]]//.
Most of the variables called in the interface windows are created in [[gitlab>khaganat/khanat-code/blob/develop/code/ryzom/client/data/gamedev/interfaces_v3/config.xml|config.xml]] which is provided in the //data// of the client.
===== Analysis of the existent =====
==== List of tree nodes ====
The // tree nodes // let you know which windows (non-modal) are provided by the system, this makes it easier to study the starting interface.
^ File and line ^ tree node ^
|info_player.xml:1687||
|info_player.xml:2606||
|info_player.xml:3544||
|info_player.xml:3885||
|haircut.xml:226||
|r2ed_acts.xml:694||
|r2ed.xml:347||
|r2ed.xml:447||
|r2ed.xml:475||
|r2ed.xml:542||
|r2ed.xml:630||
|r2ed.xml:639| |
|r2ed.xml:648| |
|r2ed.xml:663||
|r2ed.xml:679||
|r2ed.xml:696||
|r2ed.xml:716||
|r2ed.xml:740||
|r2ed.xml:788||
|r2ed.xml:824||
|r2ed.xml:849||
|r2ed.xml:865||
|r2ed.xml:884||
|r2ed.xml:1379||
|r2ed.xml:1413||
|r2ed.xml:1462||
|r2ed.xml:1686||
|r2ed.xml:1691||
|r2ed.xml:1694||
|r2ed.xml:1697||
|r2ed.xml:2517||
|r2ed.xml:2867||
|hierarchy.xml:19| |
|hierarchy.xml:20||
|hierarchy.xml:21||
|hierarchy.xml:24||
|hierarchy.xml:25||
|hierarchy.xml:26||
|hierarchy.xml:27||
|hierarchy.xml:31||
|hierarchy.xml:34||
|hierarchy.xml:35||
|hierarchy.xml:36||
|hierarchy.xml:37||
|hierarchy.xml:44||
|hierarchy.xml:73||
|hierarchy.xml:81||
|hierarchy.xml:86||
|hierarchy.xml:102||
|hierarchy.xml:105||
|hierarchy.xml:109||
|hierarchy.xml:110||
|hierarchy.xml:112||
|hierarchy.xml:113||
|hierarchy.xml:114||
|hierarchy.xml:115||
|hierarchy.xml:116||
|hierarchy.xml:117||
|hierarchy.xml:118||
|hierarchy.xml:119||
|hierarchy.xml:120||
|hierarchy.xml:121||
|hierarchy.xml:125||
|hierarchy.xml:126||
|bg_downloader.xml:72||
|player.xml:384||
|player.xml:629||
|player.xml:928||
|player.xml:1352||
|player.xml:1431||
|player.xml:1459||
|player.xml:1461||
|player.xml:1462||
|player.xml:1463||
|player.xml:1464||
|ring_window.xml:81||
|ring_window.xml:454||
|ring_window.xml:617||
|ring_window.xml:1096||
|ring_window.xml:1555||
|ring_window.xml:1690||
|player_trade.xml:372||
|player_trade.xml:375||
|phrase.xml:827||
|phrase.xml:828||
|phrase.xml:829||
|phrase.xml:830||
|out_v2_hierarchy.xml:9| |
|out_v2_hierarchy.xml:12||
|out_v2_hierarchy.xml:13||
|out_v2_hierarchy.xml:14||
|out_v2_hierarchy.xml:15||
|out_v2_hierarchy.xml:17||
|out_v2_hierarchy.xml:21| |
|out_v2_hierarchy.xml:23||
|out_v2_hierarchy.xml:24||
|out_v2_hierarchy.xml:26| |
|bot_chat_v4.xml:4485||
|bot_chat_v4.xml:4486||
|bot_chat_v4.xml:4487||
|bot_chat_v4.xml:4488||
|bot_chat_v4.xml:4489||
|bot_chat_v4.xml:4490||
|bot_chat_v4.xml:4491||
|bot_chat_v4.xml:4492||
|bot_chat_v4.xml:4493||
|bot_chat_v4.xml:4494||
|bot_chat_v4.xml:4495||
|guild.xml:462||
|guild.xml:591||
|guild.xml:715||
|guild.xml:935||
|guild.xml:1130||
|guild.xml:1296||
|macros.xml:316||
|macros.xml:424||
|macros.xml:650||
|macros.xml:651||
|macros.xml:652||
|macros.xml:653||
|macros.xml:654||
|macros.xml:655||
|macros.xml:656||
|macros.xml:657||
|macros.xml:658||
|macros.xml:659||
|macros.xml:660||
|r2ed_connect.xml:34||
|r2ed_scenario.xml:895||
|r2ed_scenario.xml:1005||
|r2ed_scenario.xml:1060||
|inventory.xml:311||
|inventory.xml:369||
|inventory.xml:411||
|inventory.xml:747||
|inventory.xml:901||
|inventory.xml:1316||
|inventory.xml:1508||
|inventory.xml:1902||
|inventory.xml:2213||
|inventory.xml:2432||
|ring_access_point_filter.xml:57||
|game_config.xml:3900||
|compass.xml:271||
|compass.xml:754||
|compass.xml:1060||
|interaction.xml:423||
|interaction.xml:2374||
|interaction.xml:2417||
|interaction.xml:2480||
|interaction.xml:2535||
|interaction.xml:2605||
|interaction.xml:2682||
|interaction.xml:2798||
|interaction.xml:2956||
|interaction.xml:3040||
|interaction.xml:3060||
|harvest.xml:98||
|harvest.xml:101||
|widgets.xml:5391||
|widgets.xml:6159||
|outpost.xml:703||
|outpost.xml:754||
|outpost.xml:835||
|outpost.xml:924||
|outpost.xml:1030||
|outpost.xml:1097||
|help.xml:150||
|help.xml:330||
|help.xml:331||
|help.xml:438||
|help.xml:545||
|help.xml:2810||
|help.xml:2811||
|help.xml:2812||
|help.xml:2813||
|help.xml:3076||
|taskbar.xml:1198||
|taskbar.xml:1321||
|login_main.xml:826||
|login_main.xml:827||
|login_main.xml:828||
|login_main.xml:829||
|login_main.xml:830||
|login_main.xml:831||
|login_main.xml:832||
|login_main.xml:833||
|login_main.xml:834||
==== List of interface XML files by usage ====
=== Game interface ===
XMLInterfaceFiles, Present in the //client_default.cfg//(or //client.cfg//) the list of XML files used for the game interface detailed below.
* [[gitlab>khaganat/khanat-data-client/blob/master/data/kh/kh_interfaces/config.xml|config.xml]]
* [[gitlab>khaganat/khanat-data-client/blob/master/data/kh/kh_interfaces/widgets.xml|widgets.xml]]
* [[gitlab>khaganat/khanat-data-client/blob/master/data/ryz/ryz_zzz_bazaar/webig_widgets.xml|webig_widgets.xml]]
* [[gitlab>khaganat/khanat-data-client/blob/master/data/kh/kh_interfaces/player.xml|player.xml]]
* [[gitlab>khaganat/khanat-data-client/blob/master/data/ryz/ryz_zzz_bazaar/inventory.xml|inventory.xml]]
* [[gitlab>khaganat/khanat-data-client/blob/master/data/kh/kh_interfaces/interaction.xml|interaction.xml]]
* [[gitlab>khaganat/khanat-data-client/blob/master/data/kh/kh_interfaces/phrase.xml|phrase.xml]]
* [[gitlab>khaganat/khanat-data-client/blob/master/data/ryz/ryz_zzz_bazaar/harvest.xml|harvest.xml]]
* [[gitlab>khaganat/khanat-data-client/blob/master/data/kh/kh_interfaces/macros.xml|macros.xml]]
* [[gitlab>khaganat/khanat-data-client/blob/master/data/kh/kh_interfaces/info_player.xml|info_player.xml]]
* [[gitlab>khaganat/khanat-data-client/blob/master/data/ryz/ryz_zzz_bazaar/outpost.xml|outpost.xml]]
* [[gitlab>khaganat/khanat-data-client/blob/master/data/kh/kh_interfaces/guild.xml|guild.xml]]
* [[gitlab>khaganat/khanat-data-client/blob/master/data/ryz/ryz_zzz_bazaar/taskbar.xml|taskbar.xml]]
* [[gitlab>khaganat/khanat-data-client/blob/master/data/kh/kh_interfaces/game_config.xml|game_config.xml]]
* [[gitlab>khaganat/khanat-data-client/blob/master/data/ryz/ryz_zzz_bazaar/game_context_menu.xml|game_context_menu.xml]]
* [[gitlab>khaganat/khanat-data-client/blob/master/data/kh/kh_interfaces/player_trade.xml|player_trade.xml]]
* [[gitlab>khaganat/khanat-data-client/blob/master/data/kh/kh_interfaces/bot_chat_v4.xml|bot_chat_v4.xml]]
* [[gitlab>khaganat/khanat-data-client/blob/master/data/ryz/ryz_zzz_bazaar/compass.xml|compass.xml]]
* [[gitlab>khaganat/khanat-data-client/blob/master/data/kh/kh_interfaces/map.xml|map.xml]]
* [[gitlab>khaganat/khanat-data-client/blob/master/data/kh/kh_interfaces/hierarchy.xml|hierarchy.xml]]
* [[gitlab>khaganat/khanat-data-client/blob/master/data/kh/kh_interfaces/reset.xml|reset.xml]]
* [[gitlab>khaganat/khanat-data-client/blob/master/data/ryz/ryz_zzz_bazaar/actions.xml|actions.xml]]
* [[gitlab>khaganat/khanat-data-client/blob/master/data/kh/kh_interfaces/help.xml|help.xml]]
* [[gitlab>khaganat/khanat-data-client/blob/master/data/ryz/ryz_zzz_bazaar/encyclopedia.xml|encyclopedia.xml]]
* [[gitlab>khaganat/khanat-data-client/blob/master/data/ryz/ryz_zzz_bazaar/commands.xml|commands.xml]]
* [[gitlab>khaganat/khanat-data-client/blob/master/data/ryz/ryz_zzz_bazaar/commands2.xml|commands2.xml]]
* ring_access_point_filter.xml
* ring_window.xml
* [[gitlab>khaganat/khanat-data-client/blob/master/data/kh/kh_interfaces/bg_downloader.xml|bg_downloader.xml]]
Two referenced files therefore seem to be absent without this interfering with the functioning of the game(in relation to the [[en|ring|Ring]], it is true)
=== config.xml ===
This file contains mostly variable definitions, templates. Most variables used in other XML files are defined in this file.
\\ One can notice the link between the names assigned to the images in the calls of the other XML recorders and their value in the file. You can change the appearance of images just by changing the contents of the variables.
There is no //GROUP// element.
It contains the ''View type="pointer"'' line 2101, which defines the mouse image according to the context with it's size etc.
=== widgets.xml ===
This file contains the templates of the various non-fixed components of the game, such as:
* Information frames in the 3D scene(such as source content: ''"drill_source"'');
* The dialog bubbles ''"3dbulle_L"'' (note that there is a version ''"3dbulle_R"'' not used);
* Templates for menu separators, check-menus...;
* Inventory management menus;
* Currency display frame, skill points, faction;
* Chat items, edit box, context-sensitive help, object destruction dialog, some modal windows;
* Simple message window templates;
* The template of the help window of objects and bricks ''ITEM/BRICK HELP'' lines 5394 and following;
* HTML FORM SELECT WIDGET template and HTML TEXT BUTTON WIDGET templates, to line 6668;
* The webIG template: ''html browser window'' line 7019 and following.
=== webig_widgets.xml ===
These are the widgets that are used for windows in connection with webIG applications.
=== player.xml ===
Descriptions of type elements:
* Information above the character's head;
* The progress bar of the actions ''CURRENT ACTION'' line 219. The images used for the progress(of the action) are precisely: ''slot_jauge_action.tga'' for the frame, and ''gauge_action.tga'' for the zone Dynamic internal filling;
* The window of miscellaneous information(bars, names, PvP status) on the player character;
* The buff/debuff window ''BONUS MALUS'' line 631 and following;
* The animal control menu ''ANIMALS GLOBAL'' line 930 and following, including:
* Orders given to creatures (//stop//, //Follow me// etc);
* The comprehensive animal management window;
* Dead Animal Management Window ''ANIMAL(S) DEAD WINDOW'' lines 1309 and following;
* The animal inventory window template ''ANIMALS INVENTORIES'' lines 1359 and following
=== inventory.xml ===
This file(with the explicit title) contains all the elements for managing inventory windows.
This includes self-inventory, accommodation, animal bag, guild room and temporary exchange area.
It also contains the two zones of //HANDS// with the action shortcuts: ''HANDS'' lines 1086 and following for the first, '''' lines 1501 And following for the second.
There is also the "TEAM SHARING SYSTEM" payout window for lines 1933 and following.
A "DEFENSE" window is quoted in line 2326 and following, whose function remains to be specified. Possibly armor equipment area... to be checked.
A //GROUP// ''CUSTOM TEXT EDITION AND DISPLAY'' is defined in lines 2637 and following, which may be used to manage the custom text input area on objects.
=== interaction.xml ===
This file contains elements for interaction with other creatures in the game.
From row 10 and following, the "TARGET" area allows you to define the views linked to the clicked target:
* Its relative level/power;
* Its level bars;
* List of friends and //ignore list//, ''FRIEND LIST & IGNORE LIST TEMPLATE'' lines 459 and following(and see below);
* The zones of //CHAT//:
* ''CHAT TEMPLATE'' lines 554 and following;
* ''CHAT WITH NO EDIT BOX TEMPLATE'' lines 693 and following;
* ''CHAT WITH FILTER TEMPLATE'' lines 745 and following;
* ''GROUP OF CHAT'' lines 821 and following;
* ''Template of a dynamic chat tab'' lines 940 and following;
* ''The main chat group'' lines 986 and following with:
* ''SYSTEM INFO TEMPLATE'' lines 1327 and following;
* ''TEAM_CHAT'' lines 1383 and following;
* ''AROUND_ME'' lines 1390 and following, then lines 1425 and following;
* ''REGION CHAT'' lines 1397 and following, then lines 1433 and following;
* ''UNIVERSE CHAT'' lines 1404 and following;
* ''SYSTEM INFO'' lines 1418 and following and then lines 1441 and following;
* Dialogs with the team, ''TEAM'' lines 1449 and following;
* ''BASE MENU FOR CHAT BOX'' lines 1883 and later(for Chat windows when they are free) :
* ''AROUND ME CHAT'' lines 2013 and following;
* Contact templates: ''CONTACT TEMPLATE'' lines 1648 and following, in conjunction with //ignore list//, //friend list// above
* Team management menu ''TEAM_MENU'' lines 2108 and following;
* The contact management menu ''CONTACT_MENU'' lines 2184 and following;
* The chat menu by team and guild ''PARTY CHAT MENU'' lines 2269 and following;
* The window to join a team ''WINDOW TO ASK IF THE PLAYER WANT TO JOIN THE TEAM'' lines 2333 and following;
* Window to join a guild ''WINDOW TO ASK IF THE PLAYER WANT TO JOIN THE GUILD'' lines 2376 and following;
* Window to accept a duel ''WINDOW TO ASK IF A PLAYER WANT TO DUEL WITH ANOTHER PLAYER'' lines 2419 and following;
* Window to switch to PvP ''WINDOW TO ASK IF TO PLAYER WANT TO PVP'' lines 2482 and following;
* Window to switch to faction Pvp(clan?) ''WINDOW TO ASK CLAN PLAYER WANT JOIN FOR PVP'' lines 2537 And following;
* Window to join a group chat ''POPUP TO ASK IF A PLAYER WANT'S TO JOIN A PARTY CHAT'' lines 2607 and following;
* Window to enter a critical mission area ''POPUP TO ASK IF A PLAYER WANT TO ENTER A MISSION CRITICAL ZONE'' lines 2642 and following;
* Window to request teleportation ''POPUP TO ASK THE PLAYER FOR A TELEPORT LOCATION'' lines 2684 and following;
* Pure window to enter the name of a new group chat window: ''WINDOW TO ENTER THE NAME OF A NEW PARTY CHAT'' lines 2978 and following;
* Management of the ''YUBO CHAT'' lines 3064 and following;
* Dynamic channel management ''DYNAMIC CHAT'' lines 3071 and following;
=== phrase.xml ===
This plug-in contains(apparently) elements of the composition window of //sbricks// in //sphrases// and as well as that of the composition of craft recipes.
=== harvest.xml ===
Visibly obsolete(fully commented), used to collect collected MPs.
=== macros.xml ===
Manage the Macro creation and management window.
=== info_player.xml ===
This file contains the elements of different windows related to the character and it's characteristics.
First of all, the window of general information that is about the character(''Identity'').
{{ user:yannk:player_infos_xml_01.jpg?direct&580 |}}
The templates are first, up to the line 556 and then the definition sheets of //GROUPS// to the line 1684.
{{ user:yannk:fame_xml_01.jpg?direct&580 |}}
We then find the part dedicated to the renowned, ''FAME'' lines 1687 and following with first the templates up to the line 1878 then the //GROUPS//(including //SPIRES//) until the Line 2603.
Then a zone ''info_player_journal'' which must certainly concern the window of missions lines 2606 and following, with the templates to the line 2969, then the //GROUPS//to the line 3547.
Then a definition area of ''POPUP MESSAGES'' from line 3550 to 3667.
Finally, a "RPJOB TEMPLATES" zone for jobs developed by WebIG from line 3670, and then a final "NPC WEB PAGE" for interactions with NPCs managed by webIG from line 3700.
=== outpost.xml ===
=== guild.xml ===
=== taskbar.xml ==
=== game_config.xml ==
=== game_context_menu.xml ===
=== player_trade.xml ===
=== bot_chat_v4.xml ===
=== compass.xml ===
=== map.xml ===
=== hierarchy.xml ===
=== reset.xml ===
=== actions.xml ===
=== help.xml ===
=== encyclopedia.xml ===
=== commands.xml ===
=== commands2.xml ===
=== ring_access_point_filter.xml ===
=== ring_window.xml ===
=== bg_downloader.xml ===
{{tag>interface}}