Habria una forma [COnsulta] -
Zodiaco - 07.01.2015
Hola amigos del samp habrнa alguna forma de mostrar al usuario el tiempo que esta conectado como por ejemplo:
pawn Код:
format(string2, sizeof(string2), "{B0C4DE}Usted ha estado online: 2horas Y 50 minutos");
SendClientMessage(VERDELIMA, string2);
Nota: creo que los tiempos serian diferentes para todos ya que todos se han conectado en diferente tiempo..
muchas gracias
Respuesta: Habria una forma [COnsulta] -
OTACON - 07.01.2015
restando la hora actual y la hora de entrada.
saludos.
pawn Код:
new
Online[MAX_PLAYERS][3];
pawn Код:
public OnPlayerConnect(playerid){
new
Hour,
Minute,
Second;
gettime(Hour, Minute, Second);
Online[playerid][0] =\
Hour;
Online[playerid][1] =\
Minute;
Online[playerid][2] =\
Second;
return true;
}
pawn Код:
new
data[100],
Hour,
Minute,
Second;
gettime(Hour, Minute, Second);
format(data, sizeof(data), " {B0C4DE} Usted ha estado online: horas:%02d minutos:%02d segundos:%02d ",\
(Hour - Online[playerid][0]),(Minute - Online[playerid][1]),(Second - Online[playerid][2]));
SendClientMessage(-1, data);
Respuesta: Habria una forma [COnsulta] -
Zodiaco - 07.01.2015
Quote:
Originally Posted by OTACON
restando la hora actual y la hora de entrada.
saludos.
pawn Код:
new Online[MAX_PLAYERS][3];
pawn Код:
public OnPlayerConnect(playerid){
new Hour, Minute, Second; gettime(Hour, Minute, Second); Online[playerid][0] =\ Hour; Online[playerid][1] =\ Minute; Online[playerid][2] =\ Second; return true; }
pawn Код:
new data[100],
Hour, Minute, Second; gettime(Hour, Minute, Second);
format(data, sizeof(data), " {B0C4DE} Usted ha estado online: horas:%02d minutos:%02d segundos:%02d ",\ (Hour - Online[playerid][0]),(Minute - Online[playerid][1]),(Second - Online[playerid][2]));
SendClientMessage(-1, data);
|
muchas gracias por responder y como puedo hacer para que este mensaje se muestre cada cierto tiempo. como por ejemplo cada 15 min me parece que va con un timer ah y + resp
Respuesta: Habria una forma [COnsulta] -
OTACON - 07.01.2015
---> [
https://sampwiki.blast.hk/wiki/SetTimerEx
pawn Код:
new
Online[MAX_PLAYERS][3];
pawn Код:
public OnPlayerConnect(playerid){
new
Hour,
Minute,
Second;
gettime(Hour, Minute, Second);
Online[playerid][0] =\
Hour;
Online[playerid][1] =\
Minute;
Online[playerid][2] =\
Second;
SetTimerEx("update_online", 15*60000, true, "d", playerid);
return true;
}
pawn Код:
forward update_online(playerid); public update_online(playerid){
new
data[100],
Hour,
Minute,
Second;
gettime(Hour, Minute, Second);
format(data, sizeof(data), " {B0C4DE} Usted ha estado online: horas:%02d minutos:%02d segundos:%02d ",\
(Hour - Online[playerid][0]),(Minute - Online[playerid][1]),(Second - Online[playerid][2]));
SendClientMessage(-1, data);
}
Respuesta: Habria una forma [COnsulta] -
aoEXE - 07.01.2015
pienso que serнa mejor hacer un solo timer y mostrarlo usando un bucle (mejor foreach para esto)
pawn Код:
//OnGameModeInit
SetTimer("update_online",15*60000,true);
forward update_online();
public update_online()
{
foreach(Player, i)
{
new string[144],Hora,Minuto,Segundo;
gettime(Hora,Minuto,Segundo);
format(string, sizeof(string), "Usted ha estado online: horas:%02d minutos:%02d segundos:%02d ",(Hora - Online[i][0]),(Minuto - Online[i][1]),(Segundo - Online[i][2]));
SendClientMessage(i,-1,string);
}
}
aunque si lo que quieres es que lo muestre cada 15min que el jugador se conecte solo a йl, hazlo como otacon xD... esto lo mostrarб cada 15min a todos los jugadores conectados en ese momento
igual el cуdigo es de otacon xd solo es recomendaciуn
Respuesta: Habria una forma [COnsulta] -
JuanStone - 07.01.2015
Yo pienso quй serнa mejor sin usar timers(temporizadores). Mira esto

.
pawn Код:
// This is a comment
// uncomment the line below if you want to write a filterscript
#define FILTERSCRIPT
#if defined FILTERSCRIPT
#include <a_samp>
#include <foreach>
#include <YSI\y_timers>
new tiempo_conectado[MAX_PLAYERS];
public OnFilterScriptInit()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
tiempo_conectado[i] = 0;
}
return true;
}
public OnPlayerConnect(playerid)
{
tiempo_conectado[playerid] = 0;
return true;
}
public OnPlayerDisconnect(playerid, reason)
{
new string[144];
strdel(string, 0, 144);
if(tiempo_conectado[playerid] < 60)
{
format(string, sizeof(string), "** %s ah abandonado el servidor, segundos conectado: %d.", Nombre(playerid), tiempo_conectado[playerid]*1);
SendClientMessageToAll(-1, string);
}
else if(tiempo_conectado[playerid] >= 60)
{
format(string, sizeof(string), "** %s ah abandonado el servidor, minutos conectado: %d.", Nombre(playerid), tiempo_conectado[playerid]/60*1);
SendClientMessageToAll(-1, string);
}
return true;
}
stock Nombre(playerid)
{
new nombre[24];
GetPlayerName(playerid, nombre, 24);
return nombre;
}
task conteo_tiempo_conectado[1000]()
{
foreach(Player, i)
{
if(IsPlayerConnected(i))
{
tiempo_conectado[i]++;
}
}
return true;
}
#endif
Respuesta: Habria una forma [COnsulta] -
OTACON - 07.01.2015
Quote:
Originally Posted by JuanStone
Yo pienso quй serнa mejor sin usar timers(temporizadores). Mira esto  .
pawn Код:
// This is a comment // uncomment the line below if you want to write a filterscript
#define FILTERSCRIPT
#if defined FILTERSCRIPT
#include <a_samp> #include <foreach> #include <YSI\y_timers>
new tiempo_conectado[MAX_PLAYERS];
public OnFilterScriptInit() { for(new i = 0; i < MAX_PLAYERS; i++) { tiempo_conectado[i] = 0; } return true; }
public OnPlayerConnect(playerid) { tiempo_conectado[playerid] = 0; return true; }
public OnPlayerDisconnect(playerid, reason) { new string[144]; strdel(string, 0, 144); if(tiempo_conectado[playerid] < 60) { format(string, sizeof(string), "** %s ah abandonado el servidor, segundos conectado: %d.", Nombre(playerid), tiempo_conectado[playerid]*1); SendClientMessageToAll(-1, string); } else if(tiempo_conectado[playerid] >= 60) { format(string, sizeof(string), "** %s ah abandonado el servidor, minutos conectado: %d.", Nombre(playerid), tiempo_conectado[playerid]/60*1); SendClientMessageToAll(-1, string); } return true; }
stock Nombre(playerid) { new nombre[24]; GetPlayerName(playerid, nombre, 24); return nombre; }
task conteo_tiempo_conectado[1000]() { foreach(Player, i) { if(IsPlayerConnected(i)) { tiempo_conectado[i]++; } } return true; }
#endif
|
se utilizarнa timers(temporizadores) solo para el uso del usuario que quiere actualizar el mensaje, no para detectar el tiempo online.
saludos.
Respuesta: Habria una forma [COnsulta] -
aoEXE - 07.01.2015
Si leнste el post, el quiere que muestre el mensaje cada 15min... por eso el timer.
Respuesta: Habria una forma [COnsulta] -
OTACON - 07.01.2015
Quote:
Originally Posted by aoEXE
Si leнste el post, el quiere que muestre el mensaje cada 15min... por eso el timer.
|
me referнa al mйtodo de detectar el tiempo online de JuanStone, el de el se necesita si o si un temporizador, mi mйtodo no.
Respuesta: Habria una forma [COnsulta] -
JuanStone - 07.01.2015
ї Estб usted seguro ?

.
pawn Код:
task mensaje[15*60000]()
{
foreach(Player, i)
{
if(IsPlayerConnected(i))
{
case 15: SendClientMessage(i, -1, "Hola llevas 15 minutos conectado y no hay temporizadores.");
}
}
return true;
}