Bonjour à tous,
Suite à
ce topic j'ai eu envie de développer un peu plus le serveur pour obtenir un serveur "jouable" cependant, et je m'y attendais, je me heurte à certains problèmes...
Les paquets envoyés par CharSelectionInfo.java avaient changés, je les ai modifiés et tout est rentré dans l'ordre. C'est à dire que l'ont peux maintenant jouer toutes les races.
Mon problème maintenant se situe dans UserInfo.java qui permet d'envoyer au client toutes les infos/stats du joueurs.
Les paquets ayant changés j'ai corrigé la plupart mais il en reste cependant 2 que je n'arrive pas à faire fonctionner.
La CollisonHeight et la Speed qui sont à 0 sur le client.
La Height à 0 place le perso à moitié dans le sol.
La Speed à 0 enlève toutes les animations liées au perso.
Ne sachant pas comment trouver facilement les nouveux paquets j'ai du inverser "au pif" pour tous les autres.
Maintenant j'explique un peu ce que j'ai trouvé :
En modifiant tous les paquets je n'ai jamais pu envoyer correctement la height au client sauf en remplacant :
- Code:
-
// c6 new h's
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_RHAND));
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_LRHAND));
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
// end of c6 new h's
Par :
- Code:
-
// c6 new h's
writeF(_activeChar.getBaseTemplate().getdCollisionHeight());
writeF(_activeChar.getBaseTemplate().getdCollisionHeight());
writeF(_activeChar.getBaseTemplate().getdCollisionHeight());
writeF(_activeChar.getBaseTemplate().getdCollisionHeight());
writeF(_activeChar.getBaseTemplate().getdCollisionHeight());
writeF(_activeChar.getBaseTemplate().getdCollisionHeight());
writeF(_activeChar.getBaseTemplate().getdCollisionHeight());
writeF(_activeChar.getBaseTemplate().getdCollisionHeight());
writeF(_activeChar.getBaseTemplate().getdCollisionHeight());
writeF(_activeChar.getBaseTemplate().getdCollisionHeight());
writeF(_activeChar.getBaseTemplate().getdCollisionHeight());
writeF(_activeChar.getBaseTemplate().getdCollisionHeight());
writeF(_activeChar.getBaseTemplate().getdCollisionHeight());
writeF(_activeChar.getBaseTemplate().getdCollisionHeight());
writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_RHAND));
writeF(_activeChar.getBaseTemplate().getdCollisionHeight());
writeF(_activeChar.getBaseTemplate().getdCollisionHeight());
writeF(_activeChar.getBaseTemplate().getdCollisionHeight());
writeF(_activeChar.getBaseTemplate().getdCollisionHeight());
writeF(_activeChar.getBaseTemplate().getdCollisionHeight());
writeF(_activeChar.getBaseTemplate().getdCollisionHeight());
writeF(_activeChar.getBaseTemplate().getdCollisionHeight());
writeF(_activeChar.getBaseTemplate().getdCollisionHeight());
writeF(_activeChar.getBaseTemplate().getdCollisionHeight());
writeF(_activeChar.getBaseTemplate().getdCollisionHeight());
writeF(_activeChar.getBaseTemplate().getdCollisionHeight());
writeF(_activeChar.getBaseTemplate().getdCollisionHeight());
writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_LRHAND));
writeF(_activeChar.getBaseTemplate().getdCollisionHeight());
writeF(_activeChar.getBaseTemplate().getdCollisionHeight());
writeF(_activeChar.getBaseTemplate().getdCollisionHeight());
writeF(_activeChar.getBaseTemplate().getdCollisionHeight());
// end of c6 new h's
C'est pas propre du tout je sais et cela cause aussi d'autres problèmes : des animations de skill tout le temps, ...
J'ai essayé de remplacer les
- Code:
-
writeF(_activeChar.getBaseTemplate().getdCollisionHeight());
par des
- Code:
-
writeH(0x00);
Et ce, un par un, 2 par 2, ... et sans jamais trouver la solution :/
Donc, je pense que ne connaissant que assez peu le java et encore un peu moins le fonctionnement des paquets selon qu'ils soient envoyés en Hexadécimal, en Décimal, en Float.
Donc si quelqu'un pouvait m'éclairer là dessus.
Merci de votre aide.