| [RÉSOLU]» Empêcher un joueur de se déplacer | |
|
|
Auteur | Message |
---|
Divinity
Nombre de messages : 1282 Age : 35 Localisation : Yvelines Date d'inscription : 24/05/2006
| Sujet: [RÉSOLU]» Empêcher un joueur de se déplacer 20/09/08, 12:55 pm | |
| 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 Merci d'avance, A bientôt !
Dernière édition par Divinity le 24/09/08, 11:07 am, édité 1 fois | |
|
| |
Jules
Nombre de messages : 384 Localisation : Rome Date d'inscription : 11/04/2008
| Sujet: Re: [RÉSOLU]» Empêcher un joueur de se déplacer 20/09/08, 04:03 pm | |
| 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. | |
|
| |
Divinity
Nombre de messages : 1282 Age : 35 Localisation : Yvelines Date d'inscription : 24/05/2006
| Sujet: Re: [RÉSOLU]» Empêcher un joueur de se déplacer 20/09/08, 06:41 pm | |
| 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 . Une autre piste ? | |
|
| |
Jules
Nombre de messages : 384 Localisation : Rome Date d'inscription : 11/04/2008
| Sujet: Re: [RÉSOLU]» Empêcher un joueur de se déplacer 20/09/08, 07:03 pm | |
| Resp, le fichier que t'avais modifié pour gérer le heading pour la gestion de l'alcool, c'est lequel ? | |
|
| |
Divinity
Nombre de messages : 1282 Age : 35 Localisation : Yvelines Date d'inscription : 24/05/2006
| Sujet: Re: [RÉSOLU]» Empêcher un joueur de se déplacer 22/09/08, 08:01 pm | |
| | |
|
| |
Jules
Nombre de messages : 384 Localisation : Rome Date d'inscription : 11/04/2008
| Sujet: Re: [RÉSOLU]» Empêcher un joueur de se déplacer 22/09/08, 09:23 pm | |
| Respawner n'est pas Jules, et Jules ne connait pas le fichier que Respawner avait modifié sur ce projet... | |
|
| |
promethium
Nombre de messages : 140 Age : 41 Localisation : Compiegne Date d'inscription : 06/09/2007
| Sujet: Re: [RÉSOLU]» Empêcher un joueur de se déplacer 23/09/08, 01:51 am | |
| 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 | |
|
| |
Divinity
Nombre de messages : 1282 Age : 35 Localisation : Yvelines Date d'inscription : 24/05/2006
| Sujet: Re: [RÉSOLU]» Empêcher un joueur de se déplacer 23/09/08, 06:17 pm | |
| Malheureusement ça ne fonctionne pas. Le joueur peut toujours se déplacer avec la souris. | |
|
| |
decarvk
Nombre de messages : 241 Age : 34 Localisation : en france Date d'inscription : 06/07/2008
| Sujet: Re: [RÉSOLU]» Empêcher un joueur de se déplacer 23/09/08, 06:25 pm | |
| 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 | |
|
| |
Respawner
Nombre de messages : 1620 Age : 35 Date d'inscription : 20/04/2006
| Sujet: Re: [RÉSOLU]» Empêcher un joueur de se déplacer 23/09/08, 06:39 pm | |
| - 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. | |
|
| |
Divinity
Nombre de messages : 1282 Age : 35 Localisation : Yvelines Date d'inscription : 24/05/2006
| Sujet: Re: [RÉSOLU]» Empêcher un joueur de se déplacer 23/09/08, 06:53 pm | |
| 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). | |
|
| |
Respawner
Nombre de messages : 1620 Age : 35 Date d'inscription : 20/04/2006
| Sujet: Re: [RÉSOLU]» Empêcher un joueur de se déplacer 23/09/08, 07:01 pm | |
| - 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 ? | |
|
| |
Divinity
Nombre de messages : 1282 Age : 35 Localisation : Yvelines Date d'inscription : 24/05/2006
| Sujet: Re: [RÉSOLU]» Empêcher un joueur de se déplacer 23/09/08, 07:35 pm | |
| 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"... | |
|
| |
Respawner
Nombre de messages : 1620 Age : 35 Date d'inscription : 20/04/2006
| Sujet: Re: [RÉSOLU]» Empêcher un joueur de se déplacer 23/09/08, 07:43 pm | |
| Dans le package network tu trouveras ce que tu cherches 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.MoveBackwardToLocationCherche : - 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.
Dernière édition par Respawner le 23/09/08, 08:35 pm, édité 3 fois (Raison : Petite astuce si ça peut aider.) | |
|
| |
Divinity
Nombre de messages : 1282 Age : 35 Localisation : Yvelines Date d'inscription : 24/05/2006
| Sujet: Re: [RÉSOLU]» Empêcher un joueur de se déplacer 23/09/08, 08:44 pm | |
| 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 ? | |
|
| |
Respawner
Nombre de messages : 1620 Age : 35 Date d'inscription : 20/04/2006
| Sujet: Re: [RÉSOLU]» Empêcher un joueur de se déplacer 23/09/08, 09:18 pm | |
| 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. | |
|
| |
Divinity
Nombre de messages : 1282 Age : 35 Localisation : Yvelines Date d'inscription : 24/05/2006
| Sujet: Re: [RÉSOLU]» Empêcher un joueur de se déplacer 23/09/08, 09:33 pm | |
| Je vais voir cela, merci ^^. | |
|
| |
promethium
Nombre de messages : 140 Age : 41 Localisation : Compiegne Date d'inscription : 06/09/2007
| Sujet: Re: [RÉSOLU]» Empêcher un joueur de se déplacer 24/09/08, 01:07 am | |
| | |
|
| |
Respawner
Nombre de messages : 1620 Age : 35 Date d'inscription : 20/04/2006
| |
| |
Divinity
Nombre de messages : 1282 Age : 35 Localisation : Yvelines Date d'inscription : 24/05/2006
| Sujet: Re: [RÉSOLU]» Empêcher un joueur de se déplacer 24/09/08, 11:06 am | |
| 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 ! | |
|
| |
Respawner
Nombre de messages : 1620 Age : 35 Date d'inscription : 20/04/2006
| Sujet: Re: [RÉSOLU]» Empêcher un joueur de se déplacer 24/09/08, 12:15 pm | |
| Parfois les chosess les plus simples sont les plus problématiques. Y'a un paradoxe là ^^ | |
|
| |
Divinity
Nombre de messages : 1282 Age : 35 Localisation : Yvelines Date d'inscription : 24/05/2006
| Sujet: Re: [RÉSOLU]» Empêcher un joueur de se déplacer 24/09/08, 02:01 pm | |
| 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... | |
|
| |
Contenu sponsorisé
| Sujet: Re: [RÉSOLU]» Empêcher un joueur de se déplacer | |
| |
|
| |
| [RÉSOLU]» Empêcher un joueur de se déplacer | |
|