Skip to content
Timorem edited this page Oct 8, 2012 · 5 revisions

Architecture

L'organisation de BiM est particulière, le programme est divisé en plusieurs bibliothèques qui sont hiérarchisés logiquement. Voici la hiérarchie :

  • Core
  • Protocol
  • Behaviors
  • MITM
  • Host Program (UI)
  • Plugins

Les Messages

Les différents composants communiquent par un système de messages. Chaque message est dispatché à des méthodes qui sont inscrites à celui-ci, le dispatch se fait dans l'ordre de la hiérarchie. Chaque message envoyé par le client et le serveur est récupéré au niveau du MITM et redistribué dans le bot avant d'être renvoyé.

De cette manière les composants sont à la fois indépendants et liés.

Voir Fonctionnement des Messages

Le transit des données

Dans la partie Behaviors sont stockées toutes les données clients. C'est à dire les informations sur le joueur, sur la map, sur l'environnement, bref tout ce que le client sait, le bot le sait. De plus il y a un système qui simplifie l'accès aux données statiques, je parle des d2o, des fichiers langs et des maps.

GUI en WPF

Actuellement il n'y a pas de GUI, c'est juste une console. Mais une fois la partie Behaviors achevé, la GUI sera faite en WPF. Le bot est conçu pour tourner sous WPF, chaque classe implémente INotifyPropertChanged, il suffit juste donc de lier une propriété à un contrôle et celui-ci se mettra à jour en même temps que la propriété.

Les plugins

Le gros du bot se situe dans les plugins, ce sont les plugins qui vont faire que ce programme soit un bot et fasse des tâches automatisés, sans les plugins c'est un programme vide où transitent des données. Avec ce genre d'architecture on peut penser faire tout type de plugins; bot de combat, récolte, flood, marchandage, inspections des AH, récoltes de données serveurs, réseau de bots ... La seule limite c'est votre imagination

Bref ce projet est en pleine phase de développement mais à déjà de bonnes bases pour développer le plus puissant, le plus flexible et le plus complet des bots existants.

Bien entendu le projet est ouvert à toutes modifications ou ajouts, c'est le principe de ce projet qui doit être communautaire.