Últimos temas
» Nuevo Mu GamLa Season 6 Episodio 3 / 2014
Miér Sep 03, 2014 6:59 pm por xseiyax

» Mu Gamers Season 3 Episodio 1 !!!
Lun Sep 09, 2013 11:08 pm por xseiyax

» MuDion Season 6 Ex:99999 Kumdun En Davias‏
Lun Mar 04, 2013 6:03 pm por xseiyax

» MU DION SEASON 6 2011
Dom Nov 20, 2011 3:25 pm por xseiyax

» Nuevo Mu Hydra Abre el Viernes 8 / 07 / 2011
Miér Jul 06, 2011 3:43 pm por darkyes

» MuCyberFenix S6
Mar Jun 21, 2011 12:38 am por brayaaan

» Mu Global Chile Season 6 Episodio 1
Sáb Jun 11, 2011 2:12 pm por Paolyta

» Nuevo Ultimate Mu [Season 6 Epi 2 | Exp :3000 | Drop : 80 % | Dedicado 24/7 Online ]
Miér Jun 08, 2011 1:57 pm por jchg00

» Nuevo Mu Darck Season 6 Episodio 2 Nuevito!!!
Jue Jun 02, 2011 7:36 pm por kaki95


No estás conectado. Conéctate o registrate

[Aporte] Limitar resets diarios

Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje [Página 1 de 1.]

1 [Aporte] Limitar resets diarios el Dom Mar 20, 2011 8:47 pm

Invitado


Invitado
Si no entendes nada de PHP/MSSQL o ni entendés el código de tu web, este no es tu lugar.

En primer lugar deberás ubicarte en el modulo de reset, en la parte que se hacen las consultas, podrás ver cosas como estas:
[PHP]$ver_reset = mssql_query("SELECT Resets from Character where Name='$usuario'");
$ver_reset2 = mssql_fetch_row($ver_reset);

$ver_nivel = mssql_query("SELECT cLevel from Character where Name='$usuario'");
$ver_nivel2 = mssql_fetch_row($ver_nivel);[/PHP]

Y deberás agregar:
[PHP]$contador = mssql_query("SELECT ContResets from Character where Name='$usuario'");
$contador2 = mssql_fetch_row($contador);[/PHP]
(Atento con la variable despules del "Name=''", dudo que coincidan.

Siendo que "ContResets" es una nueva tabla que deberás crear en Character para poder aplicar el límite.

Más abajo vas a encontrar la parte que hace el reset y deberás agregar una nueva función que es la que incrementara, de uno en uno, la tabla "ContResets"

Por ejemplo, este es nuestro código (lo acorté para que no se haga tan largo el post):
[PHP]if ($ver_nivel[0] = $resetlvl){
$general = "
UPDATE dbo.Character
SET clevel=1
WHERE Name = '$usuario'
AND AccountID = '$id'
UPDATE dbo.Character SET Experience=0
WHERE Name = '$usuario'
AND AccountID = '$id'
}[/PHP]

Y agregamos:
[PHP]UPDATE dbo.Character SET ContResets=ContResets+1
WHERE Name = '$usuario'
AND AccountID = '$id'[/PHP]

Quedando:
[PHP]if ($ver_nivel[0] = $resetlvl){
$general = "
UPDATE dbo.Character
SET clevel=1
WHERE Name = '$usuario'
AND AccountID = '$id'
UPDATE dbo.Character SET Experience=0
WHERE Name = '$usuario'
AND AccountID = '$id'
UPDATE dbo.Character SET ContResets=ContResets+1
WHERE Name = '$usuario'
AND AccountID = '$id'
}[/PHP]
Obviamente que esto varía mucho según las webs, yo lo acomodé así porque me parece más ordando y trabajo mejor.

Luego a ese código, le tenemos que agregar un "SI" (if) para que controle si el usuario no llego al limite (Tomando como referencia el valor de ContResets)

Tomando como ejemplo el código anterior, le agregamos el if:

[PHP]
if ($contador2[0] < 15) //Acá agregamos el nuevo if que chequea si ya no llegaron al límite. Siendo 15 el valor que ustedes desean que sea el límite.
{
if ($ver_nivel[0] = $resetlvl){
$general = "
UPDATE dbo.Character
SET clevel=1
WHERE Name = '$usuario'
AND AccountID = '$id'
UPDATE dbo.Character SET Experience=0
WHERE Name = '$usuario'
AND AccountID = '$id'
UPDATE dbo.Character SET ContResets=ContResets+1
WHERE Name = '$usuario'
AND AccountID = '$id'
}
}[/PHP]

Y por si se cumple el límite, tenemos que agregar ELSEIF para que le avise al usuario que por hoy, se tiene que ir a dormir.

Quedando:
[PHP]
if ($contador2[0] < 15)
{
if ($ver_nivel[0] = $resetlvl){
$general = "
UPDATE dbo.Character
SET clevel=1
WHERE Name = '$usuario'
AND AccountID = '$id'
UPDATE dbo.Character SET Experience=0
WHERE Name = '$usuario'
AND AccountID = '$id'
UPDATE dbo.Character SET ContResets=ContResets+1
WHERE Name = '$usuario'
AND AccountID = '$id'
}
elseif ($contador2[0] = 15){
echo "Alcanzaste el máximo de resets por día!";}
}
[/PHP]


Por último deben agregar un trabajo al SQL que se ejecute Diariamente a las 00:01:00Hs con el siguiente código:
Código:
UPDATE Character set ContResets=0 where ContResets>0
Con esto logramos que todos los días, pasado 1 minuto de las 24Hs (o la hora que ustedes quieran) se resetee el contador y los usuarios puedan volver a hacer resets.

Y bueno, eso fue todo.

Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.