Un rapide état autour de Mangos, l’émulateur World Of Warcraft

Oui, un article qui sera rapide ! (c’est dire … )

J’ai tout de même de plus en plus de mails concernant cet émulateur que je ne pouvais pas éviter de faire un point.

Tout d’abord, le core que j’utilise est compilé maison. Je n’ai pas cloné le dépot mangos/mangos mais le dépot Naicisum/mangos . En effet, naicisum a repris dans sa branche ahbot, les travaux de Chris K. et de ses successeurs pour apporter au core et plus précisément à l’hotel des ventes un peu de vie. AHBot permet, en se basant sur un compte dédié, d’alimenter l’hotel des ventes en items et même, depuis qu’ils ont implémenté AHBuyer, à recheter les items mis en vente par les joueurs.

Voici pour le postulat de départ !

Ensuite, une fois compilé et la BDD à jour, rien de plus classique que ce que j’avais déjà écrit dans l’article “Traduire Mangos /mangos translations” :

  • la base de données WOTLK produite par UDB
  • Scriptdev et acid
  • les patchs de traduction produits par UDB_fr

Je n’utilise plus les outils (http://github.com/FrenchW/mangos-translations/) que j’ai commencé à développer pour améliorer udb_fr. En effet, après avoir leur avoir suggéré de créer un addon de collecte d’information à la manière de judgehype, la base UDB_FR est bien fournie (j’encourage d’ailleurs les joueurs sur serveur officiel à venir les aider en postant leurs collectes). L’autre point est que les outils que je cherchait à développer étaient destinés à traduire toutes les bases de données et pas seulement UDB. Mais… dans les faits…. Autant investir dans UDB !

Voilà !

Un bémol toutefois : jouant à nouveau sur serveur officiel, je n’ai aps fait la manip chez moi depuis un moment. Mais, à y regarder d’un peu plus près pour la rédaction de cet article, les choses ne me semblent pas avoir beaucoup changé.

Pour ce qui en est de traduire le code, je pense que le lieux est de forker mangos/mangos, rechercher les éléments à traduire (il ne doit plus trop en rester en dur) et proposer vos patches aux développeurs pour que l’ensemble de la communauté en profite.

Traduire Mangos /mangos translations

Tout d’abord, cher lecteur, permet moi de te présenter tous mes voeux pour cette nouvelle année.
Je ne tiendrai pas mes promesses habituelles, mais, je tâcherai de tenir ce blog un peu plus à jour qu’il ne l’est. Voilà pour les bonnes résolutions !

Je voulais surtout écrire une petite présentation au projet que je viens d’initier sur GitHub: Mangos-translations !
Mangos-translation est un projet qui vise à regrouper, quelle que soit la langue, un set d’outils pour permettre de traduire les bases de données de Mangos. Et ce, quelles qu’elles soient.

Voici l’adresse du projet GitHub : http://github.com/FrenchW/mangos-translations/ (supprimé)

Ne comptez pas sur moi pour vous expliquer comment utiliser github ou git, je galère assez avec et surtout, si vous en êtes à utiliser mangos, c’est que vous connaissez déjà…. ou pas…

En attendant, en l’état actuel des choses, mangos-translations permet de traduire une bonne partie des premières bases de données WOTLK et il s’appuie, pour une bonne partie, sur les travaux de UnifiedDB-FR.
Le reste de la traduction est de moi et porte sur les éléments WOTLK intégré à la bases de données FDB.

A part la base de traduction (en français), le projet intègre des outils et des scripts pour aider à la traduction.

Bonne découverte et, à nouveau, tous mes voeux de bonheur, santé, argent, toussa, pour cette nouvelle année !!

Mangos GUI 2008

Laissez-moi aujourd’hui vous présenter un projet auquel j’ai participé. Il s’agit de Mangos GUI 2008. C’est un programme Windows, hébergé sur SourceForge, qui permet de gérer les actions à mener sur la console de MaNGOS relatives à l’administration du sereur, des comptes ou des personnages. J’ai eu le plaisir de m’insérer dans le projet à un stade déjà bien avancé pour y apporter les mécanismes de localisation et la traduction française par la même occasion.

La version actuellement distribuée est la version 0.5, toute première release du projet.

image

Le projet continuera son petit bonhomme de chemin au gré des demandes de corrections et d’amélioration qui seront faites sur le site de SourceForge.

Mettre à jour Mangos et les bases SQL

Dans un post récent, je vous ai présenté le Projet Mangos, projet qui permet de mettre en oeuvre un serveur WOW local. En regardant les requêtes qui ont amené des visiteurs sur ce site (ce que je ferai plus souvent), je me suis rendu compte de beaucoup cherchaient comment mettre à jour les bases SQL.

Lorsque j’ai écrit le précédent article, je voulais l’agrémenter de quelques bons principes. je vais profiter de ce post pour vous les soumettre.

Un brin d’organisation

S’il est un élément pas évident à suivre, ce sont les numéros de version. J’ai choisi pour ma part de clairement les nommer dans mon répertoire mangos. J’ai deux dossiers: un "current" qui est la version de mangos en exploitation et correspondant aux bases de données et un répertoire "Next" de travail pour préparer la mise à jour. Dans le répertoire "Current", en plus des fichiers et dossiers classiques de mangos, je stocke un répertoire nommant chaque élément et sa version. Voici une copie de mes répertoires :

Mangos-2-1 

Vous remarquerez les répertoires en vert, sources des imports de tortoiseSVN. En cas de doute sur la version extraite d’un SVN, il suffit de cliquer droit sur le répertoire > Propriétés > Subversion :

Mangos-2-2

Mettre à jour Mangos

Concernant Mangos, rien de bien compliqué, il suffit de compiler Mangos puis ScriptDev comme la première fois. Donc, on copie les exe et dll dans le nouveau répertoire Next en y ajoutant les dossiers indiquant les nouvelles versions. Il ne faut pas oublier non plus d’y préparer une copie des fichiers conf.

Les répertoires "maps", etc… ne sont à refaire que si WoW lui-même est patché. En effet, le contenu de WoW ne change que lors des patches.

Mettre à jour les bases

C’est généralement la partie la plus stressante parce que c’est là qu’on risque de ne plus faire marcher correctement le bouzin. Il suffit de répérer celles dont on a besoin en fonction des numéros de version et de le faire dans l’ordre de la compilation et des ajouts que l’on a fait. D’abord mangos, puis SD2, puis Acid, puis UDB et enfin, UDB-fr. Si un des projet n’a pas eu de mises à jour, on s’en moque, on passe au suivant sauf alerte bien explicite dans les changelogs (je ne l’ai pas dit, mais, il faut les lire quand même hein !!!)

Si on prend donc l’exemple affiché sur l’image ci-dessus, Mangos exécuté est à la version 6386. A l’heure où j’écris ces lignes, Mangos est à la version 6420. Il faut donc regarder dans le répertoire \Mangos-sources\sql\updates pour trouver celles dont on a besoin (je les ai sélectionnée) :

Mangos-2-4

La 6381 a déjà été appliquée puisque je suis en 6386. Il faudra donc lancer, avec SQLyog chaque mise à jour sur la base qui lui correspond. Le nommage est ainsi:
VersionSVN_BaseAffectée_TableAffectée.sql

Vous comprendrez l’interet de suivre les mises à jours fréquemment. Mais n’oubliez surtout pas qu’il faut limiter les mises à jour à la version de mangos en exécution.

C’est pourquoi j’ai un répertoire "Next". J’y prépare tout compilation + Conf et dans chaque répertoire utilisé pour noter les versions, je copie les scripts SQL concernés. Ainsi, je coupe mangos (ne pas faire de MAJ Sql si le serveur tourne hein !!!), je remplace les fichiers, je lance les différentes scripts et je relance.

ScriptDev, Acid, UDB et consors fonctionnent au niveau de SQL et des MAJ sur le même principe.

Bon patchage ! N’oubliez pas de le faire souvent et n’hésitez pas à poser des commentaires si vous avez des questions ou des demandes d’aide.

Creative Commons License: Attribution, Share-AlikeExcept where otherwise noted, this content is
licensed under a Creative Commons License.



Le projet Mangos

Dans le post de l’autre jour : "Ce que je deviens", je vous avais dit avoir passé du temps sur le Projet Mangos et que j’allais y revenir.

Mangos est un projet de serveur simulant l’environnement et le fonctionnement d’un serveur MMORPG bien connu: World Of Warcraft. Afin d’améliorer la base de ce projet et d’y apporter des modifications, comme la traduction, d’autres projets s’y sont gréffés. Je ne parlerai ici que des logiciels Windows, sachez que Mangos tourne aussi sur linux.

Le projets mangos fournit les sources du serveur qu’il faut ensuite compiler. Je vous rassure, ils se trouvent aussi des gens qui le font et le mettent à disposition. Mais, c’est techniquement plus sympa d’avoir "son" serveur. J’ai donc fait un peu le tour de la question et me suis arrêté aux élements que je décrirai un peu plus loin. Mais avant de se pencher sur Mangos, il faut aussi disposer d’outils :

  • Pour obtenir les sources
    • Celles que j’ai trouvées sont toutes distribuées sur des serveurs SubVersion (SVN). Il faut donc un client pour windows : Tortoisesvn
  • Pour pouvoir compiler
    • Il faut de quoi compiler du c/c++ sous Windows. Le mieux et gratuit, si vous n’avez rien, est d’installer Visual C++ Express ainsi que le platform SDK (pour les librairies)
  • Pour pouvoir le faire tourner
    • Une base de données MySQL. Personnellement, j’ai carrément installé WAMP.
    • De quoi gérer les données et scripts SQL très nombreux de mise à jour. J’ai toujours eu une préférence pour le client SQLyog MySQL GUI – Community Edition

Maintenant, les sources ! Les adresses SVN sont à entrer dans Tortoise pour les imports.

Les deux premiers sont des programmes à compiler et installer dans cet ordre, les 3 autres sont des patchs SQL à apporter à la base de données (dans cet ordre) pour modifier le comportement des PNJ (Personnages non joueurs) et pour le dernier, traduire certaines données. Je vous ai pour chacun, copié le lien vers les forums de discussion.

Maintenant, comment faire ?

Tout d’abord, je vous invite à lire ces deux articles qui traitent de la compilation, puis de l’utilisation de Mangos :

[guide] Compiling Mangos For Windows
[guide] Mangos Windows Setup

Vous devriez à terme savoir compiler et installer autant mangos que les bases SQL.

Il vous faudra ensuite faire de même avec ScriptDev2 (ScriptDev2 SVN and quick Installation guide) puis passer tous les patchs SQL des 3 derniers liens.

J’espère que cette introduction vous plaira, j’attend vos commentaires. Par la suite, je traiterai plus en détails les mises à jour dans un futur article.