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  
Le Deal du moment : -50%
-50% Baskets Nike Air Huarache
Voir le deal
64.99 €

 

 Programmation liée au client

Aller en bas 
3 participants
Aller à la page : 1, 2  Suivant
AuteurMessage
Eristos




Nombre de messages : 43
Age : 36
Date d'inscription : 12/06/2007

Programmation liée au client Empty
MessageSujet: Programmation liée au client   Programmation liée au client Empty20/10/08, 09:45 pm

Bonsoir à tous,

je travaille sur le serveur L2Jfree et notamment sa programmation en java (tout seul).
J'aimerai savoir si quelqu'un peut m'aiguiller sur "comment faire pour afficher sur le client que le vitality system est au level maxmimum" ?

Je sais comment faire un setVitalityLevel, mais le client ne m'affiche pas le level (ce qui me parait normal), donc comment faire pour l'afficher ?

Merci d'avance
Revenir en haut Aller en bas
http://www.fireemperor.fr/
Respawner

Respawner


Nombre de messages : 1620
Age : 35
Date d'inscription : 20/04/2006

Programmation liée au client Empty
MessageSujet: Re: Programmation liée au client   Programmation liée au client Empty20/10/08, 09:48 pm

Il y a sûrement un packet à envoyer. Par contre je ne sais pas lequel, peut être que quelqu'un le connaît vu que certains ont ce système fonctionnel je crois.
Revenir en haut Aller en bas
http://www.respawner.fr/
Eristos




Nombre de messages : 43
Age : 36
Date d'inscription : 12/06/2007

Programmation liée au client Empty
MessageSujet: Re: Programmation liée au client   Programmation liée au client Empty20/10/08, 10:04 pm

oui je me doute, mais j'aimerai avoir une indication quand à ce packet à envoyer....

Quelqu'un le connait ?

Merci d'avance (me PM est tout à fait possible si vous préférez)
Revenir en haut Aller en bas
http://www.fireemperor.fr/
Grimly

Grimly


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

Programmation liée au client Empty
MessageSujet: Re: Programmation liée au client   Programmation liée au client Empty20/10/08, 11:40 pm

sur L2J c'est avec cette classe :
net.sf.l2j.gameserver.network.serverpacket.UserInfo

"net.sf.l2j" change chez l2jfree mais le reste est semblable.

La vitalité est la dernière information envoyée.

Bonne prog Wink

Conseil : dans Eclipse, fait CTRL + SHIFT + G sur ta variable de vitalité dans la classe L2PcInstance, tu verra comment j'ai trouvé. (Temps de recherche, 30 secondes + 1 minute à écrire ce début de roman Very Happy)
Revenir en haut Aller en bas
Eristos




Nombre de messages : 43
Age : 36
Date d'inscription : 12/06/2007

Programmation liée au client Empty
MessageSujet: Re: Programmation liée au client   Programmation liée au client Empty21/10/08, 12:23 am

j'ai bien essayé :
Code:
player.setVitalityLevel(20)
sans succès

et :
Code:
writeD(player.setVitalityLevel(20));
n'est pas utilisable dans la classe ou je suis car writeD n'est pas reconnu
Revenir en haut Aller en bas
http://www.fireemperor.fr/
Respawner

Respawner


Nombre de messages : 1620
Age : 35
Date d'inscription : 20/04/2006

Programmation liée au client Empty
MessageSujet: Re: Programmation liée au client   Programmation liée au client Empty21/10/08, 01:30 am

Après ton code
Code:
player.setVitalityLevel(20);
Ajoute
Code:
player.broadcastUserInfo();
Ca va balancer le bon packet.
Voir la méthode dans la classe L2PcInstance.
Code:
   public final void broadcastUserInfo()
   {
      ......
      
      // Send a Server->Client packet UserInfo to this L2PcInstance
      sendPacket(new UserInfo(this));

      ......
   }
T'es bien sur d'avoir compris le concept de Java ? La méthode writeD n'est pas accessible dans ta classe car c'est une méthode qui peut être utilisée seulement dans les packets (héritage et cie Smile)
Revenir en haut Aller en bas
http://www.respawner.fr/
Eristos




Nombre de messages : 43
Age : 36
Date d'inscription : 12/06/2007

Programmation liée au client Empty
MessageSujet: Re: Programmation liée au client   Programmation liée au client Empty21/10/08, 05:41 pm

