Aller au menu du forum Aller au contenu du forum Aller à la recherche dans le forum
Logo Khaganat
Menu principal

Journal d'expérimentation

Liria

Journal d'expérimentation

Aujourd'hui je voulais savoir comment réduire drastiquement la taille occupée par le dossier data de ryzom. L'idée est de se créer sa propre installation de khanat, sans les 1,5 Go de données du client officiel en fichier  compresssé. Mon regard se tourne en premier vers le client ryzom core

http://sourceforge.net/projects/ryzom/files/ :

ryzom_setup_644.exe    1.5 GB
ryzom_client_open.7z    652.6 MB

Plus que 600 Mo, je le récupère et l'installe sur mon poste puis compare  avec le dossier data du ryzom officiel.

Les fichiers packed_sheets (les data sheets) sont tous de tailles différentes, normal c'est ce qui devrait changer.
Les bnp (fichiers compressés contenant les modèles 3d et textures) sont tous les même (à une exception prêt).
Dans la version ryzom core, il manque les fichiers bnp des continent à savoir :

terre_*.bnp
zorai_*.bnp
tryker_*.bnp
sources_*.bnp
route_gouffre_*.bnp
primes_racines_*.bnp
nexus_*.bnp
matis_*.bnp
fyros_*
bagne_*

il ne reste que comme continent
newbieland_*.bnp

les fichiers bnp en relation avec le ring  "r2_*.bnp" on également été supprimés :

r2_buffer.dat       r2_forest_pz.bnp    r2_lakes_pz.bnp
r2_desert2.bnp      r2_jungle2.bnp      r2_misc.bnp
r2_desert.bnp       r2_jungle.bnp       r2_roots2.bnp
r2_desert_maps.bnp  r2_jungle_maps.bnp  r2_roots.bnp
r2_desert_pz.bnp    r2_jungle_pz.bnp    r2_roots_maps.bnp
r2_forest2.bnp      r2_lakes2.bnp       r2_roots_pz.bnp
r2_forest.bnp       r2_lakes.bnp        
r2_forest_maps.bnp  r2_lakes_maps.bnp  

J'ai quelques idées pour supprimer encore plus de données
par exemple le gros de l'espace disque est représenté par les tenues :

