Programación en Pawn - SAMP

[Guia] Como detectar un usuario AFK

Aprende lo que no sabes de este lenguaje y encuentra herramientas y códigos útiles.
Reglas del Foro

  • Si tu código es corto, no crees un tema nuevo para liberarlo, publica un mensaje en el tema [Funciones] ¡Publica tu código aquí!.
  • Si creas una guía, debes explicar el código claramente. Evita poner la explicación en forma de comentarios dentro del mismo y no olvides utilizar el BBCode correspondiente: [Pawn]Código aquí[/Pawn].
  • Si tu código necesita plugins, includes u otros códigos adicionales para funcionar, debes mencionarlo en el mensaje.
  • Si has utilizado códigos de otros autores, recuerda colocar los créditos correspondientes. (El plagio es motivo de sanción).
  • Si tu aporte es para un GameMode en específico, debes publicar el tema en el apartado "Guías y Aportes para GameModes específicos".

Moderador: Ayudantes

Cómo detectar un usuario AFK

Es un aporte sencillísimo y pues tengo entendido que de una sencilla forma podemos detectar si un jugador en nuestro servidor esta AFK de la siguiente forma:


Se que no es la única forma de hacerlo pero es la mas sencilla espero les sirva -dance4
Es mejor "OnPlayerPause"
gloweryt escribió:
20 Jun 2018 19:52
Cómo detectar un usuario AFK

Es un aporte sencillísimo y pues tengo entendido que de una sencilla forma podemos detectar si un jugador en nuestro servidor esta AFK de la siguiente forma:


Se que no es la única forma de hacerlo pero es la mas sencilla espero les sirva -dance4
Como se supone que sirve eso? fotos o algo? -dots
Alejandro44 escribió:
21 Jun 2018 11:47
gloweryt escribió:
20 Jun 2018 19:52
Cómo detectar un usuario AFK

Es un aporte sencillísimo y pues tengo entendido que de una sencilla forma podemos detectar si un jugador en nuestro servidor esta AFK de la siguiente forma:


Se que no es la única forma de hacerlo pero es la mas sencilla espero les sirva -dance4
Como se supone que sirve eso? fotos o algo? -dots
Para que fotos? si no sabes no digas esta bien que preguntes para que sirva pero tu respuesta me cayó mal, es una simple base para crear un sistema no es necesidad de fotos
MaisterFG escribió:
21 Jun 2018 10:57
Es mejor "OnPlayerPause"
OnPlayerPause no es una función nativa.
Me acabo de acordar (No lo dije la otra vez), esto no funciona :P

OnPlayerUpdate es un callback, no una funcion.
#Fede escribió:
19 Jul 2018 13:15
Me acabo de acordar (No lo dije la otra vez), esto no funciona :P

OnPlayerUpdate es un callback, no una funcion.

No, un "callback" también es una función, por la tanto "OnPlayerUpdate" también es una "subrutina".
Mira el siguiente ejemplo:
 Codigo Pawno:
1
2
3
4
5
6
7
8
9
10
11

public OnPlayerConnect(playerid)
{
	SendClientMessage(playerid, -1, "¡Bienvenido al servidor!");
	return 1;
}

public pc_cmd_llamar(playerid)
{
	OnPlayerConnect(playerid);
	return 1;
}
  Cantidad de llaves: Abiertas(2)-Cerradas(2) | Lineas Totales: 11

Como "OnPlayerConnect" es una función, se lo puede llamar 'x' veces mediante un comando, es decir, sí mandas 4 veces una orden al servidor, se enviará 4 veces el mensaje al cliente.
Con respecto a la guía que publicaron, en realidad está mal, porqué la función "GetTickCount" comenzará a tirar valores muy grandes cuando pase los 24 días y eso ocasionará un desbordamiento numérico en las variables que sean tipo "integer", ya que su capacidad máxima son de 4 bytes (por lo tanto sólo podrán almacenar hasta 10 dígitos).
Aquí la solución sería usar "gettime()" y asunto arreglado.
MrDave escribió:
21 Jul 2018 12:39
#Fede escribió:
19 Jul 2018 13:15
Me acabo de acordar (No lo dije la otra vez), esto no funciona :P

OnPlayerUpdate es un callback, no una funcion.

No, un "callback" también es una función, por la tanto "OnPlayerUpdate" también es una "subrutina".
Mira el siguiente ejemplo:
 Codigo Pawno:
1
2
3
4
5
6
7
8
9
10
11

public OnPlayerConnect(playerid)
{
	SendClientMessage(playerid, -1, "¡Bienvenido al servidor!");
	return 1;
}

public pc_cmd_llamar(playerid)
{
	OnPlayerConnect(playerid);
	return 1;
}
  Cantidad de llaves: Abiertas(2)-Cerradas(2) | Lineas Totales: 11

Como "OnPlayerConnect" es una función, se lo puede llamar 'x' veces mediante un comando, es decir, sí mandas 4 veces una orden al servidor, se enviará 4 veces el mensaje al cliente.
Con respecto a la guía que publicaron, en realidad está mal, porqué la función "GetTickCount" comenzará a tirar valores muy grandes cuando pase los 24 días y eso ocasionará un desbordamiento numérico en las variables que sean tipo "integer", ya que su capacidad máxima son de 4 bytes (por lo tanto sólo podrán almacenar hasta 10 dígitos).
Aquí la solución sería usar "gettime()" y asunto arreglado.
No se si llegaste a leer el codigo previo (El que esta ahora fue actualizado).
 Codigo Pawno:
1
2

if(OnPlayerUpdate(playerid) == 0) // Esta AFK.
else // No lo esta.
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 2
No es posible usar OnPlayerUpdate de esa manera, eso es a lo que me refiero.

¿Quién está conectado?

En total hay 3 usuarios conectados :: 1 registrado, 0 ocultos y 2 invitados (basados en usuarios activos en los últimos 5 minutos)
La mayor cantidad de usuarios identificados fue 855 el 27 May 2018 00:03

Usuarios navegando por este Foro: Bing [Bot] y 2 invitados