JeuWeb - Crée ton jeu par navigateur
2 Questions - 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 : 2 Questions (/showthread.php?tid=853)

Pages : 1 2 3


RE: 2 Questions - denisc - 22-02-2007

un Int est le bon choix pour les timestamps...

Citation :INT
L'intervalle de validité pour les entiers signés est de -2147483648 à 2147483647. L'intervalle de validité pour les entiers non-signés est 0 à 4294967295.

BIGINT
L'intervalle de validité pour les entiers signés est de -9223372036854775808 à 9223372036854775807. L'intervalle de validité pour les entiers non-signés est 0 à 18446744073709551615.

La fonction time() retourne le timestamp UNIX en secondes depuis le 1er janvier 1970 à minuit.

Donc pour une semaine, tu compares time() avec 'temps'. Une semaine vaut 7*24*60*60=604800 secondes.

donc,

>>> Si 'temps' - time() < 604800 alors ça fait moins d'une semaine

ou si tu préfères...

>>> Si 'temps' < (time()-604800), on efface l'enregistrement.


RE: 2 Questions - TiliN - 25-02-2007

Je remonte ce sujet car il faut absolument que je sache comment limiter le nombre d'attaque sur un même membre....
c'est très important
idjoueur
ma table :

pseudo vx1d vx2d vx3d vx1a vx2a vx3a



je penserais bien faire avec count mais je vois pas comment faire ....
help me please


RE: 2 Questions - TiliN - 25-02-2007

:'( please
c'est très important


RE: 2 Questions - Seren - 26-02-2007

A chaque attaque tu enregistres l'attaque dans une table dédiée :

(Attaquant, attaqué, timestamp )

Avant chaque attaque tu fais une recherche dans cette table pour voir si le couple (attaquant, attaqué) n'existe pas.

Si il existe, ça signifie qu'une attaque a eu lieu --> tu bloques l'attaques.

Ensuite tous les 24 heures tu vides ta table avec un webcron, en te basant sur le timestamp.


RE: 2 Questions - TiliN - 26-02-2007

par exemple si je veux limiter à 5 attaques (c'est une version béta donc autant voir Big Grin)
je fais
atté = attaqué et attt attaquant
Code PHP :
<?php
.......
$id = $_SESSION['id'];
$idd = $_POST['idd'];

$sql=mysql_query('Count(*) from attaque where atté ="'.$idd.'" and attt = "'.$id.'"');
if (
$sql >5)
{
echo
'Vous avez déja attaqué ce joueur 5 fois';
include (
'attaque.php')
}
else
{
//j'éffectue le combat
}
?>

ça marche comme ça ou non?


RE: 2 Questions - Seren - 26-02-2007

Je rajouterais des parenthèses, "WHERE (... AND ... )" mais sur le principe, oui.

Par contre il faut aussi un script qui va purger ta table tous les jours. Sinon tu pourras attaquer que 5 fois au maximum une cible!


RE: 2 Questions - TiliN - 26-02-2007

c'est pour ça que je demandais les 2 questions Wink

merci tout plein Smile


RE: 2 Questions - TiliN - 02-03-2007

Code PHP :
<?php 
$sql
=mysql_query('Count(*) from attaques where (atte ="'.$idd.'" and attt = "'.$id.'")');
$sqll=mysql_query('Count(*) from attaques where attt = "'.$id.'"');

$sql1 = $sql;
$sqll1 = $sqll;
if (
$sql1 > 5)
{
echo
'Vous avez déja attaqué ce joueur 5 fois! <br /><br />';
include (
'attaquent.php');

}
elseif (
$sqll1 > 25)
{
echo
'Vous avez déjà fait vos 25 attaques!<br /><br />';
include (
'attaquent.php');
}

else
{
$sqllx = "INSERT INTO attaques(atte, attt, time ) VALUES('$idd', '$id', '$time')";
//combat
//.....

voici mon code id c'est l'idée de la session et idd c'est l'attaqué, et ça ne marche pas, je ne comprend pas du tout pourquoi!
help please Smile
PS: c'est assez urgent, j'ai un potte qui a fait plus de 200 attaques >< et y en qui sont ezn train d'être dégoutés :'(


RE: 2 Questions - icien - 02-03-2007

il y a plusieurs problème déjà tes requêtes de sélection ne commencent pas par Select. il faudrait fait ca :
Code PHP :
<?php 
$sql
=mysql_query('Select Count(*) as nbattidem from attaques where (atte ="'.$idd.'" and attt = "'.$id.'")');
$sqll=mysql_query('Select Count(*) as nbatt from attaques where attt = "'.$id.'"');
Ensuite tu ne récupères aucune valeur il faut donc ajouter ca:
Code PHP :
<?php 
$val1
= mysql_fetch_array($sql);
$val2 = mysql_fetch_array($sqll);
et donc ensuite tu peux affecter les valeurs:
Code PHP :
<?php 
$sql1
= $val1['nbattidem'];
$sqll1 = $val2['nbatt'];

Voila je pense que le reste est bon.


RE: 2 Questions - TiliN - 02-03-2007

c'est quoi nbattidem nbatt ?