Je te remercie.

Code:
T'es bien sur d'avoir compris le concept de Java ?
Je pense bien sur l'avoir compris, mais j'ai du mal à intégrer la façon dont est codé le serveur, de plus je ne connais pas 1/1000 des fonctions, procédures, constructeurs de classe et autres qui sont intégrés au serveur L2Jfree (par simple manque de temps pour m'y pencher réellement), et j'ai bien sur des lacunes qui font que pour l'instant tout ne vient pas spontanément

Ps: Désolé si tu penses que je suis encore un noob
Revenir en haut Aller en bas
http://www.fireemperor.fr/
Respawner

Respawner


Nombre de messages : 1620
Age : 35
Date d'inscription : 20/04/2006

Programmation liée au client Empty
MessageSujet: Re: Programmation liée au client   Programmation liée au client Empty21/10/08, 05:52 pm

Eristos a écrit:
Je pense bien sur l'avoir compris, mais j'ai du mal à intégrer la façon dont est codé le serveur, de plus je ne connais pas 1/1000 des fonctions, procédures, constructeurs de classe et autres qui sont intégrés au serveur L2Jfree (par simple manque de temps pour m'y pencher réellement), et j'ai bien sur des lacunes qui font que pour l'instant tout ne vient pas spontanément

Ps: Désolé si tu penses que je suis encore un noob
Essaie de revoir comment on utilise les méthodes car tu as peut être une lacune de ce côté là. Je ne te prend pas pour un noob hein, t'en connais et tu essaies d'en faire bien plus que beaucoup de monde.
Revenir en haut Aller en bas
http://www.respawner.fr/
Eristos




Nombre de messages : 43
Age : 36
Date d'inscription : 12/06/2007

Programmation liée au client Empty
MessageSujet: Re: Programmation liée au client   Programmation liée au client Empty21/10/08, 10:36 pm

après quelques tests je te demande une nouvelle fois ton aide:

j'ai fait:
dans l2Boss :
Code:
....
public boolean doDie(L2Character killer)
    {
        if (!super.doDie(killer))
            return false;

        L2PcInstance player = killer.getActingPlayer();
        if (player != null)
        {
            broadcastPacket(new SystemMessage(SystemMessageId.RAID_WAS_SUCCESSFUL));
            if (player.getParty() != null)
            {
                for (L2PcInstance member : player.getParty().getPartyMembers())
                    rewardRaidPoints(member);
            }
            else
            {             
            rewardRaidPoints(player);
           
            }
           
            RaidPointsManager.getInstance().calculateRanking();
        }
        ====================
        player.setVitalityLevel(20);
        player.broadcastUserInfo();
        ====================
        return true;
    }
.....

Cependant, un peu après que le raidboss ne soit mort j'ai le vitality level qui passe à 1.
Impossible de le faire passer à un autre level.

ou ai-je fait une erreur, pouvez vous m'aiguiller (sans me donner la réponse afin que je comprenne ^^)


Dernière édition par Eristos le 21/10/08, 10:49 pm, édité 1 fois
Revenir en haut Aller en bas
http://www.fireemperor.fr/
Respawner

Respawner


Nombre de messages : 1620
Age : 35
Date d'inscription : 20/04/2006

Programmation liée au client Empty
MessageSujet: Re: Programmation liée au client   Programmation liée au client Empty21/10/08, 10:42 pm

Regarde bien à quel objet tu appliques la méthode broadcastUserInfo() au boss ou au joueur ?
Petite indication ici ton utilisation de la méthode peut aussi être écrite comme.
Code:
this.broadcastUserInfo();

J'ai rien dit t'as corrigé Razz

PS : manque un ;

PS2 : Pour aider au debug (car je vois pas), fais une sortie à la console pour voir le level.
Code:
System.out.println("Player " + player.getName() + ", vitality level " + player.getVitalityLevel());

Au passage regarde bien la méthode setVitalityLevel(int level)
Code:
   public void setVitalityLevel(int level)
   {
      if (level > 5)
         level = 5;
      else if (level < 0)
         level = 0;

      _vitalityLevel = level;
   }


Dernière édition par Respawner le 21/10/08, 10:56 pm, édité 3 fois
Revenir en haut Aller en bas
http://www.respawner.fr/
Eristos




Nombre de messages : 43
Age : 36
Date d'inscription : 12/06/2007

Programmation liée au client Empty
MessageSujet: Re: Programmation liée au client   Programmation liée au client Empty21/10/08, 10:48 pm

oui j'ai fait mal fait un copier/coller pour vous présenter mon problème mais il ne manquait pas le ";" (sinon eclipse me l'aurait dit à la compilation) et j'avais vérifié


Sinon as-tu une idée d'où ce la peut venir ?
Revenir en haut Aller en bas
http://www.fireemperor.fr/
Grimly

Grimly


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

Programmation liée au client Empty
MessageSujet: Re: Programmation liée au client   Programmation liée au client Empty21/10/08, 10:50 pm

point virgule manquant !
Pour les "=", je suppose que c'est ajouté après ou en commentaire dans le code.

Tu peux mettre la commande de façon à se que tous les membres du groupe reçoivent la "vitality".
En tout cas, met le dans la condition, sinon tu vas avoir des surprises.

Mis à part ça, je ne sais pas où se trouverai le problème.

Comment fonctionne la vitality ? (oui parce que ça n'existait pas sous Interlude et depuis, je n'ai toujours pas joué)


Dernière édition par Grimly le 21/10/08, 10:52 pm, édité 1 fois
Revenir en haut Aller en bas
Respawner

Respawner


Nombre de messages : 1620
Age : 35
Date d'inscription : 20/04/2006

Programmation liée au client Empty
MessageSujet: Re: Programmation liée au client   Programmation liée au client Empty21/10/08, 10:51 pm

Regarde juste au dessus, test, donne les logs qui apparaissent. C'est pour voir si c'est un soucis niveau valeur dans le Java ou simplement affichage client.
Revenir en haut Aller en bas
http://www.respawner.fr/
Eristos




Nombre de messages : 43
Age : 36
Date d'inscription : 12/06/2007

Programmation liée au client Empty
MessageSujet: Re: Programmation liée au client   Programmation liée au client Empty21/10/08, 11:55 pm

Citation :
Pour les "=", je suppose que c'est ajouté après ou en commentaire dans le code.
Oui c'était simplement une façon de montrer ce que j'ai rajouté.

Citation :
Code:
System.out.println("Player " + player.getName() + ", vitality level " + player.getVitalityLevel());
J'ai bien rajouté cela mais rien ne se passe, donc je suppose qu'il ne passe pas par cette instruction
Revenir en haut Aller en bas
http://www.fireemperor.fr/
Respawner

Respawner


Nombre de messages : 1620
Age : 35
Date d'inscription : 20/04/2006

Programmation liée au client Empty
MessageSujet: Re: Programmation liée au client   Programmation liée au client Empty22/10/08, 12:02 am

Question con ... tu tue bien un boss pour tester ? Qui a le statut de boss dans la base de données ?
Revenir en haut Aller en bas
http://www.respawner.fr/
Eristos




Nombre de messages : 43
Age : 36
Date d'inscription : 12/06/2007

Programmation liée au client Empty
MessageSujet: Re: Programmation liée au client   Programmation liée au client Empty22/10/08, 12:25 am

oui, j'ai même tuer valakas et antharas pour tester et là je vien de tuer le bossId = 25001 de la table npc : Greyclaw Kutus : L2RaidBoss

cependant, il m'affiche sur la console bossspawn manager updated : ce qui est normal mais rien d'autre
Revenir en haut Aller en bas
http://www.fireemperor.fr/
Respawner

Respawner


Nombre de messages : 1620
Age : 35
Date d'inscription : 20/04/2006

Programmation liée au client Empty
MessageSujet: Re: Programmation liée au client   Programmation liée au client Empty22/10/08, 01:03 am

Montre la méthode doDie pour voir où tu as mis le System.out.println(....).
Revenir en haut Aller en bas
http://www.respawner.fr/
Grimly

Grimly


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

Programmation liée au client Empty
MessageSujet: Re: Programmation liée au client   Programmation liée au client Empty22/10/08, 07:46 am

Grimly a écrit:
Comment fonctionne la vitality ? (oui parce que ça n'existait pas sous Interlude et depuis, je n'ai toujours pas joué)

C'est quoi le "vitality" ???
Revenir en haut Aller en bas
Respawner

Respawner


Nombre de messages : 1620
Age : 35
Date d'inscription : 20/04/2006

Programmation liée au client Empty
MessageSujet: Re: Programmation liée au client   Programmation liée au client Empty22/10/08, 01:19 pm

Revenir en haut Aller en bas
http://www.respawner.fr/
Grimly

Grimly


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

Programmation liée au client Empty
MessageSujet: Re: Programmation liée au client   Programmation liée au client Empty22/10/08, 02:00 pm

O_o monstrueux !

Sauf que dans le screen de NCSoft, il y a un %age. Il existe donc une variable supplémentaire à modifier !
Cette dernière se modifiant en continue (ou presque), le "niveau" est réactualisé.

EDIT : En fait non. Il viens faire quoi là ce pourcentage ?
Il faut trouver un autre paquet ^^'.

EDIT 2 : J'ai parcouru vite fait les sources ... Rien n'est encore fait ! Même pas les paquets.
Revenir en haut Aller en bas
Respawner

Respawner


Nombre de messages : 1620
Age : 35
Date d'inscription : 20/04/2006

Programmation liée au client Empty
MessageSujet: Re: Programmation liée au client   Programmation liée au client Empty22/10/08, 05:11 pm

Conclusion c'est probablement l'affichage du client qui ne marche pas mais la valeur dans la variable doit être correcte.
Revenir en haut Aller en bas
http://www.respawner.fr/
Grimly

Grimly


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

Programmation liée au client Empty
MessageSujet: Re: Programmation liée au client   Programmation liée au client Empty22/10/08, 10:04 pm

Non, le client tourne rond, mais c'est le serveur qui ne suit pas.

De plus, un entier de 0 à 5 sur 4 bits ?
Il y a un léger problème de taille dans les paquets.

Si on regarde dans le serveur, on a une variable, les getter et setter, une brève apparition dans le paquet "UserInfo". Le reste ne concerne rien de semblable.
Revenir en haut Aller en bas
Respawner

Respawner


Nombre de messages : 1620
Age : 35
Date d'inscription : 20/04/2006

Programmation liée au client Empty
MessageSujet: Re: Programmation liée au client   Programmation liée au client Empty22/10/08, 11:41 pm

Oui le client tourne bon mais n'affiche pas les infos correctement car on ne les lui envoie pas correctement. J'ai pas dit que le client buggait, j'ai juste dit que le client n'affiche pas ce que l'on veut (en l'occurence ici c'est de la faute du core Java).
Revenir en haut Aller en bas
http://www.respawner.fr/
Eristos




Nombre de messages : 43
Age : 36
Date d'inscription : 12/06/2007

Programmation liée au client Empty
MessageSujet: Re: Programmation liée au client   Programmation liée au client Empty25/10/08, 11:07 am

Citation :
Montre la méthode doDie pour voir où tu as mis le System.out.println(....).

Code:
public boolean doDie(L2Character killer)
    {
        if (!super.doDie(killer))
            return false;

        L2PcInstance player = killer.getActingPlayer();
        if (player != null)
        {
            broadcastPacket(new SystemMessage(SystemMessageId.RAID_WAS_SUCCESSFUL));
            if (player.getParty() != null)
            {
                for (L2PcInstance member : player.getParty().getPartyMembers())
                               rewardRaidPoints(member);
            }
            else
            {
            player.setVitalityLevel(0);
            rewardRaidPoints(player);
            System.out.println("Player " + player.getName() + ", vitality level " + player.getVitalityLevel());
           
            }
           
            RaidPointsManager.getInstance().calculateRanking();
        }
      return true;
    }


Maintenant j'ai mis mon client à jour, le problème c'est qu'en tuant un raidboss dans mon code je dois mettre mon vitality level à 0 mais il se met automatiquement à 5 :s
Revenir en haut Aller en bas
http://www.fireemperor.fr/
Grimly

Grimly


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

Programmation liée au client Empty
MessageSujet: Re: Programmation liée au client   Programmation liée au client Empty25/10/08, 02:21 pm

Ici, si tu es dans un groupe, ta vitality ne se modifie pas.
Revenir en haut Aller en bas
Contenu sponsorisé





Programmation liée au client Empty
MessageSujet: Re: Programmation liée au client   Programmation liée au client Empty

Revenir en haut Aller en bas
 
Programmation liée au client
Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant
 Sujets similaires
-
» [client] infos mobs
» Modification du client concernant le nwindow.dll
» [Explication] Erreur SVN : client trop vieux ...

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