Salut a tous!
je suis tout nouveau sur ce forum.
j'ai des connaissances en HTML (ou XHTML) et CSS.
j'ai decouvert il y a quelques moment le languages javascript et ce qu'il pouvait faire. j'ai donc commencé a m'y interessé.
puis, ayant, dans le passé, un script greasemonkey pour ogame, j'ai decidé de me lancer dans mon propre script pour un autre jeu.
je ne connais pas grand chose dans les fonctionnalités de greasemonkey et je n'ai trouvé de documentation complete qu'en anglais (que je suis en train de dechiffrer).
ce jeu peut se jouer soit a la souris, soit au clavier.
on peut se deplacer sur la carte au clavier via les touches Z,Q,S,D et j'aimerais rajouter des touches pour différentes actions.
j'ai fouillé dans les scripts utilisés et j'ai trouvé ceci (je ne met pas tout le script):
j'ai donc modifié pour rajouter mes propres touches:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 function deplace_clavier(event) { var element = $(Event.element(event)); switch(event.keyCode){ case 81: //Q if (clavier_type == "azerty") move_to('gauche'); break; case 65: //A if (clavier_type == "qwerty") move_to('gauche'); break; case 90: //Z if (clavier_type == "azerty") move_to('haut'); if (clavier_type == "qwertz") move_to('gauche'); break; case 87: //W if (clavier_type == "qwerty" || clavier_type == "qwertz") move_to('haut'); break; case 68: //D move_to('droite'); break; //S case 83:move_to('bas'); break; default: null; } }
mais, maintenant, un probleme se pose: comment changer ça dans la page?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 function deplace_clavier(event) { var element = $(Event.element(event)); switch(event.keyCode){ // ======================= AJOUT =========================== case 69: //E: prendre une potion act = "popo" action(act); break; case 65: //A: actualiser la page depl(0); break; // ======================= /AJOUT =========================== case 81: //Q if (clavier_type == "azerty") move_to('gauche'); break; case 65: //A if (clavier_type == "qwerty") move_to('gauche'); break; case 90: //Z if (clavier_type == "azerty") move_to('haut'); if (clavier_type == "qwertz") move_to('gauche'); break; case 87: //W if (clavier_type == "qwerty" || clavier_type == "qwertz") move_to('haut'); break; case 68: //D move_to('droite'); break; //S case 83:move_to('bas'); break; default: null; }
j'ai donc fais un userscript pour modifier la balise script changer la source du script pour changer l'original avec le modifié.
vu que la balise script a modifier na pas d'Id, j'ai utilisé ceci:
pourquoi le setTimeout?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 function change(){ document.getElementsByTagName("script")[4].src = "Adresse_du script_modifié"; } setTimeout(change(),3000);
j'ai remarqué que le userscript (sous opera ou FF) se lançait avant le chargement de la page et qu'il ne trouvait pas de balise script.
une fois le script enregistré et la page web chargée, j'ai regardé sous firebug si la modif était faite.
c'était le cas mais lorsque j'appuyais sur A, rien ne se passait.
pourriez-vous m'indiquer pourquoi?
est-ce parceque la balise script est dans le <body> ?
merci de vos réponses!
Partager