Table des matières

Syntaxe xml du serveur de patch

XML Icon CC BY SA RRZE icons - https://commons.wikimedia.org/wiki/User:RRZEicons

Le serveur de patchs nécessite d'être configuré à l'aide d'un fichier xml. Cela permet de savoir quels fichiers bnp il doit traiter, et comment il doit le faire.

Reprenons comme exemple notre fichier :

ryzom.xml
<xml>
        <_Categories>
                <_Category>
                        <_Name type="STRING" value="khanat_lirria"/>
                        <_IsOptional type="SINT32" value="0"/>
                        <_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_body.bnp"/>
                        <_Files type="STRING" value="kh_characters_maps_clothes.bnp"/>
                        <_Files type="STRING" value="kh_characters_shapes.bnp"/>
                        <_Files type="STRING" value="kh_characters_skeletons.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_fauna_skeletons.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_server.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_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_packedsheets.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_translate.bnp"/>
                        <_Files type="STRING" value="ryz_zzz_bazaar.bnp"/>
                </_Category>
        </_Categories>
        <_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"/>
</xml>

Les catégories

La première partie entre <_Categories> et </_Categories> contient des <_Category></_Category> qui permettent de créer des ensembles de bnp que l'on traite à chaque fois selon les instructions données. On peut créer autant d'ensemble qu'on le souhaite, avec le nombre de fichiers bnp dans chaque que l'on désire.

Nom

<_Name type=“STRING” value=“**”/>

On indique dans “value” le nom qu'on donne à cette section, cela permet de s'organiser. C'est une indication obligatoire.

Optionnel

<_IsOptional type=“SINT32” value=“0”/>

On met value à “1” si l'utilisateur peut décider de ne pas appliquer le patch sur cette section, et “0” si il n'a pas le choix. C'est une indication obligatoire.

Héritage

<_CatRequired type=“STRING” value=“interface”/>

On indique dans value le nom de la catégorie dont dépend cette section. Si la catégorie mère n'est pas activée, celle-ci ne le sera pas non plus. Cela permet de désactiver des ensembles de fichiers pour la création de nouveaux patchs. C'est une indication facultative.

Caché

<_Hidden type=“SINT32” value=“1”/>

Mettre cette valeur à 1 permet de ne pas tenir compte de cette section, de façon à désactiver les patchs pour un certain temps. Cela affectera aussi les sections qui héritent de cette section (voir ci-dessus). Si on passe à “0” cela réactive, et c'est le comportement par défaut si on n'indique rien. Cette indication est facultative.

À vérifier

Incrémental

<_IsIncremental type=“SINT32” value=“1”/>

On met à “0” si on ne souhaite pas que le fichier puisse être incrémenté mais transféré seulement intégralement. On met sur “1” dans le cas contraire. C'est une indication obligatoire.

Dépaquetage

<_UnpackTo type=“STRING” value=“./user/”/>

Permet d'indique un répertoire dans lequel décompresser le(s) fichier(s) bnp. L'adresse se fait avec “./” pour indiquer le répertoire où se trouve l'exécutable et doit se terminer par un “/”. Si on omet cette indication, le bnp sera juste transféré dans le sous-répertoire “data”, sans être décompressé.

Fichier

<_Files type=“STRING” value=“leveldesign.bnp”/>

On indique là le nom du fichier bnp qui doit être traité. Il peut y en avoir plusieurs indiqués, chacun dans une nouvelle ligne du type <_Files type=“STRING” value=“xxx.bnp”/>

Fichier d'indexation

<_IndexFileName type=“STRING” value=“ryzom.hist”/>

On indique dans value le nom du fichier qui va contenir l'historique. Sans chemin indiqué, il sera au même niveau que ryzom.xml.

Répertoire de patchs

<_PatchDirectory type=“STRING” value=“patch_game/patch/”/>

Le chemin du répertoire dans lequel le système va générer les patchs. Il faut l'indiquer depuis le répertoire racine, donc au-dessus de ryzom.xml, avec patch_game en premier, qui contient ce xml.

Répertoire bnp

<_BnpDirectory type=“STRING” value=“patch_game/bnp/”/>

Le chemin du répertoire dans lequel le système stocke les fichiers bnp qui lui servent à générer les patchs. Comme ci-dessus, c'est par rapport à la racine du système de patch qu'il faut l'indiquer.

Répertoire références

<_RefDirectory type=“STRING” value=“patch_game/ref/”/>

Le chemin du répertoire dans lequel le système stocke les fichiers diff qui lui servent à générer les patchs. Comme ci-dessus, c'est par rapport à la racine du système de patch qu'il faut l'indiquer.

Fichier de version suivante

<_NextVersionFile type=“STRING” value=“patch_game/Lirria.version”/>

Le nom du fichier qui contient le numéro de la version suivante du patch, qu'il incrémente automatiquement. Là encore, il faut indiquer le chemin depuis la racine du système de patch.

Fichier d'indexation client

<_ClientIndexFileName type=“STRING” value=“ryzom”/>

Le début du nom de fichier de type idx qui sera généré par le système et utilisé par les clients pour suivre les versions de ses fichiers. Si on indique, comme ici, “ryzom”, les fichiers seront de la forme “ryzom_00000.idx”.