No logro hacer esto, ayuda! -
TiNcH010 - 09.09.2011
Hola, resulta que quiero que detecte que a tal hora (yo lo pongo eso) setee una variable a 1.
Ejemplo mнo:
pawn Код:
// En OnGameModeInit tengo esto el timer (1 segundo) que es este:
new hora, minutos;
gettime(hora, minutos);
for (new i=0; i < MAX_PLAYERS; i++)
{
if(hora == 23 || minutos >= 00)
{
CerrarBanco[playerid] = 1;
}
}
Lo malo es que siempre esta en 1, ya puse en OnPlayerConnect CerrarBanco[playerid] = 0; pero sigue igual :S
No detecta que son las 23hs
Quiero eso, que a las 23 hs setee la variable a
edit: 1, y si no son las 23 horas, no lo setee.
Pero no funciona, que hago mal?
Respuesta: No logro hacer esto, ayuda! -
Jovanny - 09.09.2011
LOL, Como no puedes detectar ese error tan facil ?
pawn Код:
new hora, minutos;
gettime(hora, minutos);
for (new i=0; i < MAX_PLAYERS; i++)
{
if(hora == 23 || minutos >= 00)
{
CerrarBanco[i] = 1;
}
}
Eso solo se llama una vez, al iniciar el gamemode, no va a quedar repitiйndose para estar checando si esta abierto o cerrado. Hazlo asн
pawn Код:
public OnGameModeInit()
{
SetTimer("ChecarBanco",300,true);
}
forward ChecarBanco(); public ChecarBanco()
{
new hora, minutos;
gettime(hora, minutos);
for (new i=0; i < MAX_PLAYERS; i++)
{
if(hora == 23 || minutos >= 00)CerrarBanco[i] = 1;
}
}
EDIT:
Ademas ya que sean las 23 jamas se abrira el banco de nuevo si no pones otra condicion if
pawn Код:
public OnGameModeInit()
{
SetTimer("ChecarBanco",300,true);
}
forward ChecarBanco(); public ChecarBanco()
{
new hora, minutos;
gettime(hora, minutos);
for (new i=0; i < MAX_PLAYERS; i++)
{
if(hora == 23 && hora <= 7)CerrarBanco[i] = 1;
else if (hora >= 7 && minutos >= 00)CerrarBanco[i]=0;
}
}
Eso cerrara el banco a las 23 y lo abrirб a las 7.
EDIT 2: Puedes hacerlo sin array, solу haciendo una variable que indique si el banco esta cerrado o abierto y al momento de querer entrar compruebe la variable si es igual a 1 o 0
Re: No logro hacer esto, ayuda! -
Daniel-92 - 09.09.2011
EDIT: No dije nada
Respuesta: Re: No logro hacer esto, ayuda! -
Jovanny - 09.09.2011
Quote:
Originally Posted by Daniel-92
EDIT: No dije nada
|
Lo alcancй a ver xD
Respuesta: No logro hacer esto, ayuda! -
TiNcH010 - 09.09.2011
Gracias Daniel me sirvio, pero la unica cagada es que si el jugador tiene la hora de su PC como el quiera, el banco estara abierto a la hora que el quiera :S
Lo acabo de comprobar.
Como hago para que detecte mi propia hora (que yo le puse al sv) ?
Re: Respuesta: Re: No logro hacer esto, ayuda! -
Daniel-92 - 09.09.2011
Quote:
Originally Posted by josta
Lo alcancй a ver xD
|
el primer ejemplo que pusistes estб igual que el de tincho, el banco siempre estarб cerrado por que verificas los minutos, por ejemplo si son las 12:00 el banco estarб cerrado por que los minutos son igual a 0 (no hay necesidad de verificarlos) tambien una solucion es hacerlo asн
pawn Код:
if(hora == 23 && minutos >= 0)
pero ahi los minutos practicamente no cumplen ninguna funciуn, lo mejor es borrarlos
Quote:
Originally Posted by TiNcH010
Como hago para que detecte mi propia hora (que yo le puse al sv) ?
|
gettime solo obtiene la hora del servidor no la del cliente
Respuesta: No logro hacer esto, ayuda! -
TiNcH010 - 09.09.2011
Debe ser xq puse esto? :P
pawn Код:
new horareal, minutoreal;
gettime(horareal, minutoreal);
SetWorldTime(horareal);
gettime(horareal, minutoreal);
for(new i; i<GetMaxPlayers(); i++){
if(IsPlayerConnected(i))SetPlayerTime(i, horareal, minutoreal);}
Es la hora de mi Paнs, a eso me refiero
edit: xdd
ademas cambie la hora de mi pc y paso eso
(se cambio la hora del server a la de mi pc)
EDIT 2: Me parece que ya no hace falta lo que dije xD
La hora que hice ahi es la hora del host, y cuando lo hostee nadie cambiara la hora del host. Como yo ahora estoy hosteando desde mi PC, la hora logicamente cambia xD
Gracias problema resuelto
Re: Respuesta: No logro hacer esto, ayuda! -
Daniel-92 - 09.09.2011
Quote:
Originally Posted by TiNcH010
Debe ser xq puse esto? :P
pawn Код:
new horareal, minutoreal; gettime(horareal, minutoreal); SetWorldTime(horareal); gettime(horareal, minutoreal); for(new i; i<GetMaxPlayers(); i++){ if(IsPlayerConnected(i))SetPlayerTime(i, horareal, minutoreal);}
Es la hora de mi Paнs, a eso me refiero
edit: xdd
ademas cambie la hora de mi pc y paso eso (se cambio la hora del server a la de mi pc)
|
el servidor obtiene la hora del host, en este caso el host es tu pc si tu cambias la hora de tu pc en el server tambien sera cambiada.
para cambiar la hora del host puedes usar settime();
pawn Код:
//el nativo
native settime(hour=cellmin, minute=cellmin, second=cellmin);
Respuesta: No logro hacer esto, ayuda! -
El Bardo - 09.09.2011
No uses playerid en CerrarBanco.
Hace unos meses hize el mismo sistemita, a tal hora se cierra el banco y no es posible robarlo, lo usamos a la madrugada cuando entraban los vivos en bolas a robar el banco..
Toma la hora del servidor, no del cliente.
Respuesta: Re: Respuesta: No logro hacer esto, ayuda! -
Jovanny - 10.09.2011
Quote:
Originally Posted by Daniel-92
pawn Код:
//el nativo native settime(hour=cellmin, minute=cellmin, second=cellmin);
|
No funciona en linux, solamente en windows