Forum pour réunir les administrateurs de serveur L2
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  

Partagez | 
 

 [RÉSOLU]» Empêcher un joueur de se déplacer

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Divinity



Nombre de messages : 1282
Age : 27
Localisation : Yvelines
Date d'inscription : 24/05/2006

MessageSujet: [RÉSOLU]» Empêcher un joueur de se déplacer   Sam 20 Sep 2008, 13:55

Coucou,

J'ai un petit problème pour une petite modification que je fais.
En effet, j'aimerais désactiver le déplacement via le clique de la souris, de la même façon qu'on le faisait avec le déplacement avec le clavier auparavant.

J'ai d'ailleurs cherché cette option, malheureusement elle n'existe plus, j'ai une ancienne version de L2Emu où celle-ci existe, malheureusement j'ai dû la décompiler car je n'avais pas les sources, et je ne peux pas regarder dans tous les fichiers en même temps, je ne sais pas donc dans quel fichier rechercher...

Brèf, si vous aviez une piste pour réaliser cette opération, j'aimerais bien la connaitre svp Razz

Merci d'avance,

A bientôt !


Dernière édition par Divinity le Mer 24 Sep 2008, 12:07, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jules



Nombre de messages : 385
Localisation : Rome
Date d'inscription : 11/04/2008

MessageSujet: Re: [RÉSOLU]» Empêcher un joueur de se déplacer   Sam 20 Sep 2008, 17:03

Une piste : y'a une fonction setHeading() qui est appelée pour définir la direction vers laquelle les personnage doit regarder pour se déplacer. Une p'tite recherche sur l'ensemble des fichiers avec Eclipse devrait pouvoir te filer celui qui correspond au calcul des coordonées après un clic de souris.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://l2jfr.jeun.fr/search.forum
Divinity



Nombre de messages : 1282
Age : 27
Localisation : Yvelines
Date d'inscription : 24/05/2006

MessageSujet: Re: [RÉSOLU]» Empêcher un joueur de se déplacer   Sam 20 Sep 2008, 19:41

Malheureusement je n'ai pas trouvé, du moins j'ai trouvé plusieurs thread, surtout dans le L2Character, mais je les avais trouvé avant, et malheureusement il ne règle pas ma demande Sad.

Une autre piste ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jules



Nombre de messages : 385
Localisation : Rome
Date d'inscription : 11/04/2008

MessageSujet: Re: [RÉSOLU]» Empêcher un joueur de se déplacer   Sam 20 Sep 2008, 20:03

Resp, le fichier que t'avais modifié pour gérer le heading pour la gestion de l'alcool, c'est lequel ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://l2jfr.jeun.fr/search.forum
Divinity



Nombre de messages : 1282
Age : 27
Localisation : Yvelines
Date d'inscription : 24/05/2006

MessageSujet: Re: [RÉSOLU]» Empêcher un joueur de se déplacer   Lun 22 Sep 2008, 21:01

Pas de nouvelles ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jules



Nombre de messages : 385
Localisation : Rome
Date d'inscription : 11/04/2008

MessageSujet: Re: [RÉSOLU]» Empêcher un joueur de se déplacer   Lun 22 Sep 2008, 22:23

Respawner n'est pas Jules, et Jules ne connait pas le fichier que Respawner avait modifié sur ce projet...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://l2jfr.jeun.fr/search.forum
promethium



Nombre de messages : 141
Age : 34
Localisation : Compiegne
Date d'inscription : 06/09/2007

MessageSujet: Re: [RÉSOLU]» Empêcher un joueur de se déplacer   Mar 23 Sep 2008, 02:51

Pour L2J :

Dans /gs/java/net/sf/l2j/gameserver/network/clientpackets/MoveBackwardToLocation.java

essaie de rajouter :
Code:
_moveMovement=1;
a la première ligne de readImpl;

Code:
if (_moveMovement != 0)
 return;
