le 15/05/2004 à 16:27
nygma
Salut !
bon, j'ai un problème, mais ça vous vous en doutez...
J'ai un jeu style jdr en php. quand le joueur fait une attaque, ça exécute un code php qui se connecte à une BDD, vérifie pas mal de trucs, dont le nombre d'attaques restant.
tout va bien, sauf que parfois, (merci free), l'exécution du code est suffisamment lente pour que l'utilisateur réattaque une ou plusieurs fois avant que l'éxécution de la première attaque soit finie.
Du coup, en cliquant comme un bourrin, on peut attaquer 10 fois alors qu'on a que 2 attaques, par exemple.
LA BDD n'a pas le temps de mettre à jour le nbre d'attaques entre 2 attaques quasi simultanées.
j'ai d'abord essayé de mettre un verrou dans ma BDD. au début du code. quand le verrou est activé, si le joueur fait deux attaques trop vite, le deuxième passage le bloque avec un die(message).
seul hic, parfois, sur plusieurs click simultanés, la BDD a pu eu le temps de mettre le verrou à jour. du coup, ça passe quand même.
là, j'essaye vie une variable de session qui me sert de verrou, mais ça merde + qu'avec la BDD.
si je fais ça proprement : 1 click, j'attends 1/2 sec, et je reclick, ça marche. mais si je click comme un bourrin, alors je fais 10 attaques d'un coup....
ça m'énerve... ça fait bien 4 mois que je traine ce bug, et je sais toujours pas quoi faire...
Quelqu'un a déjà eu ce genre de problème ?
bon, j'ai un problème, mais ça vous vous en doutez...
J'ai un jeu style jdr en php. quand le joueur fait une attaque, ça exécute un code php qui se connecte à une BDD, vérifie pas mal de trucs, dont le nombre d'attaques restant.
tout va bien, sauf que parfois, (merci free), l'exécution du code est suffisamment lente pour que l'utilisateur réattaque une ou plusieurs fois avant que l'éxécution de la première attaque soit finie.
Du coup, en cliquant comme un bourrin, on peut attaquer 10 fois alors qu'on a que 2 attaques, par exemple.
LA BDD n'a pas le temps de mettre à jour le nbre d'attaques entre 2 attaques quasi simultanées.
j'ai d'abord essayé de mettre un verrou dans ma BDD. au début du code. quand le verrou est activé, si le joueur fait deux attaques trop vite, le deuxième passage le bloque avec un die(message).
seul hic, parfois, sur plusieurs click simultanés, la BDD a pu eu le temps de mettre le verrou à jour. du coup, ça passe quand même.
là, j'essaye vie une variable de session qui me sert de verrou, mais ça merde + qu'avec la BDD.
si je fais ça proprement : 1 click, j'attends 1/2 sec, et je reclick, ça marche. mais si je click comme un bourrin, alors je fais 10 attaques d'un coup....
ça m'énerve... ça fait bien 4 mois que je traine ce bug, et je sais toujours pas quoi faire...
Quelqu'un a déjà eu ce genre de problème ?