[TUT] Menú de Admins...
#1
Bueno, ya sé que hay un tutorial sobre menú de ADMINS de "Pipa Roja" pero quise hacer el mío en base a un usuario que público un post..

[ACLARACIONES]

Se que es más simple utilizar directamente is_user_admin que get_user_flags pero lo quise hacer así por si alguien pregunta... "¿Como hago para qué solo tenga el menú los que tienen flag KICK o BAN?".
El plugin no lo testee pero seguramente 100% que funciona..
Sí hay errores, corrijan, mejoras, también.
Gracias por leer!

Código PHP:
#include < amxmodx > //Libreria del AMX... sin esto, olvidate de programar negro.
#include < fun > //Libreria perteneciente al AMX, con esta usaremos el "set_user_health."
#include < ColorChat > //Libreria EXTERNA al AMX, con esta podremos usar el "client_print" pero en base a colores..
//Su función es la siguiente.
//ColorChat ( id, Color:type, const msg[], {Float,Sql,Result,_}:... );
//Ejemplo: ColorChat ( iIndex, GREEN, "ESTE MENSAJE ESTA SIENDO ENVIADO EN COLOR VERDE" );
//Colores & Usos..
/*
    * ------------------------------------------------------------- *
    * ^3 = COLOR TEAM
    * ^1 = COLOR DEFAULT (de la variable con_color del cs)
    * ^4 = COLOR VERDE.
    * ------------------------------------------------------------- *
*/
//ACLARACIÓN, en el segundo parametro (Color:type) no significa que el texto salga EN UN SOLO COLOR. Sí utilizas lo de arriba, vas a poder cambiar el tipo de color..
//O sea...
//Ejemplo: ColorChat ( id, RED, "^4Apa esta en RED ^1pero sale en VERDE y ^3en COLOR TEAM" );


new const PLUGIN [ ] = "Tutorial Menu"
new const 
VERSION [ ] = "1.0";
new const 
AUTHOR [ ] = "heNK'";


//szPrefix = "PREFIJO" del SAY.. 
//Saldría así..
//[TUTORIAL] soy un mensaje con prefix..
//Sín prefix:
//soy un mensaje sin prefix..
new const szPrefix [ ] = "^4[TUTORIAL]^1";

public 
plugin_init ( ) {
    
register_plugin PLUGINVERSIONAUTHOR ); //No hay misterio, register_plugin = registrar_plugin xdxdxd. Con los parametros, (PLUGIN = Nombre, VERSION = Version del Plugin, AUTHOR = Creador del Plugin)
    
    
register_clcmd "say /menu""MenuTut" ); //registramos el comando.
    //register_clcmd = registra el comando para el player.
    //say = cuando pones Y en el juego, bueno escribis. Eso es.
    // /menu = lo que escribe
    //Después de la " , " es la función o sea lo que va a ser funcionar el menú xD.
    
    
}

//Vayamos a algo más "avanzado", simple y por ahí puede llegar a ser "bonito".
public client_putinserver iIndex ){ //Client_PutinServer = "Cuando el Cliente(Player) se conecta al servidor, este sera "recibido" después de que se haya mostrado la MOTD (motd.txt) del servidor."
    
    //Para saber MÁS SOBRE EL USO DE SET_TASK
    //Post -> https://amxmodx-es.com/Thread-GUIA-set-task-remove-task-y-task-exists
    
set_task 15.0"ClientConnect"iIndex );
    
//Básicamente, cuando se conecta, 15 segundos después se llama a la función "ClientConnect" al cliente que se conecto...
}

public 
client_disconnect iIndex ){ //ClientDisconnect = lo dice la palabra...
    
    
remove_task iIndex ); //se remueva el task..
    
}

public 
ClientConnect iIndex ) {
    
    
//is_user_connected = lo dice la palabra, si el user esta conectado..
    //par1 = player..
    //Condicion = "Sí el USER NO esta CONECTADO, se RETORNA la función".
    //¿Por qué se hace esto?
    //Debido a que usamos "set_task" en ClientPutinServer, nunca sabremos
    //Sí el player se desconecto antes de esos "15" segundos, entonces..
    //Se hace el chequeo para comprobar si esta o no esta conectado.
    
if ( !is_user_connected iIndex ) )
        return 