environ la 3eme ligne dans runImpl (sur ma version il y a un nullcheck sur l'activeChar juste avant)



Méthodologie :
C'est simple a trouver, si tu as oublié que c'est MoveBackwardToLocation pour les déplacements (même s'il fait parti des 20 super courant à connaitre par cœur), tu peux simplement bidouiller un peu le fichier L2GameClientPacket pour créer un mini sniffeur L2 sous réserve de Config.DEBUG ou autres mécanismes.

Après tu tombe sur l'explication directe :
// is 0 if cursor keys are used 1 if mouse is used
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://valmemoria.com
Divinity



Nombre de messages : 1282
Age : 27
Localisation : Yvelines
Date d'inscription : 24/05/2006

MessageSujet: Re: [RÉSOLU]» Empêcher un joueur de se déplacer   Mar 23 Sep 2008, 19:17

Malheureusement ça ne fonctionne pas.
Le joueur peut toujours se déplacer avec la souris.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
decarvk



Nombre de messages : 242
Age : 27
Localisation : en france
Date d'inscription : 06/07/2008

MessageSujet: Re: [RÉSOLU]» Empêcher un joueur de se déplacer   Mar 23 Sep 2008, 19:25

si je peut me permettre de mettre mon grain de sel a l'aide (il est certainement pas complet)

ya une comande (//para) qui aralise le joueur tu devrai peut etre l'etudier
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nemerian.apdvm.asso.fr
Respawner



Nombre de messages : 1622
Age : 28
Date d'inscription : 20/04/2006

MessageSujet: Re: [RÉSOLU]» Empêcher un joueur de se déplacer   Mar 23 Sep 2008, 19:39

decarvk a écrit:
si je peut me permettre de mettre mon grain de sel a l'aide (il est certainement pas complet)

ya une comande (//para) qui aralise le joueur tu devrai peut etre l'etudier
Ouai ça va faire un truc du genre
Code:
player.setIsParalized(true)
Regarde donc du côté de la méthode qui paralyse quelqu'un.
Pour ce que j'avais fait c'était directement plus complexe car le but était de faire zigzagué le joueur, mais de façon aléatoire. J'avais utilisé une méthode dans le L2PcInstance pour les réaliser les effets que je souhaitais.

_________________
~$ cat new_server > /dev/null

Tout n'est qu'une question de point de vue.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.respawner.fr/
Divinity



Nombre de messages : 1282
Age : 27
Localisation : Yvelines
Date d'inscription : 24/05/2006

MessageSujet: Re: [RÉSOLU]» Empêcher un joueur de se déplacer   Mar 23 Sep 2008, 19:53

J'ai testé avec le joueur paralisé, j'ai aussi regardé la commande. Mais ensuite la commande //walk ne fonctionne plus, or j'aimerais que celle-ci fonctionne.

En fait je voudrais juste que lorsque le joueur clique, ou appuie sur le pad du clavier, il ne se passe rien du tout, mais qu'il puisse bouger via le Java (avec des commandes en gros).
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Respawner



Nombre de messages : 1622
Age : 28
Date d'inscription : 20/04/2006

MessageSujet: Re: [RÉSOLU]» Empêcher un joueur de se déplacer   Mar 23 Sep 2008, 20:01

Divinity a écrit:
J'ai testé avec le joueur paralisé, j'ai aussi regardé la commande. Mais ensuite la commande //walk ne fonctionne plus, or j'aimerais que celle-ci fonctionne.

En fait je voudrais juste que lorsque le joueur clique, ou appuie sur le pad du clavier, il ne se passe rien du tout, mais qu'il puisse bouger via le Java (avec des commandes en gros).
T'as tenté de "jeter" le packet qui arrive lorsque tu cliques et que tu te déplaces ?

_________________
~$ cat new_server > /dev/null

Tout n'est qu'une question de point de vue.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.respawner.fr/
Divinity



Nombre de messages : 1282
Age : 27
Localisation : Yvelines
Date d'inscription : 24/05/2006

MessageSujet: Re: [RÉSOLU]» Empêcher un joueur de se déplacer   Mar 23 Sep 2008, 20:35

Désolé mais je n'y connais rien en packet, c'est pour cela que j'ai posté ici, car je me doutais qu'il fallait "jouer" avec un packet qui permet cela.

Je ne sais pas du tout où il se trouve, et comment on le "jette"...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Respawner



Nombre de messages : 1622
Age : 28
Date d'inscription : 20/04/2006

MessageSujet: Re: [RÉSOLU]» Empêcher un joueur de se déplacer   Mar 23 Sep 2008, 20:43

Dans le package network tu trouveras ce que tu cherches Wink
Et puis dans le bon bout de code, tu nous fais un truc genre.
Code:
if (player.isTrucMachin()) return;


-------


Test avec ça.
Classe com.l2jfree.gameserver.network.clientpackets.MoveBackwardToLocation
Cherche :
Code:
   L2PcInstance activeChar = getClient().getActiveChar();
   if (activeChar == null)
      return;

Ajoute après :
Code:
      if (activeChar.cantMove())
      {
         _targetX  = activeChar.getX();
         _targetY  = activeChar.getY();
         _targetZ  = activeChar.getZ();
         return;
      }

Pas testé, purement théorique, fait en 3 minutes chrono juste pour t'aider :-P

PS : je suppose ici que la méthode cantMove() est une méthode que tu as fait pour savoir si le joueur doit être bloqué ou non. Elle doit retourner true si oui false sinon.

_________________
~$ cat new_server > /dev/null

Tout n'est qu'une question de point de vue.


Dernière édition par Respawner le Mar 23 Sep 2008, 21:35, édité 3 fois (Raison : Petite astuce si ça peut aider.)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.respawner.fr/
Divinity



Nombre de messages : 1282
Age : 27
Localisation : Yvelines
Date d'inscription : 24/05/2006

MessageSujet: Re: [RÉSOLU]» Empêcher un joueur de se déplacer   Mar 23 Sep 2008, 21:44

J'ai déjà essayé.

J'ai même carrement supprimé tout ce que contient le readImpl et le runImpl pour voir vraiment si ça venait de là.

Malheureusement ça fonctionne encore... Magie ? Shocked
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Respawner



Nombre de messages : 1622
Age : 28
Date d'inscription : 20/04/2006

MessageSujet: Re: [RÉSOLU]» Empêcher un joueur de se déplacer   Mar 23 Sep 2008, 22:18

Je sais plus quel packet est responsable de ça.
Fait comme promethium a dit. Fais un petit debugger de packets en gros ça affiche en log le packet reçu et celui envoyé après tu devrais pouvoir voir comment un déplacement se passe exactement.

_________________
~$ cat new_server > /dev/null

Tout n'est qu'une question de point de vue.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.respawner.fr/
Divinity



Nombre de messages : 1282
Age : 27
Localisation : Yvelines
Date d'inscription : 24/05/2006

MessageSujet: Re: [RÉSOLU]» Empêcher un joueur de se déplacer   Mar 23 Sep 2008, 22:33

Je vais voir cela, merci ^^.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
promethium



Nombre de messages : 141
Age : 34
Localisation : Compiegne
Date d'inscription : 06/09/2007

MessageSujet: Re: [RÉSOLU]» Empêcher un joueur de se déplacer   Mer 24 Sep 2008, 02:07

Divinity a écrit:
J'ai déjà essayé.

J'ai même carrement supprimé tout ce que contient le readImpl et le runImpl pour voir vraiment si ça venait de là.

Malheureusement ça fonctionne encore... Magie ? Shocked
Au fait... Ca marche mieux si tu recompile et que tu lance la bonne version tongue

(Bon mais si c'est moi qui me plante je m'en voudrais de t'avoir charrié pour rien Smile )
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://valmemoria.com
Respawner



Nombre de messages : 1622
Age : 28
Date d'inscription : 20/04/2006

MessageSujet: Re: [RÉSOLU]» Empêcher un joueur de se déplacer   Mer 24 Sep 2008, 02:16

promethium a écrit:
Au fait... Ca marche mieux si tu recompile et que tu lance la bonne version tongue
Et bien faire un clean avant de recompiler c'est mieux Very Happy

_________________
~$ cat new_server > /dev/null

Tout n'est qu'une question de point de vue.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.respawner.fr/
Divinity



Nombre de messages : 1282
Age : 27
Localisation : Yvelines
Date d'inscription : 24/05/2006

MessageSujet: Re: [RÉSOLU]» Empêcher un joueur de se déplacer   Mer 24 Sep 2008, 12:06

Arf c'est de ma faute.

promethium a raison, j'ai un script qui copie/colle le l2jfree-core.jar dans le gameserver après la compilation, mais malheureusement la version a changé dernièrement (ça fait longtemps que je n'ai pas mis à jour, pour des raisons personnelles) donc je ne remplaçais pas le bon jar...

Désolé pour ces posts inutiles ^^'.

Le problème est résolu, c'est bien ce packet qui gère le déplacement, merci pour vos réponses !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Respawner



Nombre de messages : 1622
Age : 28
Date d'inscription : 20/04/2006

MessageSujet: Re: [RÉSOLU]» Empêcher un joueur de se déplacer   Mer 24 Sep 2008, 13:15

Parfois les chosess les plus simples sont les plus problématiques. Y'a un paradoxe là ^^

_________________
~$ cat new_server > /dev/null

Tout n'est qu'une question de point de vue.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.respawner.fr/
Divinity



Nombre de messages : 1282
Age : 27
Localisation : Yvelines
Date d'inscription : 24/05/2006

MessageSujet: Re: [RÉSOLU]» Empêcher un joueur de se déplacer   Mer 24 Sep 2008, 15:01

C'est vrai, et ce n'est pas la première fois que ça m'arrive en plus.
Et c'est toujours la dernière chose que je vérifie... Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: [RÉSOLU]» Empêcher un joueur de se déplacer   Aujourd'hui à 01:23

Revenir en haut Aller en bas
 
[RÉSOLU]» Empêcher un joueur de se déplacer
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Catégories en onglets : empêcher la page de "remonter toute seule"
» Empêcher un train de partir en marche arrière
» [css] Empêcher un texte d'aller à la ligne dans une colonne
» Empécher le déplacement ou la suppression accidentelle d'une icône dans le menu démarrer.
» Nouvelle adresse forum : empêcher redirection automatique

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: