Jump to content
AzZuRlla

Elk | Emulateur Dofus Touch

Recommended Posts

Salut la compagnie !


J’espère que vous avez la forme, aujourd’hui je suis là pour vous parler d'un projet sur lequel je travaille depuis bientôt 3 semaines à savoir comme vu dans le titre Elk

Elk est un émulateur serveur pour Dofus Touch, les deux technologies utilisées sont NodeJs et Java.

NodeJs est utilisé pour l'haapi à savoir :

  • Création du compte invité
  • Validation du compte invité
  • Création du compte général
  • Génération du token/key de connexion

Le programme NodeJs est connecté avec une sorte de tunnel au projet Java. En soi Node agit comme une sorte de Proxy (c'est similaire à ce que Ankama fait actuellement).
J'aurais pu me passer de NodeJs concrètement mais l'idée qu'il soit en front je trouve ça pas mauvais, ça évite d'impacter le serveur.

Pour le système de gestion de base de données j'utilise MongoDB et pour être honnête j'en suis pas deçu, je connaissais pas du tout il y a 3 semaines et on s'y fait très vite.

Concernant le Auth voici ce qui a été fait :

  • Gestion de la connexion (vérifications des credentials et token).
  • Gestion des comptes invités
  • Détection de clients via le proxy (un entête est utilisé pour identifier le client)
  • Mise en place d'un système de Handlers
  • Gestion de la base de données
  • Gestion des comptes
  • Détection pour la création du pseudo / ban / locked.

Je suis au stade de la construction des pieds pour la table donc c'est la partie la plus importante selon moi.

Voici quelques images pour les curieux :

POC Gestion connexion

Spoiler

iRwylIA.png


POC Accès sélection serveur

Spoiler

BzqiSKO.png


Vous l'aurez compris, le Auth est bientôt fini, je m'attarde sur certains détails mais le plus gros est fait, je vais donc bientôt commencer la partie `world`.

C'est un projet personnel qui sera très probablement destiné à l'ouverture d'un serveur (on en est loin).

Un Discord a été crée à l'occasion, si vous êtes intéressé : https://discordapp.com/invite/vYPgTGG

Merci d'avoir lu et à bientôt.

 

Update 26/01/2020 :

Maps :

  • Maps terminées à 100%
  • Gestion des actors à 100% (path, sortie/entré de map voisines ou spawn/unspawn (déco/co pour les joueurs))
  • Vérification des paths
  • Fix de toutes les transitions (adja etc..)

 

Spoiler

spacer.png

Chat / Amis :

  • Chat terminé à 100%
  • Anti-Spam
  • Anti-flood
  • Filtre pour les insultes
  • Tous les channel fonctionnels
  • La feature amis/ennemis/ignorés terminée

POC Gestion du chat / spam

Spoiler

spacer.png

 

POC Gestion des amis

Spoiler

spacer.png

 

Commandes admin :

  • Move
  • Kick
  • Look
  • Ban

POC Commandes

Spoiler

spacer.png

 

 

 

Update 01/03/2020 :

Joueur :

  • Gestion des niveaux
  • Gestion de l'ajout de caracts
  • Gestion du changement de niveau des sorts

Item :

  • Gestions des effets des items (stats principales)
  • Gestion des effets de panoplie
  • Gestion du système de stack/clone lorsqu'on équipe/ajoute/retire un item au joueur

 

POC Gestion niveaux/sorts/stats

Spoiler

0eb7ITK.gif

POC Gestion des effets de panoplie

Spoiler

3szXsp3.gif

 

POC Gestion du stack avancé

Spoiler

DPQTMwd.gif

 

Update 16/05/2020 :

Nouveaux ajouts

  • Gestion des échanges
  • Gestion dynamique des instances de maps
  • Gestion du mode marchand
  • Gestion des banques
  • Gestion des interactives (harvest, ateliers, zaap, zaapi, poubelles ...)
  • Début de la gestion des combats (phase de préparation, combat)
  • Gestion des équipes en combat de la timeline
  • Gestion des casts en combat (Basic, Stat, Spell, Triggered, Apparence, Résistances globales)
  • Gestion du started spell (invu boss DJ)
  • Gestion des mobs sur les maps instanciées.
  • Gestion de la reconnexion en combat
  • Et pas mal de trucs en plus !

L'émulateur a subi une refonte de la structure durant cette période me permettant de retravailler pas mal de chose faites en octobre, notamment l'ODM utilisé qui est maintenant Morphia.

Pour voir tous les screen -> Discord : discord.gg/vYPgTGG

Enjoy !

Edited by AzZuRlla
maj mai
  • Upvote 4

Share this post


Link to post
Share on other sites

Jolie projet !

Oui MongoDB est sympa je l'utilise aussi pour un de mes projets autour de D2 actuellement

  • Thanks 1
  • Upvote 1

Share this post


Link to post
Share on other sites

Haha je retrouve ton projet ici ;)

Assure et bonne chance

Mp sur discord si besoin

  • Thanks 1

Share this post


Link to post
Share on other sites

Yo,

Encore une fois du très bon boulot venant de toi, je vais suivre l'avancement du projet. 👀

  • Thanks 1

Share this post


Link to post
Share on other sites
53 minutes ago, Ultear- said:

Yo,

Encore une fois du très bon boulot venant de toi, je vais suivre l'avancement du projet. 👀

Merci l'ami 😉

Share this post


Link to post
Share on other sites

Update :

  • IPC totalement terminé.
  • Gestion totale du ticket d'accès game via l'IPC.
  • Switch de proxy totalement fonctionnel.
  • Pas mal de sécurité ajoutées* 

Entre autre j'en suis là:

Spoiler

spacer.png

 

*Tips : Ne jamais partir du principe que le client utilisé est le client mobile (toujours penser que quelqu'un peut simuler son comportement et faire des vérifications en conséquences)

 

Merci à celles et ceux qui ont rejoint le Discord, je remets le lien :https://discord.gg/dJUnsCx

Share this post


Link to post
Share on other sites

Update :

  • Maps terminées à 100%
  • Gestion des actors à 100% (path, sortie/entré de map voisines ou spawn/unspawn (déco/co pour les joueurs))
  • Vérification des paths
  • Fix de toutes les transitions (adja etc..)
Spoiler

spacer.png

 

  • Chat terminé à 100%
  • Anti-Spam
  • Anti-flood
  • Filtre pour les insultes
  • Tous les channel fonctionnels
Spoiler

spacer.png

 

  • La feature amis/ennemis/ignorés terminée
Spoiler

spacer.png

 

Commandes admin :

  • Move
  • Kick
  • Look
  • Ban
Spoiler

spacer.png

 

Un Discord a été crée à l'occasion, si vous êtes intéressé : https://discordapp.com/invite/dJUnsCx

Share this post


Link to post
Share on other sites
Sur 17/10/2019 at 4:57 PM , AzZuRlla a déclaré:

*Tips : Ne jamais partir du principe que le client utilisé est le client mobile (toujours penser que quelqu'un peut simuler son comportement et faire des vérifications en conséquences)

C'est un concept basique de never trust the user...

  • Like 1

Share this post


Link to post
Share on other sites
3 hours ago, Kot said:

C'est un concept basique de never trust the user...

Exact, mais malheureusement encore souvent oublié à certains moments. 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...