PLUGIN_HANDLED;
    
    
//get_user_flags = obtener_flags.
    //par1 = player
    //ADMIN_BAN = flag del admin ban.
    //Condición = "SI NO TIENE EL FLAG DEL BAN, NO SALE EL MENSAJE"
    
if ( ! ( get_user_flags iIndex ) & ADMIN_BAN ) ) {
        return 
PLUGIN_HANDLED;
    }
    
    
ColorChat iIndexGREEN"%s Hola ADMIN, si utilizas /menu tendras tú menú especial para ADMINS"szPrefix );
    
    return 
PLUGIN_HANDLED;
    
}


public 
MenuTut iIndex ) {
    
    
//get_user_flags = obtener_flags.
    //par1 = player
    //ADMIN_BAN = flag del admin ban.
    //Condición = "SI NO TIENE EL FLAG DEL BAN, NO TIENE MENÚ"
    
    
if ( ! ( get_user_flags iIndex ) & ADMIN_BAN ) ) {
        
client_print iIndexprint_chat"No sos admin, asi que no tenes acceso" );//Mensaje Normal, con ColorChat se cambiaria..
        
return PLUGIN_HANDLED;
    }
    
    new 
iMenu menu_create "\y[TUTORIAL] \wMenu Basic""HandlerMenuBasic" );
    
//menu_create = crear_menu
    //Par1 = "Titulo del Menu"
    //Colores:
    //    \y = AMARILLO
    //    \d = GRIS
    //    \w = BLANCO
    //    \r = ROJO
    //Par2 = "Handler", función con la que va a ser funcionar el menú xD
    
    
menu_additem iMenu"Opcion #1 -> Te da +50VIDA""1" );
    
//menu_additem = agregar_item_al_menu.
    //par1 = VARIABLE DEL MENU.
    //par2 = "String, nombre de la opción"
    //par3 = "Opcion"..
    
menu_additem iMenu"Opcion #2 -> Mensajito xD""2" );
    
    
menu_additem iMenu"Opcion #3 -> Mensajito ColorChat""3" );
    
    
menu_display iIndexiMenu,);
    
//menu_display = mostrar_menu.
    //par1 = Index del jugador (o sea, lo muestra al que escribio /menu).
    //par2 = Variable del menú.
    //par3 = Página del menú. = 0..
    
    
return PLUGIN_HANDLED;
    
}

public 
HandlerMenuBasic iIndexiMenuiItem ){
    
    
//IF = condición xdxdxd.
    //item = MENU_EXIT, el menú se destruye.
    //MENU_EXIT = Item "EXIT" / "SALIR" Del menú...
    
if ( iItem == MENU_EXIT ){
        
menu_destroy iMenu );
        return 
PLUGIN_HANDLED;
    }
    
    switch ( 
iItem ) {
        
//case 0 = opción #1.
        
case 0set_user_health iIndexget_user_health iIndex ) + 50 );//Obtenemos la vida y le seteamos 50, o sea si tiene 100 tendra 150 y si tiene 50 tendra 100.
        
case 1client_print iIndexprint_chat"Este es el mensajito xD" );
        case 
2ColorChat iIndexGREEN"^1Este ^4mensaje ^1sale en colores ^4VERDE" );
    }
    
    return 
PLUGIN_HANDLED;