54M characters_animations.bnp
77M characters_maps_fy_hof_armor00_hr.bnp
85M characters_maps_fy_hof_armor01_hr.bnp
6,7M characters_maps_fy_hof_caster01_hr.bnp
9,6M characters_maps_fy_hof_cheveux_hr.bnp
55M characters_maps_fy_hof_civil01_hr.bnp
17M characters_maps_fy_hof_underwear_hr.bnp
11M characters_maps_fy_hof_visage_hr.bnp
66M characters_maps_fy_hom_armor00_hr.bnp
67M characters_maps_fy_hom_armor01_hr.bnp
856K characters_maps_fy_hom_barman_hr.bnp
4,0K characters_maps_fy_hom_casque01_hr.bnp
8,1M characters_maps_fy_hom_caster01_hr.bnp
13M characters_maps_fy_hom_cheveux_hr.bnp
86M characters_maps_fy_hom_civil01_hr.bnp
2,1M characters_maps_fy_hom_ruflaket_hr.bnp
5,4M characters_maps_fy_hom_underwear_hr.bnp
11M characters_maps_fy_hom_visage_hr.bnp
135M characters_maps_hr.bnp
87M characters_maps_ma_hof_armor00_hr.bnp
32M characters_maps_ma_hof_armor01_hr.bnp
8,1M characters_maps_ma_hof_casque01_hr.bnp
8,1M characters_maps_ma_hof_caster01_hr.bnp
12M characters_maps_ma_hof_cheveux_hr.bnp
87M characters_maps_ma_hof_civil01_hr.bnp
17M characters_maps_ma_hof_underwear_hr.bnp
12M characters_maps_ma_hof_visage_hr.bnp
25M characters_maps_ma_hom_armor00_hr.bnp
33M characters_maps_ma_hom_armor01_hr.bnp
4,0K characters_maps_ma_hom_casque01_hr.bnp
8,1M characters_maps_ma_hom_caster01_hr.bnp
13M characters_maps_ma_hom_cheveux_hr.bnp
43M characters_maps_ma_hom_civil01_hr.bnp
11M characters_maps_ma_hom_underwear_hr.bnp
12M characters_maps_ma_hom_visage_hr.bnp
91M characters_maps_tr_hof_armor00_hr.bnp
39M characters_maps_tr_hof_armor01_hr.bnp
4,0K characters_maps_tr_hof_casque01_hr.bnp
6,7M characters_maps_tr_hof_caster01_hr.bnp
12M characters_maps_tr_hof_cheveux_hr.bnp
87M characters_maps_tr_hof_civil01_hr.bnp
11M characters_maps_tr_hof_refugee_hr.bnp
16M characters_maps_tr_hof_underwear_hr.bnp
11M characters_maps_tr_hof_visage_hr.bnp
64M characters_maps_tr_hom_armor00_hr.bnp
38M characters_maps_tr_hom_armor01_hr.bnp
4,0K characters_maps_tr_hom_casque01_hr.bnp
6,7M characters_maps_tr_hom_caster01_hr.bnp
13M characters_maps_tr_hom_cheveux_hr.bnp
96M characters_maps_tr_hom_civil01_hr.bnp
23M characters_maps_tr_hom_refugee_hr.bnp
8,6M characters_maps_tr_hom_underwear_hr.bnp
11M characters_maps_tr_hom_visage_hr.bnp
107M characters_maps_zo_hof_armor00_hr.bnp
122M characters_maps_zo_hof_armor01_hr.bnp
4,0K characters_maps_zo_hof_casque01_hr.bnp
6,7M characters_maps_zo_hof_caster01_hr.bnp
12M characters_maps_zo_hof_cheveux_hr.bnp
98M characters_maps_zo_hof_civil01_hr.bnp
22M characters_maps_zo_hof_underwear_hr.bnp
6,9M characters_maps_zo_hof_visage_hr.bnp
113M characters_maps_zo_hom_armor00_hr.bnp
104M characters_maps_zo_hom_armor01_hr.bnp
4,0K characters_maps_zo_hom_casque01_hr.bnp
7,1M characters_maps_zo_hom_caster01_hr.bnp
13M characters_maps_zo_hom_cheveux_hr.bnp
48M characters_maps_zo_hom_civil01_hr.bnp
11M characters_maps_zo_hom_underwear_hr.bnp
6,8M characters_maps_zo_hom_visage_hr.bnp
41M characters_shapes.bnp
1,2M characters_skeletons.bnp
8,0K characters_swt.bnp

« character_map_* » sont les textures des tenues. Il m'apparait que nous pouvons toutes les supprimer, ne gardant pour le moment que la tenue de refugié puis introduisant une à une nos tenues

Idem pour la faune

29M fauna_animations.bnp
112M fauna_maps.bnp
43M fauna_shapes.bnp
1,2M fauna_skeletons.bnp
4,0K fauna_swt.bnp

Pour le moment nous n'utilisons que le yubo, pourquoi garder toutes ces données inutiles ?
D'ailleurs de toute façon nous voulons  revoir les principes de nommages des textures et shape et autres éléments. Il est donc préférable de tout réintroduire  élément par élément en fonction des besoins et avec notre organisation de « fichiers » et « noms ». Cela permettrait entre autres de supprimer les références aux « noms » ryzomiens qui restent à mon sens propriétés de jeu ryzom même si les assets sont libres.

Mais avant de m'attaquer à tout cela, je voulais aussi revoir l'écran de sélection des personnages.

J'avais trouvé dans le dossier
« code/ryzom/common/data_leveldesign/leveldesign/Game_elem/CreatePerso » les datasheet définissant les caractéristiques des races de l'écran de création
$ ls
fyros_craftsman.starting_role  matis_craftsman.starting_role  _parent                         tryker.race_stats              zorai.race_stats
fyros_fighter.starting_role    matis_fighter.starting_role    tryker_craftsman.starting_role  zorai_craftsman.starting_role
fyros_harvester.starting_role  matis_harvester.starting_role  tryker_fighter.starting_role    zorai_fighter.starting_role
fyros_magician.starting_role   matis_magician.starting_role   tryker_harvester.starting_role  zorai_harvester.starting_role
fyros.race_stats               matis.race_stats               tryker_magician.starting_role   zorai_magician.starting_role

Ces datasheets référencent ceux du dossier
« code/ryzom/common/data_leveldesign/leveldesign/Game_elem/Creature/Npc/parent/_basics_3D »
pour les modèles 3D utilisés. Ce qui fait qu'il est facile de changer « l'apparence » de ces races en éditant ces fichiers :
_basics_3D$ ls
_fyros_female.creature  _homin_attack.creature    _karavan_male.creature  _matis_male.creature     _tryker_male.creature   _zorai_male.creature
_fyros_male.creature    _karavan_female.creature  _matis_female.creature  _tryker_female.creature  _zorai_female.creature
Mais voilà, ces fichiers permettent de définir les races de l'écran de création, mais pas d'indiquer au client la liste des races à proposer lors de la création. Je regarde dans le dossier « code/ryzom/common/data_leveldesign/primitives » qui doit contenir  les définitions globales du jeu, mais je ne trouve aucune référence aux mots « fyros », « matis », etc... Alors je me rends du coté du canal #ryzom sur freenode et on m'oriente plutôt vers les fichiers xml de définition des écrans d''interface. C'est à dire dans :
« code/ryzom/client/data/gamedev/interfaces_v3 » qui correspond au contenu du fichier « gamedev.bnp » dans le dossier data du client

Mon but est simple, j'aimerai que nous repartions sur des races à nous. La première étape consiste à virer les races existantes et de n'en garder que 2 ( 2 pour gérer  tous les aspects sélections ) et de diminuer de moitié la taille occupée par les assets des ces classes donc. Après des recherches, des tests, des « segmentation fault » en éditant les fichiers j'ai enfin trouvé la solution. Le fichier concerné s'appelle : « out_v2_appear.xml » qui décrit l'interface de l'écran de création des personnages :

J'ai finalement trouvé ligne 1840 et suivantes les boutons de la race « matis » et « tryker » dans le menu de création. Races que j'ai supprimé (oui c'est arbitraires ces deux races, mais fallait garder les zoraï  pour les PNJ déjà présents, et j'ai un perso fyros sur mon serveur de test *tire la langue* ).

<ctrl style="opt_button" id="fyros_but" posref="TL TL" x="60" y="-88" hardtext="uiCP_Specie_Fyros"
onover="play_sound" params_over="name=specie_but_over"
onclick_l="proc" params_l="proc_select_specie|0"/>

<!--  remove the matis and tryker choice for species
<ctrl style="opt_button" id="matis_but" posparent="fyros_but" posref="BL TL" hardtext="uiCP_Specie_Matis"
onover="play_sound" params_over="name=specie_but_over"
onclick_l="proc" params_l="proc_select_specie|1"/>

<ctrl style="opt_button" id="tryker_but" posparent="matis_but" posref="BL TL" hardtext="uiCP_Specie_Tryker"
onover="play_sound" params_over="name=specie_but_over"
onclick_l="proc" params_l="proc_select_specie|2"/>
-->

<ctrl style="opt_button" id="zorai_but" posparent="fyros_but" posref="BL TL" hardtext="uiCP_Specie_Zorai"
onover="play_sound" params_over="name=specie_but_over"
onclick_l="proc" params_l="proc_select_specie|3"/>


<group id="logos" posref="TL TL" x="28" y="-80" h="380" w="44" >
<view type="bitmap" id="fyros" posref="TL TL" texture="opt_on_fyros.tga" global_color="false" />
<!--
<view type="bitmap" id="matis" posparent="fyros" y="" posref="BL TL" texture="opt_on_matis.tga" global_color="false" />
<view type="bitmap" id="tryker" posparent="matis" y="" posref="BL TL" texture="opt_on_tryker.tga" global_color="false" />
-->
<view type="bitmap" id="zorai" posparent="fyros" y="" posref="BL TL" texture="opt_on_zorai.tga" global_color="false" />
</group>
Au passage je trouve aussi comment ne garder qu'un seul fond, en l'occurence l'appartement fyros pour tous les écrans :

lignes 940 et suivantes :
<!-- Change Landscape -->
<action handler="set" cond="eq(@UI:TEMP:CHAR3D:PEOPLE,0)" params="target_property=ui:outgame:appear:char3d:env:name|value='outgame_fyros.ig'" />
<action handler="set" cond="eq(@UI:TEMP:CHAR3D:PEOPLE,1)" params="target_property=ui:outgame:appear:char3d:env:name|value='outgame_fyros.ig'" />
<action handler="set" cond="eq(@UI:TEMP:CHAR3D:PEOPLE,2)" params="target_property=ui:outgame:appear:char3d:env:name|value='outgame_fyros.ig'" />
<action handler="set" cond="eq(@UI:TEMP:CHAR3D:PEOPLE,3)" params="target_property=ui:outgame:appear:char3d:env:name|value='outgame_fyros.ig'" />

