L2J-FR
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.


Forum pour réunir les administrateurs de serveur L2
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
-17%
Le deal à ne pas rater :
SSD interne Crucial SSD P3 1To NVME à 49,99€
49.99 € 59.99 €
Voir le deal

 

 Les paquets CollisionHeight et Speed du Gracia Final

Aller en bas 
2 participants
AuteurMessage
alfo

alfo


Nombre de messages : 107
Localisation : ~/agonia
Date d'inscription : 17/05/2007

Les paquets CollisionHeight et Speed du Gracia Final Empty
MessageSujet: Les paquets CollisionHeight et Speed du Gracia Final   Les paquets CollisionHeight et Speed du Gracia Final Empty09/11/08, 10:45 am

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.
Revenir en haut Aller en bas
http://www.l2agonia.eu
Grimly

Grimly


Nombre de messages : 601
Date d'inscription : 30/08/2007

Les paquets CollisionHeight et Speed du Gracia Final Empty
MessageSujet: Re: Les paquets CollisionHeight et Speed du Gracia Final   Les paquets CollisionHeight et Speed du Gracia Final Empty09/11/08, 01:42 pm

oula oula oula !


Ne t'aventure pas tête baissée à ce point !

D'abord, essaie de comprendre les méthodes writeH, writeF ect....
Le packet utilise un buffer pour mémoriser ses informations. C'est un gros tableau d'octets (byte) si tu préfère. Ce n'est pas l'idéal pour écrire des entiers un peu plus gros, des nombres décimaux ou même des chaînes de caractères. On utilise donc ces méthodes pour faciliter le boulot ! Elles réservent en mémoire une certaine place pour la donnée à écrire et remplis les cases du tableau selon un format précis.

Bref, writeH et writeF n'allouent pas le même nombre de cases ! Là est ton problème ! Tu empiète sur la suite du packet.
Revenir en haut Aller en bas
alfo

alfo


Nombre de messages : 107
Localisation : ~/agonia
Date d'inscription : 17/05/2007

Les paquets CollisionHeight et Speed du Gracia Final Empty
MessageSujet: Re: Les paquets CollisionHeight et Speed du Gracia Final   Les paquets CollisionHeight et Speed du Gracia Final Empty09/11/08, 01:59 pm

Ok, je l'avait remarqué avec mes 100kkk Patk sans arme je me disait bien que tout avait été décalé.
Tu aurais un moyen de faire fonctionner le tout proprement ?
Merci
Revenir en haut Aller en bas
http://www.l2agonia.eu
Grimly

Grimly


Nombre de messages : 601
Date d'inscription : 30/08/2007

Les paquets CollisionHeight et Speed du Gracia Final Empty
MessageSujet: Re: Les paquets CollisionHeight et Speed du Gracia Final   Les paquets CollisionHeight et Speed du Gracia Final Empty09/11/08, 02:09 pm

Alors ... j'ai pas les codes sous les yeux mais je vais essayer de faire au mieux avec les nombres de "cases" utilisées par méthode. A toi de ne pas aller au delà de la place libre :

writeC = 1 case (byte)
writeH = 2 cases (short sur 2 bytes)
writeD = 4 cases (int sur 4 bytes)
writeQ = 8 cases (long sur 8 bytes)
writeF = 8 cases (double sur 8 bytes)
writeS = %nombre de caractères%*2 + 1 cases (String lu en UTF-16 pour le paquet)


Dernière édition par Grimly le 09/11/08, 02:13 pm, édité 1 fois
Revenir en haut Aller en bas
alfo

alfo


Nombre de messages : 107
Localisation : ~/agonia
Date d'inscription : 17/05/2007

Les paquets CollisionHeight et Speed du Gracia Final Empty
MessageSujet: Re: Les paquets CollisionHeight et Speed du Gracia Final   Les paquets CollisionHeight et Speed du Gracia Final Empty09/11/08, 02:12 pm

Ok, merci.
je vais me torturer le crâne pour trouver ^^
Revenir en haut Aller en bas
http://www.l2agonia.eu
Contenu sponsorisé





Les paquets CollisionHeight et Speed du Gracia Final Empty
MessageSujet: Re: Les paquets CollisionHeight et Speed du Gracia Final   Les paquets CollisionHeight et Speed du Gracia Final Empty

Revenir en haut Aller en bas
 
Les paquets CollisionHeight et Speed du Gracia Final
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Certificats Gracia Final.
» Geodata Gracia Final.
» ClassMaster L2j Gracia Final
» Preview du Gracia Final (Part 3)

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
L2J-FR :: Général :: Aides et Conseils-
Sauter vers:  
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser