he modificado un poco el interface y le he añadido lo de controlar y actualizar el numero de jugadores conectados
el numero de jugadores conectados lo controla con el Daemon este pero tambien me las he ingeniado para hacer un STORED PROCEDURE que llamo desde CRON del Hosting cada 15 minutos para actualizar en la pagina web el numero de jugadores conectados y el estado operativo del servidor MySQL
el codigo del stored procedure es este:
Código:
DELIMITER $$
USE `AQUI_LA_BD`$$
DROP PROCEDURE IF EXISTS `Stardust_Players_Conected`$$
CREATE DEFINER=`NOMBRE_USUARIO_DE_LA_BD`@`%` PROCEDURE `Stardust_Players_Conected`()
BEGIN
DECLARE suma_total DECIMAL(10, 0);
-- Sumar los valores de campo_a_sumar cuando condicion_campo es 1
SELECT COALESCE(SUM(status_online), 0) INTO suma_total
FROM AQUI_NOMBRE_DE_LA_TABLA
WHERE status_online = 1;
-- Insertar el resultado en la tabla donde tenemos el numero de jugadores conectados (yo solo tengo 3 campos ID, NUMERO_JUGADORES y Fecha)
TRUNCATE TABLE AQUI_NOMBRE_DE_OTRA_TABLA_CON_1_SOLO_REGISTRO_DONDE_GUARDARA_EL_NUMERO_DE_PLAYERS;
INSERT INTO NOMBRE_TABLA (AQUI_CAMPO_INT_DE_NUMERO_DE_PLAYERS, Fecha)
VALUES (suma_total, CURDATE());
END$$
DELIMITER ;
son 2 tablas, en la primera, es donde almacena un campo bool (status_online se llama) que es 0 si no esta conectado el usuario o 1 si esta conectado
esto tenemos que controlarlo en el EXE cuando se loguean o se desconectan o cierra el programa actualizar ese campo a 0 en caso de cerrar o desconectarse o a 1 si se loguean bien (password correcto etc)
de esa manera con esta linea:
Código:
SELECT COALESCE(SUM(status_online), 0) INTO suma_total
FROM AQUI_NOMBRE_DE_LA_TABLA
WHERE status_online = 1;
sumamos todos los que esten a 1 (conectados online)
de esta forma en la pagina PHP en la web, facilmente con una conexion a la Tabla de PLAYERS_CONECTADOS_TOTALES podemos facilmente
tener un contador en tiempo mas o menos real cada 15 minutos de los jugadores online que hay en el juego
aqui podemos verlo en la web de Stardust
