Enviar respuesta 
[TUT] Menu Jugadores Online
Autor Mensaje
Metrikcz Sin conexión
Miembro Destacado


Plugin developer
Mensajes: 827
Registro en: Oct 2013
Reputación: 19
Mensaje: #1
[TUT] Menu Jugadores Online
Aqui un tutorial de un menu de los jugadores conectados, lo explique con mis palabras asi que si tienen una duda pregunten xD.
Le puse explicacion a todo como si fueran de kinder.
Código PHP:
#include <amxmodx> 

new g_maxplayers // En esta variable guardaremos el maximo numero de jugadores en el servidor (max slots)
public plugin_init() { // Funcion que es llamada al iniciar el plugin, ya sea en un cambio de mapa o reinicio del servidor
    
register_plugin("Menu Players Online""0.1""Metrikcz"// registro del plugin
    // 1 parametro: Definimos el nombre del plugin y como es un string se pone entre comillas 
    // 2 parametro: Definimos la version del plugin ------------------------
    // 3 parametro: Definimos el author del plugin -------------------------
    
register_clcmd("say /mpl""cmdMpl"// registramos el comando
    
g_maxplayers get_maxplayers() // Le damos el valor a la variable ya que get_maxplayers retorna el maximo numero de jugadores
}
public 
cmdMpl(id) {
    
// Funcion que es llamada cuando un jugador escriba /mpl
    // primer y unico parametro: "id", que es la ID del usuario que escribio
    // la ID de los usuarios es un numero entre el 1 y el 32, el cual se puede saber poniendo status en consola
    
new menu //Variable donde guardaremos el "ID" del menu que se usara para agregarle cosas como items o props
    
menu menu_create("Jugadores Online""handler_menuMpl")
    
// 1 parametro definimos el titulo del menu
    // 2 parametro definimos el nombre de la funcion del handler que se llamara cuando usemos el menu
    
    // porque "menu = ..." como ya dije en menu guardaremos la ID del mismo, y menu_create retorna su "ID" y le damos el valor haciendo esto: "menu = "
    
    
new name[32], IDS[12// Creamos las variables donde guardaremos el nombre de un usuario y su ID and USERID pero en un solo string
    // -------- Este pedaso se "llamara|realizara" el numero de veces que sea g_maxplayers ya sea 32 o los slots del servidor --------
    
for(new 1<= g_maxplayersi++) { // Hacemos un bucle o loop, lo que hacemos es mientras "i" sea menor o igual a maxplayers seguira el bucle
        // Ahora vien pasaremos por los 32 usuarios ya que el id del usuario es un numero entre el 1 y 32
        
if(is_user_connected(i)) { // Vamos a checar si esta conectado un usuario con esta ID osea i
            // bien la id "i" que va en el loop esta conectada 
            
get_user_name(inamecharsmax(name)) // Guardamos el nombre del usuario que tenga como su ID: "i donde vaya el bucle"
            
formatex(IDScharsmax(IDS), "%d %d"iget_user_userid(i)) // Guardamos el id and userid del usuario para despues usarlo en el handler e identificar al player
            
menu_additem(menunameIDS// Agregamos el item
            // 1 parametro: la ID del menu donde se agregara el item, por eso se tenia que guardar la ID del menu
            // 2 parametro: el nombre del item el cual es el nombre del usuario
            // 3 parametro: En este guardamos el ID y userid del usuario para despues validarlo y obtener sus ids en el handler
        
}
    
    }
    
// -------- Este pedaso se "llamara|realizara" el numero de veces que sea g_maxplayers ya sea 32 o los slots del servidor --------
    
menu_display(idmenu0// mostramos el menu
    // 1 parametro: la ID del usuario que vera el menu osea la ID del que escribio /mpl
    // 2 parametro: La ID del menu
    // 3 parametro: la pagina en la que se abrira, cada 7 items es 1 pagina, si hay 13 players conectados habra 2 paginas en el menu
}
public 
handler_menuMpl(idmenuitem) { // Funcion que es llamada cuando se usa el menu, se preciona algun item o lo cierras el menu
    
if(item == MENU_EXIT) { // Primero siempre tendremos que checar si item es menu_exit lo cual nos dice que preciono 0 y cerro el menu
        // si item si es menu_exit osea que lo cerro
        
menu_destroy(menu// Destruimos el menu
        
return PLUGIN_HANDLED// Le detemos la funcion para que desde aqui hasta abajo ya no lea nada, que aqui se quede
    
}
    
// Ahora lo que sigue sera obtener el tercer parametro de menu_additem, osea la ID and userid del usuario 
    // usaremos la native menu_item_getinfo lo cual nos data todos los parametros asi que tendremos que crear variables que nos dara sus valores
    
new lolbuffer[12], playeriduserid // Aqui los guardaremos
    
menu_item_getinfo(menuitemlolbuffercharsmax(buffer), __lol)
    
// 1 parametro ID del menu que la tenemos en el handler
    // 2 parametro el item osea lo que presiono si es 3 sera el tercer item que se agrego
    // 3 y 4 parametro aqui nos estara dando el tercer parametro de menu_additem y ahi en buffer ya tendremos la ID and userid del usuario que selecciono el user que abrio el menu
    // los demas no importan ya que tenemos lo que queremos
    
    
new szid[3], szuserid[9// Variables donde guardaremos las IDS que se encuentran en buffer
    // separamos las ids, la id y la userid
    
parse(bufferszidcharsmax(szid), szuseridcharsmax(szuserid)) // separamos los datos
    
playerid str_to_num(szid// Ahora en una variable integer guardaremos la id del usuario, para ello en la variable buffer donde la tenemos la pasamos de string a numero porque las ids de los players es un numero (1-32)
    
userid str_to_num(szuserid// Aqui la userid del usuario que se selecciono
    // pero porque usamos la userid? es facil se explicara mas adelante
    
    // Listo ya tenemos la id del usuario que selecciono ahora lo demas es muy facil
    // Vamos a checar que esta conectado ¿porque si ya lo hicimos cuando creamos el menu?
    // es facil al abrir el menu esta conectado, el que lo abrio puede permanecer con el menu minutos abiertos con el y cuando seleccione a un usuario este ya se pudo haber desconectado
    
if(!is_user_connected(playerid))  { // si no esta conectado ...
        
client_print(idprint_chat"Usuario seleccionado con la ID: %d se ha desconectado."playerid)
        return 
PLUGIN_HANDLED// le detenemos la funcion para que no siga leyendo, que desde aqui hasta abajo ya no lea nada que aqui se acabe
    
}
    
// Aqui es donde usaremos la userid para validar el player, como dije antes un usuario se puede desconectar cuando lo haigan elegido, pero tambien pasa de que se desconecta y se mete otro usuario al servidor y se le asigna ese id, osea que el usuario cambio su id sera igual pero no su userid asi que lo comprobaremos ahora
    
if(userid != get_user_userid(playerid)) { // si la userid no es la del player ...
        
client_print(idprint_chat"Usuario seleccionado no es el que usted eligio.")
    return 
PLUGIN_HANDLED// le detenemos la funcion para que no siga leyendo, que desde aqui hasta abajo ya no lea nada que aqui se acabe
    
}
    new 
name[32// Aqui guardaremos el nombre del user seleccionado
    
get_user_name(playeridnamecharsmax(name))  // Obtenemos su nombre con esta native y lo guardamos en la variable "name"
    
    // Mandamos un mensaje del usuario que selecciono y listo si ustedes le haran otra cosa ya es cosa de ustedes ya tienen su ID para manipularle 
    
client_print(idprint_chat"Has seleccionado a: %s su id es: %d y su userid es: %d"nameplayeriduserid)
    return 
PLUGIN_HANDLED// por "leyes" de pawn si se returnea en la funcion al ultimo tambien tiene que haber un return


Todos los MODS VHL totalmente gratuitos Descarga Aqui

Mis plugins:
FB: fb.com/rwoong
Venta plugins a pedido en México mándame MP
(Este mensaje fue modificado por última vez en: 06/06/2014 12:28 AM por Metrikcz.)
04/06/2014 11:47 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Mario AR. Sin conexión
Super Mario 64


Plugin developer Donador Medalla de aportes 1k
Mensajes: 1,235
Registro en: Feb 2014
Reputación: 61
Mensaje: #2
RE: [TUT] Menu Jugadores Online
Buen aporte! Como sugerencia, podrias utilizar el userid en lugar de id en el string de info en el menú, es más seguro porque es único. Tambien puedes usar get_players(), es más eficiente porque sólo llamas 1 vez a la native y no 32 veces, o el método de checkear un jugador conectado por macro (bitsums) es aun más eficiente.

(10/05/2019 08:23 PM)Niper.-. escribió:  Trap no son tus putas trap es mi equipo tumbando el foro de amxmodx hey tumbando el foro hey tumbando el foroooo ya saben todos nos llevamos todos los pluginsss..

(18/02/2019 03:08 PM)Neeeeeeeeeel.- escribió:  Shit

(28/02/2015 03:27 AM)sasske escribió:  Vete al diablo detallista de mierda Oh god why

(26/12/2018 02:45 PM)[R]ak escribió:  yo solo te veo en whatsapp agarrando culos.. nose..

(09/06/2017 12:59 AM)kikizon2 escribió:  Quiero que leas las reglas, y si fuese posible que saltaras de un 10mo piso, pls.

(21/04/2017 01:27 AM)Chamo. escribió:  Cuanto hay que pagar para estar en tu firma TrolleyesThats what she said?

(20/04/2017 11:56 PM)matrix123 escribió:  Patrocinas rehlds? Es de lo único que hablas, mañana seguro te llegan remeras de rehlds, mandame una Whatever

(26/04/2017 08:47 PM)Dieguito escribió:  al que me salga con latinservers le meto un sugisaki por el c***

(26/02/2017 08:02 PM)meTaLiCroSS escribió:  La misma aritmetica se aplica con los Strings falsos que inventé ("trivago" y "pajarussel").

(13/02/2017 07:41 PM)Heber[$]ource escribió:  es nuvpawn, nos esta ddoseando con su sega genesis

(06/01/2015 10:47 PM)meTaLiCroSS escribió:  
(06/01/2015 10:40 PM)wiD escribió:  este chileno culiau :whatever;
¿Que?

(29/04/2016 11:44 PM)wiD escribió:  Te juro que si te tengo enfrente primero te piso con el auto y despues te meo en la boca.

(16/07/2014 06:38 PM)wiD escribió:  Mongito dame su name que quiero un chip para pegar todo cocow

(18/03/2015 02:04 PM)ErikMav94 escribió:  
(18/03/2015 02:03 PM)mongito100 escribió:  Son todos putos
escribís como el orto :trolleyes;

[Anti] escribió:Olle tranquilo cerebrito

(03/04/2015 12:16 AM)Treki escribió:  
(03/04/2015 12:11 AM)Sugisaki escribió:  cual plug?, el arkshine o el de arkshine?

Fixed*

(09/03/2015 09:49 PM)Moroha escribió:  Suspendieron al abaricioso platero de kikizon :trolleyes;

(26/05/2014 08:31 PM)ivan escribió:  hola quiero hacer combo para el party uso el de rank

(22/08/2014 11:41 PM)Store.gh escribió:  Join team de jeropito? A vos t hace falta un pito..

(26/02/2015 01:01 AM)meTaLiCroSS escribió:  
(26/02/2015 12:54 AM)sasske escribió:  Salida del horno nueva versión, que obsesionado estoy :3
PD: Me olvide de darle los créditos a metal xD, pobre metal xd
Da igual, dejalo como una enseñanza jejej no te llorare por unos creditos ehhmm hud...

(18/01/2015 12:31 AM)[R]ak escribió:  no me critican.. solo dicen boludeces

(05/01/2015 12:43 AM)roccoxx escribió:  Sentado en dust pensando como fui tan gil ♪
Image
04/06/2014 11:52 PM
Visita su sitio web Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Metrikcz Sin conexión
Miembro Destacado


Plugin developer
Mensajes: 827
Registro en: Oct 2013
Reputación: 19
Mensaje: #3
RE: [TUT] Menu Jugadores Online
Oc Gracias
no entendi lo primero que quisiste decir

Todos los MODS VHL totalmente gratuitos Descarga Aqui

Mis plugins:
FB: fb.com/rwoong
Venta plugins a pedido en México mándame MP
04/06/2014 11:55 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Mario AR. Sin conexión
Super Mario 64


Plugin developer Donador Medalla de aportes 1k
Mensajes: 1,235
Registro en: Feb 2014
Reputación: 61
Mensaje: #4
RE: [TUT] Menu Jugadores Online
Código PHP:
num_to_str(get_user_userid(i), iIDcharsmax(iID)) 
Y aumentas el tamaño del vector a 6 o 7. Esto sirve porque si abres el menú, y antes de que elijas a un jugador este se desconecta y entra otro y recibe el mismo ID, tomará la acción aunque sea otro player. Esto no sucede con el UserID, por eso es más seguro.

(10/05/2019 08:23 PM)Niper.-. escribió:  Trap no son tus putas trap es mi equipo tumbando el foro de amxmodx hey tumbando el foro hey tumbando el foroooo ya saben todos nos llevamos todos los pluginsss..

(18/02/2019 03:08 PM)Neeeeeeeeeel.- escribió:  Shit

(28/02/2015 03:27 AM)sasske escribió:  Vete al diablo detallista de mierda Oh god why

(26/12/2018 02:45 PM)[R]ak escribió:  yo solo te veo en whatsapp agarrando culos.. nose..

(09/06/2017 12:59 AM)kikizon2 escribió:  Quiero que leas las reglas, y si fuese posible que saltaras de un 10mo piso, pls.

(21/04/2017 01:27 AM)Chamo. escribió:  Cuanto hay que pagar para estar en tu firma TrolleyesThats what she said?

(20/04/2017 11:56 PM)matrix123 escribió:  Patrocinas rehlds? Es de lo único que hablas, mañana seguro te llegan remeras de rehlds, mandame una Whatever

(26/04/2017 08:47 PM)Dieguito escribió:  al que me salga con latinservers le meto un sugisaki por el c***

(26/02/2017 08:02 PM)meTaLiCroSS escribió:  La misma aritmetica se aplica con los Strings falsos que inventé ("trivago" y "pajarussel").

(13/02/2017 07:41 PM)Heber[$]ource escribió:  es nuvpawn, nos esta ddoseando con su sega genesis

(06/01/2015 10:47 PM)meTaLiCroSS escribió:  
(06/01/2015 10:40 PM)wiD escribió:  este chileno culiau :whatever;
¿Que?

(29/04/2016 11:44 PM)wiD escribió:  Te juro que si te tengo enfrente primero te piso con el auto y despues te meo en la boca.

(16/07/2014 06:38 PM)wiD escribió:  Mongito dame su name que quiero un chip para pegar todo cocow

(18/03/2015 02:04 PM)ErikMav94 escribió:  
(18/03/2015 02:03 PM)mongito100 escribió:  Son todos putos
escribís como el orto :trolleyes;

[Anti] escribió:Olle tranquilo cerebrito

(03/04/2015 12:16 AM)Treki escribió:  
(03/04/2015 12:11 AM)Sugisaki escribió:  cual plug?, el arkshine o el de arkshine?

Fixed*

(09/03/2015 09:49 PM)Moroha escribió:  Suspendieron al abaricioso platero de kikizon :trolleyes;

(26/05/2014 08:31 PM)ivan escribió:  hola quiero hacer combo para el party uso el de rank

(22/08/2014 11:41 PM)Store.gh escribió:  Join team de jeropito? A vos t hace falta un pito..

(26/02/2015 01:01 AM)meTaLiCroSS escribió:  
(26/02/2015 12:54 AM)sasske escribió:  Salida del horno nueva versión, que obsesionado estoy :3
PD: Me olvide de darle los créditos a metal xD, pobre metal xd
Da igual, dejalo como una enseñanza jejej no te llorare por unos creditos ehhmm hud...

(18/01/2015 12:31 AM)[R]ak escribió:  no me critican.. solo dicen boludeces

(05/01/2015 12:43 AM)roccoxx escribió:  Sentado en dust pensando como fui tan gil ♪
Image
04/06/2014 11:58 PM
Visita su sitio web Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Metrikcz Sin conexión
Miembro Destacado


Plugin developer
Mensajes: 827
Registro en: Oct 2013
Reputación: 19
Mensaje: #5
RE: [TUT] Menu Jugadores Online
o si ya te entendi bueno yo le llamaba de otra forma xD

Entonces ocuparia una native para pasar de userid a id, existe?, porque la ocuparia en el handler

Todos los MODS VHL totalmente gratuitos Descarga Aqui

Mis plugins:
FB: fb.com/rwoong
Venta plugins a pedido en México mándame MP
05/06/2014 12:02 AM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Mario AR. Sin conexión
Super Mario 64


Plugin developer Donador Medalla de aportes 1k
Mensajes: 1,235
Registro en: Feb 2014
Reputación: 61
Mensaje: #6
RE: [TUT] Menu Jugadores Online
Así Guiño
Código PHP:
new playerid find_player("k"str_to_num(buffer)); // Flag "k" es por userid.
    
if (playerid)
{
    
// Es el mismo jugador que elegimos en el menu y esta conectado!
}
else
{
    
// Ya no está D:


(10/05/2019 08:23 PM)Niper.-. escribió:  Trap no son tus putas trap es mi equipo tumbando el foro de amxmodx hey tumbando el foro hey tumbando el foroooo ya saben todos nos llevamos todos los pluginsss..

(18/02/2019 03:08 PM)Neeeeeeeeeel.- escribió:  Shit

(28/02/2015 03:27 AM)sasske escribió:  Vete al diablo detallista de mierda Oh god why

(26/12/2018 02:45 PM)[R]ak escribió:  yo solo te veo en whatsapp agarrando culos.. nose..

(09/06/2017 12:59 AM)kikizon2 escribió:  Quiero que leas las reglas, y si fuese posible que saltaras de un 10mo piso, pls.

(21/04/2017 01:27 AM)Chamo. escribió:  Cuanto hay que pagar para estar en tu firma TrolleyesThats what she said?

(20/04/2017 11:56 PM)matrix123 escribió:  Patrocinas rehlds? Es de lo único que hablas, mañana seguro te llegan remeras de rehlds, mandame una Whatever

(26/04/2017 08:47 PM)Dieguito escribió:  al que me salga con latinservers le meto un sugisaki por el c***

(26/02/2017 08:02 PM)meTaLiCroSS escribió:  La misma aritmetica se aplica con los Strings falsos que inventé ("trivago" y "pajarussel").

(13/02/2017 07:41 PM)Heber[$]ource escribió:  es nuvpawn, nos esta ddoseando con su sega genesis

(06/01/2015 10:47 PM)meTaLiCroSS escribió:  
(06/01/2015 10:40 PM)wiD escribió:  este chileno culiau :whatever;
¿Que?

(29/04/2016 11:44 PM)wiD escribió:  Te juro que si te tengo enfrente primero te piso con el auto y despues te meo en la boca.

(16/07/2014 06:38 PM)wiD escribió:  Mongito dame su name que quiero un chip para pegar todo cocow

(18/03/2015 02:04 PM)ErikMav94 escribió:  
(18/03/2015 02:03 PM)mongito100 escribió:  Son todos putos
escribís como el orto :trolleyes;

[Anti] escribió:Olle tranquilo cerebrito

(03/04/2015 12:16 AM)Treki escribió:  
(03/04/2015 12:11 AM)Sugisaki escribió:  cual plug?, el arkshine o el de arkshine?

Fixed*

(09/03/2015 09:49 PM)Moroha escribió:  Suspendieron al abaricioso platero de kikizon :trolleyes;

(26/05/2014 08:31 PM)ivan escribió:  hola quiero hacer combo para el party uso el de rank

(22/08/2014 11:41 PM)Store.gh escribió:  Join team de jeropito? A vos t hace falta un pito..

(26/02/2015 01:01 AM)meTaLiCroSS escribió:  
(26/02/2015 12:54 AM)sasske escribió:  Salida del horno nueva versión, que obsesionado estoy :3
PD: Me olvide de darle los créditos a metal xD, pobre metal xd
Da igual, dejalo como una enseñanza jejej no te llorare por unos creditos ehhmm hud...

(18/01/2015 12:31 AM)[R]ak escribió:  no me critican.. solo dicen boludeces

(05/01/2015 12:43 AM)roccoxx escribió:  Sentado en dust pensando como fui tan gil ♪
Image
05/06/2014 12:08 AM
Visita su sitio web Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Metrikcz Sin conexión
Miembro Destacado


Plugin developer
Mensajes: 827
Registro en: Oct 2013
Reputación: 19
Mensaje: #7
RE: [TUT] Menu Jugadores Online
Sale muy bien despues lo agrego gracias

Me imagino que find player loopea para encontrar la id de ese userid entonces estoy haciendo mas procesos, entonces la pregunta es
¿ tanto pedo solo por si selecciona un usuario y ese se desconecta pero lo remplaza otro ademas de que es muy poco probable, vale la pena ?

Todos los MODS VHL totalmente gratuitos Descarga Aqui

Mis plugins:
FB: fb.com/rwoong
Venta plugins a pedido en México mándame MP
(Este mensaje fue modificado por última vez en: 05/06/2014 12:37 AM por Metrikcz.)
05/06/2014 12:09 AM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Destro Sin conexión
Anti-cheat Team


Buen Tutorial Plugin developer Pensador Plugin popular
Mensajes: 820
Registro en: Oct 2013
Reputación: 4
Mensaje: #8
RE: [TUT] Menu Jugadores Online
(05/06/2014 12:09 AM)Metrikcz escribió:  ¿ tanto pedo solo por si selecciona un usuario y ese se desconecta pero lo remplaza otro ademas de que es muy poco probable, vale la pena ?
Imaginate un menu de ban y que al usuario al que le van a dar ban se desconecta,al mismo tiempo entra uno que no tiene nada que ver y le dan ban,luego ese usuario se conecta al foro y le hace una denuncia al admin que le dio ban (?

http://amxmodx-es.com/Thread-sXe-Free-Screen-Menu
mira el code
esa es otra forma de validar al player

(Este mensaje fue modificado por última vez en: 05/06/2014 12:56 AM por Destro.)
05/06/2014 12:54 AM
Visita su sitio web Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Metrikcz Sin conexión
Miembro Destacado


Plugin developer
Mensajes: 827
Registro en: Oct 2013
Reputación: 19
Mensaje: #9
RE: [TUT] Menu Jugadores Online
(05/06/2014 12:54 AM)Destro escribió:  
(05/06/2014 12:09 AM)Metrikcz escribió:  ¿ tanto pedo solo por si selecciona un usuario y ese se desconecta pero lo remplaza otro ademas de que es muy poco probable, vale la pena ?
Imaginate un menu de ban y que al usuario al que le van a dar ban se desconecta,al mismo tiempo entra uno que no tiene nada que ver y le dan ban,luego ese usuario se conecta al foro y le hace una denuncia al admin que le dio ban (?

http://amxmodx-es.com/Thread-sXe-Free-Screen-Menu
mira el code
esa es otra forma de validar al player

y eso fue exactamente lo que pense y con ese ejemplo de ban xd se me olvido aclarar que depende de la situacion.
Igualmente gracias

Todos los MODS VHL totalmente gratuitos Descarga Aqui

Mis plugins:
FB: fb.com/rwoong
Venta plugins a pedido en México mándame MP
05/06/2014 12:57 AM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
LA BANDA Sin conexión
Miembro


Plugin developer
Mensajes: 200
Registro en: Oct 2013
Reputación: 1
Mensaje: #10
RE: [TUT] Menu Jugadores Online
Bastante bueno...

Image
05/06/2014 02:38 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Enviar respuesta 


Salto de foro:


Usuario(s) navegando en este tema: 1 invitado(s)

Contáctanos | Allied Modders en español | Volver arriba | Volver al contenido | Archivo (Modo simple) | Sindicación RSS