Responder
#2
Proud Buen tutorial, pronto veo si tiene errores o detalles.
[Imagen: jrXxqRT.png]
*Maper Del Cstrike* - *Estudiante De Sistema*
(03/09/2018, 08:32 PM)Skylar escribió: Obviamente, no va a hablar con super pro para que le mueva el thread
(04/01/2019, 05:12 PM)Pan Bimbo (? escribió: QUE HICISTE QUE??????? YO QUERIA LA PLACA DE VIDEO PORQUE LA TIRASTE CTM
(15/01/2019, 04:08 AM)FreDDy escribió:
(15/01/2019, 03:45 AM)Hernandez escribió: Qué más dan las palabras si a donde vayas están en tetas protestando sin sentido

No todas salen en tetas y no todas protestan sin sentido. Estás generalizando algo que sólo unas pocas lo hacen a diferencia de las muchas que realmente tienen un motivo para protestar.
(17/01/2019, 12:34 PM)totopizza escribió: el orden de los factores no altera el producto xD
(23/01/2019, 01:10 AM)GoldenCosta escribió:
Cita:E visto que este ZP , ESTA AQUI EN EL FORO PERO NO ES EL ORIGINAL POR QUE? , LE FALTAN MILES DE COSAS ESTA BUGEADO , LE FALTAN CÓDIGOS NI SE IMAGINAN , BUENO EL MOD ESTE SE VENDE POR 70 DOLARES , ACEPTO PAYPAL Y EN PESOS CHILENOS $42.584
ya esta publicado.... y 70 us en arg son 2625,35 pesos... estas loco con esa guita neel mantiene el foro por 2 años
(23/01/2019, 01:17 AM)Skylar escribió:
(22/01/2019, 10:30 PM)el_juan_fail escribió:
(22/01/2019, 10:03 AM)Neeeeeeeeeel.- escribió: Por favor subir las cosas al foro y no links a blogs externos. Solamente en caso de que haya recursos que no se pudiesen subir por un tema de tamaño, poenr un link de descarga directo (tipo mega) de los recursos y subir los plugins y demás archivos livianos al foro.

deberia ponerle en un link mediante el mediafire o mega o link externo lo que sea pero no es bueno dejar cosa agregada sin descargar solo por el blog no se puede se puede bajar el recurso o que haya sido creado disculpa neeeeel. estaba leyendose las reglas u.uMario

Dijiste lo mismo que dijo Neeel!
(27/02/2019, 08:00 PM)Sugisaki escribió:
(27/02/2019, 05:37 PM)Pan Bimbo (? escribió:
(27/02/2019, 12:06 AM)luxor xD escribió: Hola, si precacheo algo en un plugin, no es necesario precachearlo en otro plugin?

Si yo cargo una caja en un camion, mi amigo puede cargar la MISMA caja en el camion?, y no porque ya esta cargada.
[R]ak escribió: Mis conocimientos aumentaron un 500% con este post
(14/03/2019, 10:26 PM)KrR10VnZl escribió: en Venezuela aprendes a ser desde bombas molotov hasta velas, es algo así como supervivencia al desnudo jaja
(18/04/2019, 11:04 PM)Jose88 escribió:
(18/04/2019, 09:55 PM)Hypnotize escribió: arriba marica

papa me va perdonar pero aquí no sale ningún download. solo sale esto

Código PHP:
PDNiños Ratas eviten sacar el autor jaja.
REMOVIDO POR TUTOR Y SLOWHACK
(21/04/2019, 09:38 AM)SHENK! =D escribió: ASDASD

Si nos organizamos cojemos todos.
(11/08/2019, 05:11 PM)Cr3470r escribió: Todo Software es crackeable ... No importa cuantas validaciones hagan, la ventaja siempre la tenemos nosotros ...
(28/07/2015, 09:34 PM)Nazi.- escribió: :ohgodwhy buen aporte

PD: situación sentimental: Sin internetOh god why

Sigue así Proud

(28/02/2020, 12:23 AM)Skylar escribió:
(27/02/2020, 11:28 PM)4evergaming escribió: Ya me puse como autor y lo subi a mi empresa


Abrazos

FIX
Responder
#3
Cute tutorial henkidama. Crab
Responder
#4
Buen tuto, lo estaba leyendo y no veo ningún error o problema, pero porque el task de 15,0 segundos?
Si no te gusta algo, cámbialo. Si no lo puedes cambiar, cambia la forma en que piensas sobre ello <3
Responder
#5
(18/07/2018, 03:29 PM)Saber escribió: Buen tuto, lo estaba leyendo y no veo ningún error o problema, pero porque el task de 15,0 segundos?

Simplemente porque quiso ponerle 15.0 segundos.
Responder
#6
ha :'v pense que habia una razon importante pacman
Si no te gusta algo, cámbialo. Si no lo puedes cambiar, cambia la forma en que piensas sobre ello <3
Responder
#7
Me gusto explica todos con detalle Whatever sera bueno para los que vayan empezando

Gracias Mario
* Ing. Informático * Mapper * Venezolano
Responder
#8
Buen plugin + Buena forma de codear la tuya capo Mario
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)