JeuWeb - Crée ton jeu par navigateur
[réglé]Le multiclic - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [réglé]Le multiclic (/showthread.php?tid=1222)

Pages : 1 2 3 4 5 6


[réglé]Le multiclic - Nessper - 28-05-2007

Tout d'abord c'est quoi le multiclic ? Voilà mon exemple : pour qu'un joueur attaque il doit cliquer sur le lien de l'attaque correspondante. Le problème c'est que s'il bourrine le clic gauche, chaque clic lance une attaque. Donc il a la possibilité de lancer 2000 attaques en un tour.
D'ailleurs tester sur vos jeux si une telle action est possible, à mon avis certains vont être surpris.
Donc ma question est la suivante : y'a t'il un moyen de bloquer le multiclic (sans utiliser javascript si possible car le joueur n'a qu'à désactiver javascript et le script ne sert plus à rien) ?


RE: Le multiclic - Kassak - 28-05-2007

J'avais posé la même question il n'y a pas longtemps, car c'est vraiment que c'est hyper genant ca!

J'ai pensé que dans mon jeu, a chaque attaque, le joueur va se prendre des degats en retour, donc s'il clique comme un bourrin, il va crever, apres pour les soisn et autres truc comme ca, ba s'il a envie de cliquer comme un malade c'est son choix, mais si je trouve un moyen de le bloquer je le ferais


RE: Le multiclic - X-ZoD - 28-05-2007

poru ma part j'ai remedie a ce probleme de la facon suivant
j'utilise un peu d'ajax [fete des fleures => ok je sors]
ce qui fait que quand l'internaute clique, je remplqce le contenu de la div [car en fait le bouton est dans une div] par "action en cours"
et une fois que l'action est effectuee je change a nouevau le contenu de la div pour y remetre le bouton.

vous pouriez meme metre une temporisation avec un settimeout

ca vous aide un peu ?


RE: Le multiclic - Nessper - 28-05-2007

Ben ajax=javascript donc si le joueur désactive le javascript le contenu de ton div ne se remplacera pas. Teste sur ton jeu pour voir.


RE: Le multiclic - Haiken - 28-05-2007

J'ai écrit à ce sujet ici, chapitre "Concurrence d’accès aux données".
En résumé :
- soit tu utilises les transactions (innodb)
- soit tu exploites le verrou de session (sous réserve de ne pas utiliser de gestion de session personnalisée) et tu empêches un joueur d'ouvrir plusieurs sessions
- soit tu bricoles en posant des verrous aux bons endroits (GET_LOCK avec mysql)

Je recommande la première solution, c'est quand même le plus simple et fait pour ça.


RE: Le multiclic - X-ZoD - 28-05-2007

sur mon jeu j'ai mis un module qui detect si le javascript est active ou pas... dans le cas ou il est desactive, le joueur est delog et il est prevenu.

sinon si tu peu toujours faire une espece de systeme anti flood : c'est a dire que a chaque fois qu'il clique tu mets a jour une variable (dans la bdd, session, cookie ou ce que tu veux)contenant le timestamp actuelle et tu verifie si la diference entre le timestamp actuelle et celui enregistre est bon sionon tu ne valide pas le clique.


RE: Le multiclic - Nessper - 28-05-2007

ah ouais pas mal le coup du timestamp, je pense que c'est ce que je vais faire. C'est ce qui est utilisé sur le forum d'ailleurs non ? (l'autre jour j'ai envoyé 2 messages dans un intervalle de temps réduit et il a pas voulu m'enregistrer le 2eme^^).
Sinon ton module qui détecte si le javascript est désactivé tu le lance à chaque fois qu'un grs clique, à chaque rafraichissment, etc... ? c'est pas trop lourd ? Parce que je commence à intégrer pas mal d'ajax et je me dis que ça pourrait être la meilleure solution


RE: Le multiclic - naholyr - 28-05-2007

Haiken a écrit :J'ai écrit à ce sujet ici, chapitre "Concurrence d’accès aux données".
Excellent article à mettre entre toutes les mains.


RE: Le multiclic - Mysterarts - 28-05-2007

Moi j'utilise aussi le timestamp dans mon ancien jeu... C'est aussi ce qui est utilisé sur le forum, effectivement...
C facile à mettre en place en plus !

Mysterarts, times tamp[orisation] ?

EDIT : j'ai commencé la lecture de l'article : C très interresant !


RE: Le multiclic - Nessper - 28-05-2007

Haiken a du poster son messages en même temps que X-ZoD parce que je l'avais pas vu^^. Excellent l'article sécurité, hop en favoris.
Alors c'est j'ai bien compris il me suffit juste de passer mes tables Mysql en InnoDB et j'aurai plsu ce genre de galères ?