Skip to content
This repository has been archived by the owner on Feb 12, 2021. It is now read-only.

Mrpotatosse/BotoxCore

Repository files navigation

# BotoxCore

Spécialement crée pour Dofus , mais il peut être utilisé sur beaucoup d'autre jeu ( il vous suffira d'implémenter le protocol spécifique à ce jeu ) ( si vous n'avez pas encore trouver une implémentation du protocol , vous pouvez vous en servir pour afficher les données qui transite )

Petite explication du code ( les 3 grand points ) :

Dependances

-NLog (https://nlog-project.org/)
-NewtonsoftJson (https://www.newtonsoft.com/json)
-EasyHook (https://easyhook.github.io/)

Utilisation

// T est votre class dériveant de ProtocolTreatment ( la class qui gère le traitement du protocol ) dans le cas de Dofus c'est MessageInformation
// ( https://github.com/Mrpotatosse/BotoxCore/blob/master/BotoxDofusProtocol/Protocol/MessageInformation.cs ) 
Hooker<T> hooker = HookManager<T>.Instance.CreateHooker();
hooker.Inject();

Configuration

La configuration '/.startup.json' ( dans le dossier bin/éxécutable ) est créer automatiquement
{
  "game_location": "D:/DofusApp/Dofus.exe",
  "dll_location": "./SocketHook.dll",
  "default_proxy_port": 666,
  "show_log": true,
  "save_log": false,
  "show_message": true,
  "show_message_content": false,
  "show_data": false,
  "show_fake_message": true,
  "show_fake_message_content": false
}

Handler

Le handler se fait dans une class qui dérive de MessageHandler (https://github.com/Mrpotatosse/BotoxCore/blob/master/BotoxCore/Handlers/MessageHandler.cs)

Un exemple de class (https://github.com/Mrpotatosse/BotoxCore/blob/master/BotoxCore/Handlers/Customs/Connection/ProtocolRequiredHandler.cs) :

// l'attribut est nécessaire au fonctionnement du handler ( si vous ne le mettez pas , la class ne sera pas reconnu comme étant un handler )
[Handler(ProtocolId = 1)]
public class ProtocolRequiredHandler : MessageHandler
{
    // pour le log
    protected override Logger logger => LogManager.GetCurrentClassLogger();

    // le constructeur doit présenter la même forme 
    // il est déconseillé de modifier le constructeur (ajouter d'autres arguments) étant donné que ça produira une erreur 
    // vous pouvez ajouter des propriétées à la class mais ne pourront pas être initialisé à partir d'un argument du constructeur
    public ProtocolRequiredHandler(CustomClient local, CustomClient remote, ProtocolJsonContent content) 
        : base(local, remote, content)
    {
    
    }

    // la fonction Handle est obligatoire
    public override void Handle()
    {
        logger.Info("handle protocol required");
    }
    // la fonction EndHandle est optionel
    public override void EndHandle()
    {
        
    }
    // la fonction Error est optionel
    public override void Error(Exception e)
    {

    }
}

( j'éditerai le readme un peu plus tard )

About

Botox , do whatever you want !

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages