|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre à l'essai
![]() Roman AdamskiInscription : décembre 2010 Messages : 20 ![]() |
Bonsoir à tous,
Ayant récemment découvert le jeu NetHack en console de commande, mais n'aimant pas les contrôles clavier fournit, je me suis mis en tête d'écrire un petit programme pour changer mes frappes claviers et à l'aide d'une pipe, redéfinir les contrôles par défaut du jeu et éventuellement programmer des macros. Code :
Code :
Merci d'avance. edit : Si jamais çà a un impact, j'utilise le système fedora core 9. |
||||
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() francois Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 3 534 ![]() |
Modifier les commandes nethack n'est pas simple du tout (je suis un joueur régulier aussi), déjà par le nombre de combinaisons disponibles, sans compter les commandes textuelles comme loot, pray, etc...
Il sera bien plus simple de repartir du code source et de changer les touches à ce niveau là. Néanmoins, Nethack est un jeux Unix pour Unix qui conserve la logique Unix dans ses commandes internes, autrement dit il est optimisé au maximum pour les utilisateur unix. Si tu as du mal avec ce jeux, l'autre astuce consiste à te procurer un claver qwerty, ce qui rend cette logique encore plus efficace. Quelle(s) gamme(s) de commandes te pose(nt) problème ? direction ? mouvements ? Gestion équipement ? Magie ? Commerce ? Commandes textuelles ? |
|
|
00
|
|
|
#3 | |
|
Membre Expert
![]() frederic frances Inscription : juin 2009 Messages : 1 703 ![]() |
As-tu essayé xargs?
http://unixhelp.ed.ac.uk/CGI/man-cgi?xargs Tu peux aussi scripter les saisie clavier d'une commande de la façon suivante:
__________________
BAZAR est un joyeux bordel improvisé ! Tous les mardis. http://www.improetcompagnie.com/publ...ctacles-6.html Citation:
http://www.emacswiki.org/ Attends de voir ce qui vas sortir de: http://www.pushmid.com |
|
|
|
00
|
|
|
#4 | |
|
Expert Confirmé Sénior
![]() francois Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 3 534 ![]() |
Citation:
|
|
|
|
00
|
|
|
#5 | |
|
Membre Expert
![]() frederic frances Inscription : juin 2009 Messages : 1 703 ![]() |
je viens de voir ce que faisais cette commande, effectivement....
__________________
BAZAR est un joyeux bordel improvisé ! Tous les mardis. http://www.improetcompagnie.com/publ...ctacles-6.html Citation:
http://www.emacswiki.org/ Attends de voir ce qui vas sortir de: http://www.pushmid.com |
|
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Ingénieur développement logiciels Inscription : octobre 2008 Messages : 1 375 ![]() |
Le plus simple pour faire ce que tu veux faire, ça serait je pense d'écrire ton programme "changekey" en Expect, qui est fait pour ça. Mais à mon avis ça va être effectivement beaucoup plus dur que tu ne l'imagines.
|
|
|
00
|
|
|
#7 | |
|
Membre Expert
![]() frederic frances Inscription : juin 2009 Messages : 1 703 ![]() |
et xargs ? qui est l'autre solution que j'ai proposée ?
__________________
BAZAR est un joyeux bordel improvisé ! Tous les mardis. http://www.improetcompagnie.com/publ...ctacles-6.html Citation:
http://www.emacswiki.org/ Attends de voir ce qui vas sortir de: http://www.pushmid.com |
|
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() Ingénieur développement logiciels Inscription : octobre 2008 Messages : 1 375 ![]() |
Je ne pas vois pas comment xargs peut être utilisé dans ce contexte. L'exemple que tu as donné exécuterait la commande "nethack" avec en argument les entrées modifiées.
|
|
|
00
|
|
|
#9 | ||||
|
Membre à l'essai
![]() Roman AdamskiInscription : décembre 2010 Messages : 20 ![]() |
@all:
Pour ceux qui ne connaissent pas, nethack est un jeu de rôle façon porte/monstre/trésors en console de commande, est gratuit et est très riche (rien à envier à diablo de Blizzard). @frp13 : Comme je joue depuis mon "vieux" portable ibm, j'ai un clavier azerty sans pavé numérique. Donc je peux mettre aux oubliettes les commandes [1-9] pour me déplacer. J'ai déjà pris l'habitude de [yubn] avec rogue pour me déplacer en diagonale, mais j'ai vraiment du mal avec [hjkl] que je souhaiterais remplacer par les touches fléchées. Mon programme changekey fait çà très bien : Il passe son terminal d'exécution en mode raw de façon à ce que je n'aie pas besoin d'appuyer sur entrée à chaque commande, et suivant la touche sur laquelle j'ai appuyé, il affichera à l'écran la commande que je veux lui associer. @jabbounet : l'utilisation de xargs n'a pas résolu mon problème, nethack me donne le message suivant : Code :
@matafan: S'agit-il de cet Expect ? Je ne connais pas encore, je suis en train de regarder. Est-ce que Expect peut faire croire à nethack qu'il reçoit ses entrées depuis un terminal et non un pipe ? Comme nethack veut être exécuté depuis un terminal j'ai pensé à d'abord lancer nethack sur un terminal, puis depuis un autre faire la commande : Code :
D'autres idées ? |
||||
|
|
00
|
|
|
#10 | |
|
Membre Expert
![]() frederic frances Inscription : juin 2009 Messages : 1 703 ![]() |
Si le but c'est de mapper différemment ton clavier tu peux essayer de jouer avec setxkbmap / xmodmap
http://www.liafa.jussieu.fr/~carton/...X/xmodmap.html http://www.delafond.org/traducmanfr/...modmap.1x.html http://linux.die.net/man/1/setxkbmap
__________________
BAZAR est un joyeux bordel improvisé ! Tous les mardis. http://www.improetcompagnie.com/publ...ctacles-6.html Citation:
http://www.emacswiki.org/ Attends de voir ce qui vas sortir de: http://www.pushmid.com |
|
|
|
10
|
|
|
#11 |
|
Expert Confirmé Sénior
![]() francois Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 3 534 ![]() |
ouais l'idée est pas si mauvaise,
|
|
|
00
|
|
|
#12 | ||||
|
Membre à l'essai
![]() Roman AdamskiInscription : décembre 2010 Messages : 20 ![]() |
@jabbounet:
Merci beaucoup pour tes liens, çà m'a permis de découvrir de nouvelles chôses. Effectivement directement modifier le mapping du clavier dans le système pourrait être une solution. Mais ce n'est pas un peu extrême ? Si je souhaite utiliser un programme de messagerie ou tout autre applications utilisant mon clavier il faudra que je change mon mapping à chaque fois que je change d'application, non ? De plus, les raccourcis systèmes (exemple : Ctrl+Alt+flèche gauche ou droite pour passer d'un bureau à l'autre) ne fonctionneront plus tant que je naurais pas remis l'ancienne keymap... Sinon en cherchant un peu sur le mot-clé Expect, j'ai trouvé le lien suivant sur le programme empty : http://empty.sourceforge.net/ (trouvé dans les liens externes de la page de wikipédia version anglais) Grâce à empty, j'arrive à faire un pipeline de mon programme changekey vers nethack : Dans une première console : Code :
Code :
Le seul souci vient de l'affichage, à l'aide de la commande cat : celle-ci n'est pas prévu pour afficher le contenu dynamique de la sortie d'un pipeline => cat vide le fichier lors de sa lecture et ne réactualise pas automatiquement le contenu. Connaissez-vous un petit utilitaire qui pourrait remplir cette fonction ? Ou sinon savez-vous quels fonctions je pourrais utiliser dans un nouveau programme pour lire le contenu de la pipe sans le retirer en même temps du fichier (comme celà est fait automatiquement avec les fonctions "classiques") ? Pour autant que j'ai pu le constater NetHack ne ré-écrit que les caractères qui changent... |
||||
|
|
00
|
|
|
#13 | |
|
Membre Expert
![]() frederic frances Inscription : juin 2009 Messages : 1 703 ![]() |
__________________
BAZAR est un joyeux bordel improvisé ! Tous les mardis. http://www.improetcompagnie.com/publ...ctacles-6.html Citation:
http://www.emacswiki.org/ Attends de voir ce qui vas sortir de: http://www.pushmid.com |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com