10/03/2015, 01:59 AM (Última modificación: 27/01/2016, 12:03 AM por LuKks.)
¿Que es lo que hace este plugin? • Registra datos, de los jugadores y del servidor, los guarda en una base de datos MySQL y los muestra en una página web. • Web con estadísticas: ejemplo uno y dos (ahí son dos servidores con el plugin instalado). • "Todos" los datos (jugador y servidor) se actualizan apenas cambian, exceptuando el nombre del servidor (hostname) y el siguiente mapa (nextmap) que lo hacen cada 7 segundos. • La pagina web la tienen que actualizar ustedes manualmente, los datos en la base de datos son los que se auto-actualizan. Para poder ver los datos nuevos tienen que refrescar la página (ya aprendere ajax/js/jquery). • Los datos de cada jugador se guardan usando su nombre.
¿Que datos del servidor se registran en la base de datos y se muestran en la web?
• Nombre del servidor (hostname) • Mapa actual (currentmap) • Jugadores / slots (ejemplo: '4 / 14', 4 jugadores conectados de 14 slots) • Admins conectados (tipo /admins pero solo muestra la cantidad, no quienes) • Score CT (puntaje del equipo counter-terrorists) • Score TT (puntaje del equipo terrorists) • Tiempo restante (timeleft) • Siguiente mapa (nextmap) • FPS reales (show_serverframes de Destro pero saque una parte del código no mas)
¿Que datos de los jugadores se registran en la base de datos y se muestran en la web?
• N (posición en el ranking) • Nombre (nombre del jugador) • Es admin? ('si' o 'no') • Horas | Minutos (cantidad total de horas y minutos que paso dentro del servidor) • Frags CT (cantidad de policías que mató) • Frags TT (cantidad de terroristas que mató) • Muertes CT (cantidad de veces que murió siendo policía) • Muertes TT (cantidad de veces que murió siendo terrorista) • Suicidios (cantidad de veces que se suicidio o "murió solo", 'kill en consola' o 'cae desde un lugar alto') • Hits (cantidad de disparos que acertó sobre su enemigo) • Headshots (cantidad de disparos acertados en la cabeza) • Estado ('Desconectado', 'Primer visita', 'Recién conectado', 'Hizo un head/hit a 26 metros', 'Murió de CT/TT', 'Se suicido'. Comenten que otro se les ocurre) • Equipo ('Policía', 'Terrorista' o 'Espectador')
¿Como instalar este plugin? es simple, háganlo despacio! •Vídeo explicativo.. si no puedes verlo tienes un archivo ".txt" adjuntado en esta publicación. • Requisitos antes de seguir los pasos; base de datos MySQL creada, descargar lo adjuntado y este módulo MySQL Threads Disculpen si el vídeo no es muy descriptivo, no se explicar las cosas.
Créditos
Destro = show_serverframes + Modulo MySQL mejorado + dudas que me aclaro. Roccoxx/Bugsy = Roccoxx por traducir el tutorial de Bugsy que trata de Bitsums. A// = por ayudarme con el infochanged. Milashkasiya = recordarme que MySQL esta obsoleto en PHP, por lo tanto, usé MySQLi.
Versiones AMXX * AMXX v1.01; - Simplemente mejoré bastante el código. También agregue un nuevo equipo "Espectador". - Prácticamente ya no uso variables para contar los frags, muertes, etcétera. - Ahora hago un task "global" y no por cada jugador como hacía antes. Entre más cosas. - "re-diseñado" para usarlo en distintos servidores sin modificar el plugin (".amxx/sma").
Versiones PHP * PHP v1.03; - Ya pueden desactivar las columnas que quieran desde admin/config.php.
* PHP v1.02; - Ahora orientado a objetos y una clase. - Mejoré la seguridad ya que antes era fácilmente vulnerable. - Le añadí un simple panel de admin para poder modificar los datos de un jugador así como también reiniciarlos.. además se puede reiniciar todos los datos a la vez. - También agregue un buscador por nombre en el inicio de las estadísticas de los jugadores. - Mejorado y adaptado para mostrar los datos de todos los servidores y jugadores.
* PHP v1.01; - Ahora uso MySQLi orientado a procedimientos, ya que MySQL esta obsoleto.
Una vez configurado todo solo deben poner el plugin en todos los servidores que deseen, recordando que si son de IP distintas ir habilitándolas en MySQL remoto. Para los que ya usaban este plugin lamentablemente los datos se perderán.
10/03/2015, 10:33 AM (Última modificación: 10/03/2015, 10:42 AM por LuKks.)
(10/03/2015, 02:23 AM)ErikMav94 escribió: se ve lindo , lo probaré con 32 slots y te dire si encuentro algun error
PD: Usuario(s) navegando en este tema: ErikMav94, 11 invitado(s) ()
Dale, genial! recuerda bajar el archivo adjuntado "MySQLt.rar" que lo acabo de agregar, me lo había pasado por alto.
Edite la publicación;
Creditos; Destro = Modulo MySQL mejorado.
Creditos; A// = por ayudarme con el infochanged. Realmente, no se porque no me funcionaba las 4 formas distintas que intenté.
Archivos adjuntos; "MySQLt.rar".
10/03/2015, 12:45 PM (Última modificación: 10/03/2015, 12:46 PM por sasske.)
Cita:• Duda mia;
Como hago para obtener el nombre del arma que lleva en mano? les juro que intente de las formas posibles, lei en amxmodx.org/api, tambien vi otros ejemplos o personas pidiendolo, entre mas cosas y no pude.. me tira algo como "error invalid id".. se que era un error en el index del arma.
get_user_weapon, si te tira error de ID estas pasando mal el ID >.<
10/03/2015, 05:05 PM (Última modificación: 11/03/2015, 09:55 PM por LuKks.)
(10/03/2015, 05:00 PM)Ksm escribió: Pregunta: Requiere tener activado el modulo mysql? en modules.ini. Si es así, agregalo a la descripción así no ocurren errores.
Edit 2; no hace falta.
Edit;
Gracias, TotalBlood.
Actualice el archivo winrar "MySQLt.rar" me falto el modulo en versión Linux ".so".
10/03/2015, 08:04 PM (Última modificación: 10/03/2015, 08:05 PM por roccoxx.)
esoooooooooooooooooo que bueno que esta e.e
me gusta, esperare a ver si reportan algo antes de usarlo, me ahorraste el laburo de hacer el .php
me gusto la parte del estado: hizo un hit a 16 metros.
10/03/2015, 08:10 PM (Última modificación: 10/03/2015, 08:21 PM por Sugisaki.)
(10/03/2015, 12:45 PM)sasske escribió:
Cita:• Duda mia;
Como hago para obtener el nombre del arma que lleva en mano? les juro que intente de las formas posibles, lei en amxmodx.org/api, tambien vi otros ejemplos o personas pidiendolo, entre mas cosas y no pude.. me tira algo como "error invalid id".. se que era un error en el index del arma.
Código PHP:
public name_weapon(user_index) { new weaponid = get_user_weapon(user_index) new weapon_name[15] get_weaponname(weaponid, weapon_name, 14)
replace_all(weapon_name, 14, "weapon_", "")
client_print(user_index, print_chat, "Tu arma es %s", weapon_name) }
forma de stock
Código PHP:
stock name_weapon(user_index) { new weaponid = get_user_weapon(user_index) new weapon_name[15] get_weaponname(weaponid, weapon_name, 14)
replace_all(weapon_name, 14, "weapon_", "")
return weapon_name }
PD: Nice plug
testealo
Código PHP:
#include <amxmodx> #include <engine>
#define PLUGIN "Nuevo Plugin" #define VERSION "1.0" #define AUTHOR "Sugisaki"
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) } stock name_weapon(user_index) { new weaponid = get_user_weapon(user_index) new weapon_name[15] get_weaponname(weaponid, weapon_name, 14)
(14/08/2015, 10:15 PM)Sugisaki escribió: "El mundo es caotico, irracional e injusto. No tiene ningun significado"
Palabras que desde hace mucho tiempo he buscado para describir, ¿Que es el mundo?
Cita:• Duda mia;
Como hago para obtener el nombre del arma que lleva en mano? les juro que intente de las formas posibles, lei en amxmodx.org/api, tambien vi otros ejemplos o personas pidiendolo, entre mas cosas y no pude.. me tira algo como "error invalid id".. se que era un error en el index del arma.
Código PHP:
public name_weapon(user_index) { new weaponid = get_user_weapon(user_index) new weapon_name[15] get_weaponname(weaponid, weapon_name, 14)
replace_all(weapon_name, 14, "weapon_", "")
client_print(user_index, print_chat, "Tu arma es %s", weapon_name) }
forma de stock
Código PHP:
stock name_weapon(user_index) { new weaponid = get_user_weapon(user_index) new weapon_name[15] get_weaponname(weaponid, weapon_name, 14)
replace_all(weapon_name, 14, "weapon_", "")
return weapon_name }
PD: Nice plug
testealo
Código PHP:
#include <amxmodx> #include <engine>
#define PLUGIN "Nuevo Plugin" #define VERSION "1.0" #define AUTHOR "Sugisaki"
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) } stock name_weapon(user_index) { new weaponid = get_user_weapon(user_index) new weapon_name[15] get_weaponname(weaponid, weapon_name, 14)
(14/08/2015, 10:15 PM)Sugisaki escribió: "El mundo es caotico, irracional e injusto. No tiene ningun significado"
Palabras que desde hace mucho tiempo he buscado para describir, ¿Que es el mundo?
Si alguno tiene sv en linux, podria probarlo?, el testeo todo en windows y le anda de 10, pero yo quiero probar en linux y nose que joraca para no me toma el modulo, pero esta y esta en el .ini, una cosa de loco :$
1. No deberias usar @ en mysql_connect - si alguien tiene problemas de permisos o similares no podra saber que errores tiene. Es mas no deberias usar mysql porque es obsoleto.
2. Deberias usar clases, aunque como es un codigo pequeño creo que seria opcional.
3. No adjuntes los dlls, solo pon el link al thread del modulo.
11/03/2015, 07:34 AM (Última modificación: 11/03/2015, 07:52 AM por LeiToH.)
(11/03/2015, 01:51 AM)Milashkasiya escribió: 1. No deberias usar @ en mysql_connect - si alguien tiene problemas de permisos o similares no podra saber que errores tiene. Es mas no deberias usar mysql porque es obsoleto.
2. Deberias usar clases, aunque como es un codigo pequeño creo que seria opcional.
3. No adjuntes los dlls, solo pon el link al thread del modulo.
4. "function LuKks" lol
Mi intención no es hacer offtopic pero tengo una dudilla, con el punto 1' se puede hacer pdo o que otro lenguaje?
(11/03/2015, 01:51 AM)Milashkasiya escribió: 1. No deberias usar @ en mysql_connect - si alguien tiene problemas de permisos o similares no podra saber que errores tiene. Es mas no deberias usar mysql porque es obsoleto.
2. Deberias usar clases, aunque como es un codigo pequeño creo que seria opcional.
3. No adjuntes los dlls, solo pon el link al thread del modulo.
4. "function LuKks" lol
1. Cierto, ya me lo habían dicho, que estaba obsoleto.. en una duda con respecto al lenguaje PHP, sobre seguridad en formularios.
Pase todo a MySQLi.
2. Concuerdo con lo ultimo que dijiste, son pocas lineas no vale la pena otro archivo.
(11/03/2015, 01:51 AM)Milashkasiya escribió: 1. No deberias usar @ en mysql_connect - si alguien tiene problemas de permisos o similares no podra saber que errores tiene. Es mas no deberias usar mysql porque es obsoleto.
2. Deberias usar clases, aunque como es un codigo pequeño creo que seria opcional.
3. No adjuntes los dlls, solo pon el link al thread del modulo.
4. "function LuKks" lol
Mi intención no es hacer offtopic pero tengo una dudilla, con el punto 1' se puede hacer pdo o que otro lenguaje?
PDO no es un lenguaje, es una extension de un lenguaje. Puedes usar PDO o Mysqli, no hay mucha diferencia. Respecto a este thread yo usaria Mysqli porque el script del post es simple, generalmente uso PDO para aplicaciones grandes.
(11/03/2015, 06:45 PM)LuKks escribió:
(11/03/2015, 01:51 AM)Milashkasiya escribió: 1. No deberias usar @ en mysql_connect - si alguien tiene problemas de permisos o similares no podra saber que errores tiene. Es mas no deberias usar mysql porque es obsoleto.
2. Deberias usar clases, aunque como es un codigo pequeño creo que seria opcional.
3. No adjuntes los dlls, solo pon el link al thread del modulo.
4. "function LuKks" lol
1. Cierto, ya me lo habían dicho, que estaba obsoleto.. en una duda con respecto al lenguaje PHP, sobre seguridad en formularios.
Pase todo a MySQLi.
2. Concuerdo con lo ultimo que dijiste, son pocas lineas no vale la pena otro archivo.
3. Ok.
4. Lo cambie a "Numero_par".
Otra cosa es que no es necesario modificar modules.ini porque los modulos se cargan automaticamente cuando algun plugin lo requiere.
11/03/2015, 09:42 PM (Última modificación: 11/03/2015, 09:49 PM por LuKks.)
(11/03/2015, 09:07 PM)Milashkasiya escribió: Otra cosa es que no es necesario modificar modules.ini porque los modulos se cargan automaticamente cuando algun plugin lo requiere.
Tenia pensado usar write_file para "activarselo" automáticamente :p
(11/03/2015, 01:51 AM)Milashkasiya escribió: 1. No deberias usar @ en mysql_connect - si alguien tiene problemas de permisos o similares no podra saber que errores tiene. Es mas no deberias usar mysql porque es obsoleto.
2. Deberias usar clases, aunque como es un codigo pequeño creo que seria opcional.
3. No adjuntes los dlls, solo pon el link al thread del modulo.
4. "function LuKks" lol
Mi intención no es hacer offtopic pero tengo una dudilla, con el punto 1' se puede hacer pdo o que otro lenguaje?
PDO no es un lenguaje, es una extension de un lenguaje. Puedes usar PDO o Mysqli, no hay mucha diferencia. Respecto a este thread yo usaria Mysqli porque el script del post es simple, generalmente uso PDO para aplicaciones grandes.
(11/03/2015, 06:45 PM)LuKks escribió:
(11/03/2015, 01:51 AM)Milashkasiya escribió: 1. No deberias usar @ en mysql_connect - si alguien tiene problemas de permisos o similares no podra saber que errores tiene. Es mas no deberias usar mysql porque es obsoleto.
2. Deberias usar clases, aunque como es un codigo pequeño creo que seria opcional.
3. No adjuntes los dlls, solo pon el link al thread del modulo.
4. "function LuKks" lol
1. Cierto, ya me lo habían dicho, que estaba obsoleto.. en una duda con respecto al lenguaje PHP, sobre seguridad en formularios.
Pase todo a MySQLi.
2. Concuerdo con lo ultimo que dijiste, son pocas lineas no vale la pena otro archivo.
3. Ok.
4. Lo cambie a "Numero_par".
Otra cosa es que no es necesario modificar modules.ini porque los modulos se cargan automaticamente cuando algun plugin lo requiere.
Si queres poner mas estadísticas del servidor podrías agregarle un top15 con lo siguiente:
Tag, frags, muertes, y tiempo en linea. (con todo lo propio del top que viene por defecto)
(esto obviamente es re opcional) pero estaría bueno que lo tenga, así tenes toda la info de los jugadores desde adentro también; entonces en la lista de jugadores en linea ves el ranking, que tiene en el top general del servidor.
Otra cosa que se me ocurre es el tipo de juego.. nose si seria muy util ya que deberia ser counter-strike pero bueno :B
Y mi ultima idea que se me ocurre mientras te voy escribiendo es un contador de los jugadores que han ingresado al servidor en total (sin que se repitan)
Mas que nada para saber cuanta gente entro en cada servidor desde que esta abierto. (o que se pueda poner para reiniciar el valor cada tanto..)
nose vos fijate que te gusta y que te parece que podrias agregar.. eso si, chekea bien que no se trabe ni cause algun problema, si queres puedo ayudarte a testearlo.
Si queres poner mas estadísticas del servidor podrías agregarle un top15 con lo siguiente:
Tag, frags, muertes, y tiempo en linea. (con todo lo propio del top que viene por defecto)
(esto obviamente es re opcional) pero estaría bueno que lo tenga, así tenes toda la info de los jugadores desde adentro también; entonces en la lista de jugadores en linea ves el ranking, que tiene en el top general del servidor.
Otra cosa que se me ocurre es el tipo de juego.. nose si seria muy util ya que deberia ser counter-strike pero bueno :B
Y mi ultima idea que se me ocurre mientras te voy escribiendo es un contador de los jugadores que han ingresado al servidor en total (sin que se repitan)
Mas que nada para saber cuanta gente entro en cada servidor desde que esta abierto. (o que se pueda poner para reiniciar el valor cada tanto..)
nose vos fijate que te gusta y que te parece que podrias agregar.. eso si, chekea bien que no se trabe ni cause algun problema, si queres puedo ayudarte a testearlo.
Saludos
Mi idea era que los datos únicamente se muestren desde la pagina pero de seguro te haga caso e implemente el top15 y ranking.
Tipo de juego; creo que vendría a ser "hosting", jajaja. Ya que nadie usa el gamename para el tipo de juego pero no creo agregarlo.
Sobre el contador, esta perfecta esa idea.
Empezare a realizar las ideas hoy pero no se cuando ya que estoy ayudando a un amigo.
Muchísimas gracias por las sugerencias!!
Edit;
(10/03/2015, 11:45 PM)KEEP MY WALL escribió: Esta buena la idea como ya sabes que me gusto.
Si alguno tiene sv en linux, podria probarlo?, el testeo todo en windows y le anda de 10, pero yo quiero probar en linux y nose que joraca para no me toma el modulo, pero esta y esta en el .ini, una cosa de loco :$
No es por que tenes Linux. En MySQL remoto, agrega "gs030.localstrike.com.ar".
Los que tengan servidores en LocalStrike y vean los logs de "MySQLt__init.log", ahi les saltara una IP parecida a la anterior o la misma.. deberan agregarla a la lista de MySQL remotas.
Nota; se viene tremenda actualización para uno de estos días.
Perfecto. Yo apenas pueda te contacto y probamos en un servidor linux.
(andan cortando la luz por acá; entonces no me gustaría estar testeando y que se me corte :B)
Por otra parte: el tema del top15 y ranking estaría tanto para verlo dentro del servidor como para poder mostrarlo en la web.. bueno es algo obvio no.. si lo tenes en la base de datos lo podes mostrar xD (aclaro por las dudas la idea.)
Felicitaciones de nuevo, muy buen trabajo!
Saludos!
Edit: Una pregunta, se puede poner varios servidores? y se crean distintas tablas en una misma base de datos? (no mire el plugin, tampoco soy experto por eso pregunto)
(12/03/2015, 08:32 PM)emah094 escribió: Edit: Una pregunta, se puede poner varios servidores? y se crean distintas tablas en una misma base de datos? (no mire el plugin, tampoco soy experto por eso pregunto)
Si.. mira las primeras lineas del "index.php" y del ".sma". . .