j'ai remplacé les « outgame_XXXX.ig » contenant les nom des fichiers 3D des apparts par ceux des fyros. Cela permettra d'avoir un client encore plus léger.

Résultat



Voila l'écran que l'appart est fyros malgré la création d'un personnage zoraï. De plus le menu de choix des races ne propose que « fyros » ou « zoraï ».

Cependant,  j'ai eu un problème après ces tests :
Citation$ ./khanat_client-2013-12-17
HEY!
XML reading failed!
Interface XML reading failed!
Some XML files are corrupted and may have been removed.
Ryzom may need to be restarted to run properly.
Would you like to quit now?
(Y)es or (N)o ?N
Erreur de segmentation

Systématiquement, mon client plantait lors de la connexion après sélection du personnage. Comme j'avais édité par mal de fichiers lors de mes expériences, j'ai remis une installation de base avec le client open ryzom. Même résultat. Finalement je suis repassé sur l'installation officiel en appliquant ma modification et là plus de plantage.

A priori les datas du client_open_ryzom sont trop anciennes et ne fonctionnent pas avec notre serveur de test. Du coup j'ai  recopié le dossier data du ryzom officile et j'ai supprimé manuellement tous les BNP retirés dans le client open_ryzom Cette fois cela fonctionne. Prochaines étapes, continuer à nettoyer les BNP pour fournir à Za un client occupant un espace minimum pour ceux ayant une bande passante réduite.

Pour les curieux, voila le fichier modifié de l'interface à copier dans le dossier "user" pour obtenir ce résultat ;
out_v2_appear.xml

Note : je n'ai fait que retirer les entrées du menu "matis" et "tyrker", le client continue de charger les données sur ces races pour le moment.
Dernière édition: 01 Janvier 1970 à 01:00:00 par Guest

Liria

Suite des expérimentations :

Yannk me l'avait fait remarquer de suite, mais j'avais fait semblant de considérer cela comme peccadille insignifiante. La réalité était toute autre, j'avais fouillé sans succès pour corriger ce problème : Dans l'écran de création du personnage, sur la case de sélection, les 4 races étaient toujours présentent.



J'avais décidé de reprendre tout à zéro. Je regarde le fichier « client_default.cfg » et note tous les fichiers servant à la gestion de l'écran de Création/Sélection du personnage :

XMLOutGameInterfaceFiles = {
        "out_v2_config.xml",
        "out_v2_widgets.xml",
        "out_v2_connect.xml",
        "out_v2_intro.xml",
        "out_v2_select.xml",
        "out_v2_appear.xml",
        "out_v2_location.xml",
        "out_v2_crash.xml",
        "out_v2_hierarchy.xml",
        "out_v2_keys.xml",
};

Je récupère l'ensemble de ces fichiers à partir du dossier « code/ryzom/client/data/gamedev/interfaces_v3 » du code source de ryzomcore (on peut aussi décompresser le fichier gamedev.bnp, cela est équivalent ). et je commence à lire un par un chacun de ces fichiers afin de comprendre l'imbrication de l'ensemble des données.

Au passage je découvre des éléments surprenants. J'enfile mon casque de chantier, mes bottes, ma lampe frontale et je plonge sans un regard en arrière dans l'une de ces grottes. Explorer le code de ryzomcore, c'est comme se plonger dans l'étude des strates géologiques anciennes. Rien n'est jamais effacé. Le code, les données, s'empilent au dessus des précédentes, formant des filons qu'il faut suivre à la source avant de se rendre compte que nous arrivons dans un cul de sac. Cependant, cela demeure un travail fascinant, c'est ainsi qu'au détour d'un fichier je tombe sur celui-ci : « out_v2_location.xml ».

En regardant  le code XML, il parle du choix de localisation des avatar après création. Je n'ai pas souvenir d'un bouton localisation dans l'interface de création du personnage, alors je regarde plus attentivement le contenu de ce fichier, jusqu'à arriver ici :

<proc id="init_menu_nbfyros">
<action handler="set" params="target_property=ui:outgame:location:loc3d:loc_fx:posx|value=-0.99"/>
<action handler="set" params="target_property=ui:outgame:location:loc3d:loc_fx:posy|value=0.45"/>
<action handler="set" params="target_property=ui:outgame:location:loc3d:loc_fx:posz|value=-0.06"/>

<action handler="set" params="target_property=ui:outgame:location:3d_menu_1:land:posz|value=0.0"/>
<action handler="set" params="target_property=ui:outgame:location:3d_menu_1:clouds:posz|value=0.0"/>

<!-- Villages Names -->
<action handler="set" params="target_property=ui:outgame:location:leftbuts:but0:hardtext|value='uiLocDest1Fyros'"/>
<action handler="set" params="target_property=ui:outgame:location:leftbuts:but1:hardtext|value='uiLocDest2Fyros'"/>
<action handler="set" params="target_property=ui:outgame:location:leftbuts:but2:hardtext|value='uiLocDest3Fyros'"/>
<action handler="set" params="target_property=ui:outgame:location:leftbuts:but3:hardtext|value='uiLocDest4Fyros'"/>
<action handler="set" params="target_property=ui:outgame:location:leftbuts:but4:hardtext|value='uiLocDest5Fyros'"/>

<!-- Aegus -->
[ .... supprimé pour faciliter la lecture .... ]

<!-- Kaemon -->
[ .... supprimé pour faciliter la lecture .... ]

<!-- Sekovix -->
[ .... supprimé pour faciliter la lecture .... ]

<!-- Phyxon -->
[ .... supprimé pour faciliter la lecture .... ]

<!-- Galemus -->
[ .... supprimé pour faciliter la lecture .... ]
</proc>

En regardant la définition des constantes «  uiLocDest1FyrosX » dans le fichier « fr.uxt » on retrouve le noms des villages fyros. Il s'agit des noms des villages des anciennes îles de départ, ici ceux de l'île fyros. Du coup il semble que le joueur pouvait sélectionner la ville de départ de son personnage à la création. Nous ne sommes pas limité à un « pop » dans un lieu unique comme sur silan !

Retour sur le fameux écran de choix des races. J'ai finalement trouvé la solution. Il s'agit  de la procédure « CP_init_Menus_3D_scene » (CP_ pour CreationPersonnage?) qui va initialiser le contenu des 5 fenêtres à gauche de l'écran. Au passage le corrige le fond 3D de chacune de ces fenêtres pour ne garder que l'appartement fyros, puis je retire l'insertion du personnage « tryker » dans la première fenêtre :

<!-- Init Menu 3D Scene -->
<proc id="CP_init_Menus_3D_scene">
<action handler="set" params="target_property=ui:outgame:appear:3d_select:select_fx:started|value=1" />
<action handler="anim_start" params="anim=anim_app_select_fx" />

<action handler="set" params="target_property=ui:outgame:appear:3d_menu_1:env:name|value='outgame_fyros.ig'" />
<action handler="set" params="target_property=ui:outgame:appear:3d_menu_2:env:name|value='outgame_fyros.ig'" />
<action handler="set" params="target_property=ui:outgame:appear:3d_menu_3:env:name|value='outgame_fyros.ig'" />
<action handler="set" params="target_property=ui:outgame:appear:3d_menu_4:env:name|value='outgame_fyros.ig'" />
<action handler="set" params="target_property=ui:outgame:appear:3d_menu_5:env:name|value='outgame_fyros.ig'" />

<action handler="copy" cond="eq(@UI:TEMP:CHAR3D:VPA:SEX,0)" params="dbdst=UI:TEMP:M1_1|dbsrc=UI:TEMP:FY_MALE" />
<action handler="copy" cond="eq(@UI:TEMP:CHAR3D:VPA:SEX,0)" params="dbdst=UI:TEMP:M1_2|dbsrc=UI:TEMP:MA_MALE" />
<!-- <action handler="copy" cond="eq(@UI:TEMP:CHAR3D:VPA:SEX,0)" params="dbdst=UI:TEMP:M1_3|dbsrc=UI:TEMP:TR_MALE" /> -->
<action handler="copy" cond="eq(@UI:TEMP:CHAR3D:VPA:SEX,0)" params="dbdst=UI:TEMP:M1_4|dbsrc=UI:TEMP:ZO_MALE" />

