====== XML syntax of the patch server! ======
{{ :fr:200px-text-xml.png?direct&200 |XML Icon CC BY SA RRZE icons - https://commons.wikimedia.org/wiki/User:RRZEicons}}
The [[https://khaganat.net/wikhan/en:installation_d_un_serveur_de_patchs?[]=server&s[]=patch | patch server]] needs to be configured using an xml file. This lets you know what bnp files it needs to process, and how it should do it.
Let's take this file as an example:
<_Categories>
<_Category>
<_Name type="STRING" value="khanat_lirria"/>
<_IsOptional type="SINT32" value="0"/>
<_UnpackTo type="STRING" value="./unpack/"/>
<_IsIncremental type="SINT32" value="1"/>
<_Files type="STRING" value="aaa_lirria.bnp"/>
<_Files type="STRING" value="fonts.bnp"/>
<_Files type="STRING" value="kh_characters_maps_clothes.bnp"/>
<_Files type="STRING" value="kh_characters_shapes.bnp"/>
<_Files type="STRING" value="kh_construction.bnp"/>
<_Files type="STRING" value="kh_environnement_bank.bnp"/>
<_Files type="STRING" value="kh_environnement_maps.bnp"/>
<_Files type="STRING" value="kh_fauna_animation.bnp"/>
<_Files type="STRING" value="kh_fauna_maps.bnp"/>
<_Files type="STRING" value="kh_fauna_shape.bnp"/>
<_Files type="STRING" value="kh_font.bnp"/>
<_Files type="STRING" value="kh_handled_item.bnp"/>
<_Files type="STRING" value="kh_interfaces.bnp"/>
<_Files type="STRING" value="kh_outgame.bnp"/>
<_Files type="STRING" value="kh_sfx.bnp"/>
<_Files type="STRING" value="kh_sky.bnp"/>
<_Files type="STRING" value="kh_sound.bnp"/>
<_Files type="STRING" value="kh_server.bnp"/>
<_Files type="STRING" value="kh_translate_de.bnp"/>
<_Files type="STRING" value="kh_translate_en.bnp"/>
<_Files type="STRING" value="kh_translate_es.bnp"/>
<_Files type="STRING" value="kh_translate_fr.bnp"/>
<_Files type="STRING" value="kh_translate_ru.bnp"/>
<_Files type="STRING" value="kh_translate_wk.bnp"/>
<_Files type="STRING" value="ryz_characters_animations.bnp"/>
<_Files type="STRING" value="ryz_characters_maps_body.bnp"/>
<_Files type="STRING" value="ryz_characters_maps_clothes.bnp"/>
<_Files type="STRING" value="ryz_characters_maps_hair.bnp"/>
<_Files type="STRING" value="ryz_characters_maps_underwear.bnp"/>
<_Files type="STRING" value="ryz_characters_shapes.bnp"/>
<_Files type="STRING" value="ryz_characters_skeletons.bnp"/>
<_Files type="STRING" value="ryz_construction.bnp"/>
<_Files type="STRING" value="ryz_environnement_bank.bnp"/>
<_Files type="STRING" value="ryz_environnement_displaces.bnp"/>
<_Files type="STRING" value="ryz_environnement_ig.bnp"/>
<_Files type="STRING" value="ryz_environnement_lightmaps.bnp"/>
<_Files type="STRING" value="ryz_environnement_maps.bnp"/>
<_Files type="STRING" value="ryz_environnement_pacs_prim.bnp"/>
<_Files type="STRING" value="ryz_environnement_shapes.bnp"/>
<_Files type="STRING" value="ryz_environnement_tiles.bnp"/>
<_Files type="STRING" value="ryz_environnement_vegetables.bnp"/>
<_Files type="STRING" value="ryz_environnement_vegetable_sets.bnp"/>
<_Files type="STRING" value="ryz_environnement_zones.bnp"/>
<_Files type="STRING" value="ryz_fauna_maps.bnp"/>
<_Files type="STRING" value="ryz_fauna_shape.bnp"/>
<_Files type="STRING" value="ryz_fauna_skeletons.bnp"/>
<_Files type="STRING" value="ryz_handled_item.bnp"/>
<_Files type="STRING" value="ryz_help.bnp"/>
<_Files type="STRING" value="ryz_indoors_ig.bnp"/>
<_Files type="STRING" value="ryz_indoors_lightmaps.bnp"/>
<_Files type="STRING" value="ryz_indoors_pacs.bnp"/>
<_Files type="STRING" value="ryz_indoors_shapes.bnp"/>
<_Files type="STRING" value="ryz_interfaces.bnp"/>
<_Files type="STRING" value="ryz_ring.bnp"/>
<_Files type="STRING" value="ryz_sfx.bnp"/>
<_Files type="STRING" value="ryz_sky.bnp"/>
<_Files type="STRING" value="ryz_sound.bnp"/>
<_Files type="STRING" value="ryz_translate.bnp"/>
<_Files type="STRING" value="ryz_zzz_bazaar.bnp"/>
<_IndexFileName type="STRING" value="ryzom.hist"/>
<_PatchDirectory type="STRING" value="patch_game/patch/"/>
<_BnpDirectory type="STRING" value="patch_game/bnp/"/>
<_RefDirectory type="STRING" value="patch_game/ref/"/>
<_NextVersionFile type="STRING" value="patch_game/Lirria.version"/>
<_ClientIndexFileName type="STRING" value="ryzom"/>
===== Categories =====
The first part of **<_Categories>** and **** contains **<_Category> ** to create sets of bnp's that are processed each time according to the given instructions. You can create as many sets as you like, with any number of .bnp files(in every one) as you like.
==== Name ====
''<_Name type="STRING" value=" "/>''
The section ("value=") contains the name given to the section for organization purpose.
This is a mandatory indication.
==== Optional ====
''<_IsOptional type="SINT32" value="0"/>''
We set ("value=") to "1", so the user can decide **NOT** to apply the patch on this section, else "0" if we don't want to give the user a choice.
This is a mandatory indication.
==== Inheritance ====
''<_CatRequired type="STRING" value="interface"/>''
The __category name__ on which is a dependency value. In other words, if the parent category is not activated, this category will not be activated either. This allows you to disable file sets for creating new patches. This is an optional indication.
==== Hidden ====
''<_Hidden type="SINT32" value="1"/>''
Setting this value to "1" allows you to disregard this section(if you would like to disable the patches for a while). This will also affect the sections that inherit from this section(see above). If the value "0" is choosen, it reactivates, as this is the default behavior if we do not indicate anything. This indication is optional.
OBS: This info needs to be confirmed!
==== Incremental ====
''<_IsIncremental type="SINT32" value="1"/>''
We will set the value to "0" if we **DO NOT** want the file to be incremented **BUT** transferred only in its own entity. It is set to the value "1" if not.
This is a mandatory indication.
==== Unpacking ====
''<_UnpackTo type="STRING" value="./user/"/>''
Lets you specify a directory in which to decompress the bnp file/files. The address is "./" to indicate the directory where the executable is located, and it **MUST** end with a "/". If we omit this indication, the .bnp files will just be transferred into the "data"(client) subdirectory, without being decompressed.
==== File ====
''<_Files type="STRING" value="leveldesign.bnp"/>''
This indicates the name of the bnp file to be processed. There can be several specified, each in a new line of type: <_Files type = "STRING" value = "xxx.bnp"/>
===== Indexing file =====
''<_IndexFileName type="STRING" value="ryzom.hist"/>''
The "ryzom.hist" file is the one who contains all the history, specified in a "value". Without path indicated, it will be at the same level as ryzom.xml.
===== Patch directory =====
''<_PatchDirectory type="STRING" value="patch_game/patch/"/>''
This is the directory path, in which the system will generate it's patches. It is important that it's indicated from the root(patch_game/..) directory(as goes for above ryzom.xml), **WITH** ''patch_game'' first, which contains **THIS xml file**.
===== Directory bnp =====
''<_BnpDirectory type="STRING" value="patch_game/bnp/"/>''
This is the directory path to which the system stores the .bnp files used to generate the patches. As above, One's again, it is from patch(root) you should set the path(ie: ''patch_game/''..).
===== Directory references =====
''<_RefDirectory type="STRING" value="patch_game/ref/"/>''
The path to the directory where the system stores the diff files used to generate the patches. As above, One's again, it is from patch(root) you should set the path(ie: ''patch_game/''..).
===== Next version file =====
''<_NextVersionFile type="STRING" value="patch_game/Lirria.version"/>''
The name of the file that contains the number of the next patch version, which it automatically increments. Again, it is from patch(root) you should set the path(ie: ''patch_game/''..).
===== Client index file =====
''<_ClientIndexFileName type="STRING" value="ryzom"/>''
This is the file(of type ''.idx'') that will be generated by the system and also used by clients to track the versions of it's file's. If we say(as this value: "ryzom"), the file will be in the form of: "ryzom_00001.idx".
{{tag> server MMORPG tutorial shard}}