Jump to content

PARTAGE Générateur de protocole (tout langage de sortie)


Recommended Posts

Je viens vous présenter un petit tool by HETERNAM qui sert à générer à un protocole exploitable à partir de fichier templates pour être adapté à n'importe quel langage (mais pour ce cas je n'ai fait que un exemple de template en C# mais avec un peu de bidouillage vous devriez être capable de vous en sortir si vous utilisez autre chose!). Vous aurez besoin d'un fichier JSON contenant votre protocole exporté à l'aide de l'outil ici. Une fois fait, modifiez les templates à votre guise, la configuration, et lancez le tout, vous aurez votre protocole en sortie. Vous trouverez le descriptif des variables et filtres accessibles dans les templates sur le GitHub, mais aussi les possibilités supplémentaires si vous souhaitez rajouter du code en PHP - il y a un système de hook à la génération vous permettant d'ajouter des filtres sur le contenu, mais également des filtres Twig.

 

Exemple, voici mon template pour générer les types:

{%- use 'io.twig' -%}
{%- use 'constructor.twig' -%}
using HetwanSharp.Core.IO;
{% if class.hasEnumerationDependency == true %}
using HetwanSharp.Dofus.Protocol.Enum;
{% endif %}
using System;
{% if class.hasVectorDependency %}
using System.Collections.Generic;
using System.Linq;
{% endif %}
namespace HetwanSharp.Dofus.Protocol.Type
{
    public class {{ class.name }}{% if class.parent %} : {{ class.parent.name }}{% endif ~%}
    {
        public const short Id = {{ class.id }};
        public {% if class.isOverriding %} override{% elseif class.isVirtual %} virtual{% endif %} short TypeId => Id;
{%- block class_fields -%}
        {{ parent()|ident(8) }}
{%- endblock -%}
{%- block constructor -%}
        {{ parent()|ident(8) }}
{%~ endblock -%}
{%~ block serialize -%}
        {{ parent()|ident(8) }}
{%~ endblock -%}
{%~ block deserialize -%}
        {{ parent()|ident(8) }}
{%- endblock %}
    }
}

 

Et en sortie :

spacer.png

 

Télécharger le générateur de protocol

 

  • Like 1
Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Flux d'Activité

    1. 18

      serveur Metin2

    2. 1

      Implantation MOB (invisible + error)

    3. 1

      Implantation MOB (invisible + error)

    4. 1

      Mondial2 Remastered - New School International Private Server Open 27/11/2020

    5. 18

      serveur Metin2

    6. 29

      Dump Proto 2014

    7. 18

      serveur Metin2

    8. 15

      Mustang SF - Full - 1.8

  • Recently Browsing

    No registered users viewing this page.

×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.