<action handler="copy" cond="eq(@UI:TEMP:CHAR3D:VPA:SEX,1)" params="dbdst=UI:TEMP:M1_1|dbsrc=UI:TEMP:FY_FEMALE" />
<action handler="copy" cond="eq(@UI:TEMP:CHAR3D:VPA:SEX,1)" params="dbdst=UI:TEMP:M1_2|dbsrc=UI:TEMP:MA_FEMALE" />
<!-- <action handler="copy" cond="eq(@UI:TEMP:CHAR3D:VPA:SEX,1)" params="dbdst=UI:TEMP:M1_3|dbsrc=UI:TEMP:TR_FEMALE" /> -->
<action handler="copy" cond="eq(@UI:TEMP:CHAR3D:VPA:SEX,1)" params="dbdst=UI:TEMP:M1_4|dbsrc=UI:TEMP:ZO_FEMALE" />
   
Plus loin dans le code, je réagence le placement du personnage matis pour qu'il apparaisse au milieu (M1_1, M1_2, M1_3, M_4 sont respectivement les personnages fryos, matis, tryker et zoraï du menu 1) :

<!-- scene 3d Menu 1-->
<scene3d id="3d_menu_1" x="3" y="-3" w="200" h="150" posref="TL TL" curcam="cam" curcs="env" render_layer="-2" user_interaction="false"
ambient="128 96 64" sun_ambient="0 0 0" sun_diffuse="255 255 196" sun_specular="0 0 0" sun_direction="-1.0 1.0 -1.0" >

<character3d id="char1" dblink="UI:TEMP:M1_1" pos="-1.0 25.8 1.0" rot="0.0 0.0 45.0" />
<character3d id="char2" dblink="UI:TEMP:M1_2" pos="0.0 26.2 1.0" rot="0.0 0.0 15.0" />
<!-- <character3d id="char2" dblink="UI:TEMP:M1_2" pos="-0.4 26.2 1.0" rot="0.0 0.0 15.0" /> -->
<!-- <character3d id="char3" dblink="UI:TEMP:M1_3" pos="0.4 25.8 1.0" rot="0.0 0.0 -15.0" /> -->
<character3d id="char4" dblink="UI:TEMP:M1_4" pos="1.2 26.4 1.0" rot="0.0 0.0 -45.0" />

<camera id="cam" fov="80" pos="0.0 24.0 2.3" target="0.0 26.5 2.1" roll="0" />

<light id="back" pos="0.0 28.2 1.6" color="96 64 32" near="2.5" far="4.0" />
<light id="lgt" pos="0.0 25.3 2.48" color="255 255 255" near="3.0" far="4.0" />
<ig id="env" name="outgame_fyros.ig" pos="0 0 0.15" />

<shape id="shadow1" name="shadow.shape" pos="-1.0 25.8 1.0" rot="0.0 0.0 0.0" />
<shape id="shadow2" name="shadow.shape" pos="0.0 26.2 1.0" rot="0.0 0.0 0.0" />
<!-- <shape id="shadow2" name="shadow.shape" pos="-0.4 26.2 1.0" rot="0.0 0.0 0.0" /> -->
<!-- <shape id="shadow3" name="shadow.shape" pos="0.4 25.8 1.0" rot="0.0 0.0 0.0" /> -->
<shape id="shadow4" name="shadow.shape" pos="1.2 26.4 1.0" rot="0.0 0.0 0.0" />
      

