Java Dofus 2 - Son du client avec l'UpLauncher

Inscrit
26 Novembre 2017
Messages
2
Reactions
0
#1
Bonsoir, je fais un UpLauncher en Java actuellement, il est quasiment terminé il me manque juste une petite chose, faire en sorte que l'UpLauncher soit comme celui d'Ankama, qu'il soit utilisé pour le son du client.

Du coup j'ai pu trouver les sources d'un ShadowSound (qui est comme l'ArkanSound) et j'ai, on va dire reproduit le code C# en java, hélas je ne comprends pas trop le fonctionnement, voilà ce que j'ai pu comprendre en voyant le code :

L'UpLauncher lance deux serveurs, nommés dans le DLL : "GameServer" et "RegServer" :
- Le GameServer est bind sur le port 8081
- Le RegServer qui lui est bind sur le port 4242


Au lancement du client Dofus, le client se connecte sur le RegServer et ensuite sur le GameServer.

Le GameClient envoie un message au GameServer, qui lui, envoie à son tour au RegClient, si un message est envoyé au RegServer, le message est envoyé au GameClient.

GameClient = Le socket connecté au GameServer.
RegClient = Le socket connecté au RegServer.


Donc voila, mon client se connecte bien à mes "deux serveurs", le GameServer reçoit bien des messages du Client, qui sont directement envoyés vers le RegClient mais le problème c'est qu'il n'y a quand même aucun sons.

Voila un petit debug :

Starting GameServer ...
Starting RegServer ...
New connection on the RegServer
New connection on the GameServer 1
Data received by GameClient : [B@9a670f7 (51 bytes)
Data sended to RegClient : [B@9a670f7 (51 bytes)
Data received by GameClient : [B@7618fb3 (54 bytes)
Data sended to RegClient : [B@7618fb3 (54 bytes)
Data received by GameClient : [B@35e1b87 (101 bytes)
Data sended to RegClient : [B@35e1b87 (101 bytes)
Data received by GameClient : [B@465c8588 (54 bytes)
Data sended to RegClient : [B@465c8588 (54 bytes)
Data received by GameClient : [B@7c47747c (108 bytes)
Data sended to RegClient : [B@7c47747c (108 bytes)
Data received by GameClient : [B@77d06050 (52 bytes)
Data sended to RegClient : [B@77d06050 (52 bytes)

Sinon le code pour la lecture du packet est celui-ci, je pense que le problème vient de la :

Java:
int length = dIn.read();
if(length > 0 ) {
    byte[] message = new byte[length];
    dIn.readFully(message, 0, length);
    onMessage(socket, message);
}
(le onMessage sert seulement à envoyer au bon endroit le message)
 
Haut Bas