Pour que les Bots placés à l'aide du World Editor aient un nom correct qui s'affiche au-dessus de leur tête, en blanc, plutôt que leur nom de code indiqué dans la Primitive employée dans l'éditeur, voilà comment procéder.
Pour cela, je me rends dans le World Editor. J'ouvre le fichier “newbieland.worldedit” qui contient les Bots dont je veux changer le nom.
Ensuite je charge la Primitive qui les contient : Project > Add Primitive et je choisis “urban_newbieland.primitive”.
Dans mon exemple, il s'agit de “bland_marchand_rm” et “nbland_marchandlarmor”, les parties entre $ à la suite indiquent leurs fonction, les titres qui s'indiquent sous leur nom. Pour l'heure je ne m'en préoccupe pas.
Je peux désormais fermer World Editor.
Remarque : Pour ceux qui préfèrent travailler les fichiers xml à la main, il est aussi possible de chercher les noms des Bots dans le fichier correspondant avec un éditeur de texte, dans mon exemple, il se trouve dans :
code/ryzom/common/data_leveldesign/primitives/
Le serveur stocke les noms des Bots dans un fichier appelé “bot_name.txt”, situé dans code/ryzom/server/data_shard/language.
On peut l'ouvrir avec un éditeur de texte simple, en faisant attention à son format, qui recourt aux tabulations.
Pour l'heure, il est quasi-vide, seul Chiang a l'honneur d'avoir un nom dans le fichier fourni avec les sources officielles de Ryzom Core :
*HASH_VALUE bot name translated name sheet_name _819E5006E9093123 chiang_the_strong $gn_chiang_the_strong$
Il y a une tabulation entre chaque champ, y compris avant le dernier, même s'il est vide, bien penser à l'inclure quand vous ajouterez des entrées.
Le code HASH du premier champs permet de garantir la différence entre deux entrées. Il suffit de le déterminer soi-même.
J'ai pris le parti de construire les noms sur le même modèle que l'exemple fourni, en ajoutant gn_ devant l'appelation retenue dans la fiche “urban_newbieland.primitive” et en les encadrant avec $
On obtient donc :
*HASH_VALUE bot name translated name sheet_name _819E5006E9093123 chiang_the_strong $gn_chiang_the_strong$ _752H6DZ7CG70OSA2 bland_marchand_rm $gn_bland_marchand_rm$ _987HXH876RXTDV95 nbland_marchand_larmor $gn_nbland_marchand_larmor$
Il faut ensuite indiquer pour chaque fichier de langue la version dans la langue correspondante. Dans notre cas, nous allons nous occuper de title_words_fr.txt. On l'ouvre également avec un éditeur de texte. Il est organisé de la même façon et on va le modifier de façon similaire, mais cette fois en indiquant la valeur “translated name” qu'on a définie plus haut, sans les $. Là encore, on crée un HASH au début pour rendre la ligne unique, et on n'oublie pas les tabulations de fin de ligne.
On ajoute donc à la fin du fichier les lignes suivantes :
_87X98YD8DHZ8HYH7 gn_bland_marchand_rm Automate générateur _N4I7YXC827T7H68C gn_nbland_marchand_larmor Automate fabriquant
Remarque : Il est bien sûr possible (et même conseillé) d'ajouter les traductions dans tous les fichiers langues du serveur.
Ensuite, pour que le serveur recalcule les packed_sheet, on va les effacer et on le redémarre :
$ shard stop $ cd /home/khanat/ryzomcore/code/ryzom/server/data_shard $ rm *.packed_sheets $ shard start
Puis on fait <Ctrl+A>,<d> pour quitter Screen et retrouver son terminal.
Pour l'heure, votre client n'est pas informé de ce patch, il faut donc lui fournir les nouveaux fichiers de langue qui ont été mis à jour sur le serveur.
Le plus simple est de transférer une copie de ces fichiers dans le sous-répertoire “user” de votre client de jeu, son contenu prenant systématiquement la préséance sur ce qui est fourni par défaut par le client.
Dans notre cas, nous n'avons qu'à copier le fichier “title_words_fr.txt”.
À la prochaine connexion, nos bots auront de jolis noms au-dessus de leur tête.