Puis je regarde le contenu du fichier « fr.uxt » ( les textes associés aux éléments d'interface ) et je corrige les noms des races (lignes 19753 et suivantes ) :

// HASH_VALUE 911214414E53083A
// INDEX 4767
uiCP_Specie_Fyros [UCIKARA]

// HASH_VALUE 8BC1D82A0A62AC3D
// INDEX 4768
uiCP_Specie_Matis [TCARA]

// HASH_VALUE CCC308468E730837
// INDEX 4769
uiCP_Specie_Tryker [TRYKER]

// HASH_VALUE 09D214334D52D036
// INDEX 4770
uiCP_Specie_Zorai [RUNZATRA]

Du coup, on obtient en résutat :




Pour finir il y a eux quelques autres modifications ailleurs, du coup voici le fichier "ou_v2_appear.xml" complet
out_v2_appear.xml
important : il faudrait aussi modifier le fichier fr.uxt et en.uxt  pour avoir les corrections sur les noms des races
Dernière édition: 01 Janvier 1970 à 01:00:00 par Guest

Liria

Note : pour avoir toujours l'appartement "fyros" en fond quelque soit la race des vos personnage dans l'écran de sélection (pas celui de création) il faut également modifier le fichier "out_v2_select.xml", ligne 140 et suivantes  :

<action handler="set" params="target_property=ui:outgame:charsel:slot@0:env:name |
value=switch(@UI:TEMP:CHARSLOT@0:PEOPLE, 'outgame_fyros.ig', 'outgame_fyros.ig', 'outgame_fyros.ig', 'outgame_fyros.ig')" />

voila donc la nouvelle version de ce fichier à ajouter à son dossier "user" :
out_v2_select.xml
Dernière édition: 01 Janvier 1970 à 01:00:00 par Guest

Liria

Un "pastebin" pour le projet :

A force de voir Glorf passer par un site externe pour échanger des morceaux de textes et à perdre mon temps moi même à passer par google pour chercher un site de pastebin, j'ai opté pour une solution simple : configurer le notre. Il est fonctionne ici en test :

http://khaganat.net/pastebin/

Et si vous vous interrogez avec raison sur ce qu'est un "pastebin". Voici la définition de Wikipedia ( http://fr.wikipedia.org/wiki/Pastebin ) :
CitationUn pastebin, connu également sous le nom de nopaste, est une application web qui permet aux utilisateurs de téléverser (mettre en ligne) des morceaux de textes, habituellement des extraits de code source, pour un affichage public. Ils sont très populaires sur les canaux IRC où copier une quantité importante de texte, y compris réparti en différentes lignes successives, est considéré comme non conforme à la netiquette. Un grand nombre de pastebins existent sur le web, remplissant différents besoins et fournissant des fonctionnalités conçues pour les populations auxquelles ils s'adressent.
Dernière édition: 01 Janvier 1970 à 01:00:00 par Guest

Zatalyz

Il a l'air pas mal.
Bon, il est en anglais, snif ! Mais vu la simplicité du truc c'est pas grave.

Il a comme option par défaut de garder le nopaste "pour toujours". Possible de le caler à 24H ? car en général on copie des trucs à échanger rapidement, qui ne servent pas en archives. Qu'il soit aussi privé de base ne serait-il pas mieux ?

Aucune idée de ce que peut être "snipurl", je dirais d'après la description que ça propose de faire une url courte pour le paste ?

Edit : j'ai mis une version fr/en tout mélangé (ouuuuh pas beau !). Et snipurl, j'espère ne pas avoir fait de contre-sens.

Edit 2 : j'ai réussi à changer l'ordre du menu de quand ça expire, mais par défaut il se remet sur "toujours". Le vilain. Le bout de code incriminé :
<?php 
$expire_extra 'id="expire" class="select" tabindex="7"';
$options = array(
"0" => "Keep Forever/Pour toujours",
"30" => "30 Minutes",
"60" => "1 hour",
"360" => "6 Hours",
"720" => "12 Hours",
"1440" => "1 Day",
"100080" => "1 Week",
"400320" => "4 Weeks"
);
echo form_dropdown('expire'$options$expire_set$expire_extra); ?>
Dernière édition: 01 Janvier 1970 à 01:00:00 par Guest

Glorf

   <?php
                   $expire_extra 
'id="expire" class="select" tabindex="7"';
                   
$expire_set=1440;//On met l'index qui correspond à la durée qu'on veut
                   
$options = array(
                               
"0" => "Keep Forever/Pour toujours",
                               
"30" => "30 Minutes",
                               
"60" => "1 hour",
                               
"360" => "6 Hours",
                               
"720" => "12 Hours",
                               
"1440" => "1 Day",
                               
"100080" => "1 Week",
                               
"400320" => "4 Weeks"
                            
);
                echo 
form_dropdown('expire'$options$expire_set$expire_extra); ?>
Normalement ça devrait marcher
Dernière édition: 01 Janvier 1970 à 01:00:00 par Guest

Liria

MAJ du pastebin. J'ai installé la version améliorée de https://github.com/claudehohl/Stikked
Les changements par rapport à la version précédente :

  • Gestion des langues : version française par défaut
  • Les pastebins ne sont conservés qu'une semaine par défaut (paramétrable dans la page)
  • possibilité de répondre à un pastebin et de voir les lignes modifiés
  • Captcha (désativé pour le moment)

Mais surtout Ajout de la barre de navigation à la page pastebin, et MAJ de la barre pour intégrer l'option "pastebin"

Note: les url courtes ne fonctionnent pas pour le moment
Dernière édition: 01 Janvier 1970 à 01:00:00 par Guest

Licences Mentions légales Accueil du site Contact