Admin Check vía Menú
#1
Bueno todos conocen el famoso Admin Check de OneEyed. En el cuál marca los admins conectados en el servidor a través de un print en el say.
La mayoria de los servidores (Al menos de ARG) Tienen este plugin , pero no vi ninguno que los tenga vía menú.
Así que bueno.. dejo el código.

Bueno, me tome el tiempo de hacer una versión 2.0. En el mismo plugin arreglo fallos de este y nuevas cosillas...

v1.0
Código PHP:
#include < amxmodx >
#include < amxmisc >

new const szPluginInfo [ ] [ ] = {
    { 
"[BG] Admin Check" },
    { 
"1.2" },
    { 
"heNK'" }
};

new const 
szPrefix [ ] = "!g[BREAKING GAMING]!y";

public 
plugin_init ( ) {
    
    
register_plugin szPluginInfo ], szPluginInfo ], szPluginInfo ] );
    
    
    
RegisterSayCmdTeam "admin""cmdAdminCheck"ADMIN_ALLtrue );
    
RegisterSayCmdTeam "admins""cmdAdminCheck"ADMIN_ALLtrue );
    
    
}

public 
plugin_cfg ( ) {
    if ( 
is_plugin_loaded "Pause Plugins" ) != -)
        
server_cmd "amx_pausecfg add ^"%s^""szPluginInfo ] );
}


public 
cmdAdminCheck iIndex ) {
    
    static 
iMenu;
    
    
iMenu menu_create "\r[BREAKING GAMING] \y- \wAdmins Online""HandlerAdminOnline" );
    
    
//static i = 1;
    
new iName 33 ];
    new 
bool:Connected false;
    
    for ( new 
1<= get_maxplayers ( ); i++ ) {
        
        if ( !
is_user_connected ) )
            continue;


        
        if ( 
is_user_admin ) ) {
            
get_user_name iiNamesizeof iName ) - );
        
            
menu_additem iMenuiName );
            
menu_setprop iMenuMPROP_EXITNAME"Salir" );
            
menu_setprop iMenuMPROP_BACKNAME"Atras" );
            
menu_setprop iMenuMPROP_NEXTNAME"Siguiente" );
            
            
Connected true;
        }
    }
    
    if ( 
Connected ) {
        
        
menu_display iIndexiMenu );
    }
    else {
        
SayPrint iIndex"%s No hay admins online"szPrefix );
        
menu_destroy iMenu );
        
    }
    
    return 
PLUGIN_HANDLED;
}

public 
HandlerAdminOnline iIndexiMenuiItem ) {
    
    
menu_destroy iMenu );
    return 
PLUGIN_HANDLED;
}

stock SayPrint ( const iIndex, const Text [ ], any:... ) { 
    
    new 
Say 192 ];
    
vformat Saysizeof Say ), Text);
    
    
replace_all Saysizeof Say ), "!y""^1" );
    
replace_all Saysizeof Say ), "!g""^4" );
    
replace_all Saysizeof Say ), "!t""^3" );
    
    
//Acentos
    
replace_all Saysizeof Say ), "á""á" );
    
replace_all Saysizeof Say ), "é""é" );
    
replace_all Saysizeof Say ), "í""Ã*" );
    
replace_all Saysizeof Say ), "ó""ó" );
    
replace_all Saysizeof Say ), "ú""ú" );
    
replace_all Saysizeof Say ), "ñ""ñ" );
    
    
replace_all Saysizeof Say ), "Á""Ã" );
    
replace_all Saysizeof Say ), "É""É" );
    
replace_all Saysizeof Say ), "Í""Í" );
    
replace_all Saysizeof Say ), "Ó""Ó" );
    
replace_all Saysizeof Say ), "Ú""Ú" );
    
replace_all Saysizeof Say ), "Ñ""Ñ" );
    
    
    
    
    
message_begin iIndex MSG_ONE_UNRELIABLE MSG_BROADCASTget_user_msgid "SayText" ), .player iIndex );
    
write_byte iIndex iIndex 33 );
    
write_string Say );
    
message_end (  );
    
    
}

stock RegisterSayCmdTeam ( const szSayCommand [ ], const szFunction [ ], const szFlagsbool:ComandoTrue ) { 
    
    new 
LenSay 127 ];
    new 
LenSayTeam 127 ];
    
    if ( 
ComandoTrue ) { 
    
        
formatex LenSaysizeof LenSay ), "say /%s",szSayCommand );
        
formatex LenSayTeamsizeof LenSayTeam ), "say_team /%s"szSayCommand );
    }
    
    else {
        
formatex LenSaysizeof LenSay ), "say %s",szSayCommand );
        
formatex LenSayTeamsizeof LenSayTeam ), "say_team %s"szSayCommand );    
    
    }
    
    
register_clcmd LenSayszFunctionszFlags );
    
register_clcmd LenSayTeamszFunctionszFlags );
    
    


v2.0 *ATENCIÓN, ANTE CUALQUIER FALLO & BUG, ME AVISAN*
Código PHP:
#include <amxmodx>
#include <amxmisc>
#include <colorchat>


/*
        -v2.0
            *Fix menu_setprop
            *Mas entendible el código
            *Nuevas datas
                -Ahora si tienes el flag ADMIN_RCON podrás advertir al admin.
                -Ahora sí tienes el flag ADMIN_RCON podrás ver los datos del admin
                -Ahora sí tienes el flag ADMIN_RCON podrás chequear sus datos.
            *Nuevo: Contador de Admins ONLINE
            *Nuevo: Sist. de Advertencias
            *Compatibilidad con AMXX >= 1.8.3 
*/



#if defined AMXX_VERSION_NUM >= 183
    #define ColorChat client_print_color
    #define GREEN    0
    #define client_disconnect client_disconnected
#endif

#define PREFIX_MENU        "\r[BREAKING GAMING]\w"
#define PREFIX_SAY        "^4[BREAKING GAMING]^1"

new g_AdminCount 0;

new 
g_maxplayers;

new 
g_Advertir[33];


public 
plugin_cfg()
    
server_cmd("amx_pausecfg add ^"Admin Check^"");
public 
plugin_init() {
    
register_plugin("Admin Check""v2.0""heNK'");
    
    
register_clcmd("say /admins""AdminsCheck");
    
register_clcmd("say /admin""AdminsCheck");
    
    
register_clcmd("__ADVERTIR__""__ADVERTIR__");
    
    
g_maxplayers get_maxplayers();
    
}

public 
client_putinserver(id
    if(
is_user_admin(id)) {
        
g_AdminCount++;
    }
    public 
client_disconnect(id
    if(
is_user_admin(id)) {
        
g_AdminCount--;
    }

public 
AdminsCheck(id
{    
    new 
Titulo[256];
    
formatex(Titulocharsmax(Titulo), "%s Admins Online: \y%d \wadmins conectados"PREFIX_MENUg_AdminCount);
    
    new 
bool:bAdmin false;
    new 
menu menu_create(Titulo"HandlerAdminsCheck");
    
    for(new 
admin 1admin <= g_maxplayersadmin++) {
        if(
is_user_connected(admin) && is_user_admin(admin)) {
            new 
szId[13];
            
format(szIdcharsmax(szId), "%d %d"adminget_user_userid(admin));
            new 
szName[32]; get_user_name(adminszNamecharsmax(szName));
            if(
get_user_flags(id) & ADMIN_RCON)
                
formatex(Titulocharsmax(Titulo), "%s \y(VER INFORMACION)"szName);
            else    
formatex(Titulocharsmax(Titulo), "%s"szName);
            
menu_additem(menuTituloszId0);
            
bAdmin true;
        }
    }
    
    if(!
bAdmin)
        
ColorChat(idGREEN"%s No hay admins online"PREFIX_SAY);
        
    
menu_setprop(menuMPROP_NUMBER_COLOR"\y"),
    
menu_setprop(menuMPROP_NEXTNAME"Siguiente"),
    
menu_setprop(menuMPROP_EXITNAME"Salir"),
    
menu_setprop(menuMPROP_BACKNAME"Atras");
    
menu_display(idmenu0);
}

public 
HandlerAdminsCheck(idmenuitem
{
    if(
item == MENU_EXIT) {
        
menu_destroy(menu);
        return 
PLUGIN_HANDLED;
    }
    new 
accesscallback;
    new 
info[64], name[64];
    
menu_item_getinfo(menuitemaccessinfocharsmax(info), namecharsmax(name), callback);
    
    new 
player[11], userid[11], id2szId;
    
parse(infoplayercharsmax(player), useridcharsmax(userid));
    
id2 str_to_num(player),
    
szId str_to_num(userid);
    
    if((
get_user_flags(id) & ADMIN_RCON) && is_user_connected(id2) && (szId != get_user_userid(id))) {
        static 
Nombre[32]; get_user_name(id2Nombrecharsmax(Nombre)); 
        static 
szIp[20]; get_user_ip(id2szIpcharsmax(szIp), true);
        static 
szAuthid[64]; get_user_authid(id2szAuthidcharsmax(szAuthid));
        static 
szHid[15]; get_user_info(id2"*HID"szHidcharsmax(szHid));
        
        
        
MenuInformacion(idNombreszIpszAuthidszHidid2);
    }
    
    return 
PLUGIN_HANDLED;
}

public 
MenuInformacion(idNombre[], szIp[], szAuthid[], szHid[], id2)  {
    new 
Titulo[256];
    
formatex(Titulocharsmax(Titulo), "%s Datos de \y%s"PREFIX_MENUNombre);
    
    new 
numero[3]; 
    
num_to_str(id2numerocharsmax(numero)); //Pasamos el "id" del player..
    
    
new menu menu_create(Titulo"HandlerMenuInformacion");
    
    
formatex(Titulocharsmax(Titulo), "Su ip: \y%s"szIp);
    
menu_additem(menuTitulonumero);
    
    
formatex(Titulocharsmax(Titulo), "Su SteamID: \y%s"szAuthid);
    
menu_additem(menuTitulonumero);
    
    
formatex(Titulocharsmax(Titulo), "ShortHID: \y%s"szHid);
    
menu_additem(menuTitulonumero);
    
    
menu_additem(menu"Advertir al Admin"numero);
    
    
    
/* Si tienes el Admin Vencimiento 
    formatex(Titulo, charsmax(Titulo), "Su Vencimiento: \y%s", TuVariable);
    menu_additem(menu, Titulo, "4");
    */
    
    
menu_setprop(menuMPROP_EXITNAME"Salir");
    
menu_display(idmenu0);
}

public 
HandlerMenuInformacion(idmenuitem) {
    if(
item == MENU_EXIT) {
        
menu_destroy(menu);
        return 
PLUGIN_HANDLED;
    }
    
    static 
szData[100], nada;
    
menu_item_getinfo(menuitemnadaszDatacharsmax(szData), ""_nada);
    
    
g_Advertir[id] = str_to_num(szData);
    
    switch(
item) {
        case 
3client_cmd(id"messagemode __ADVERTIR__");
    }
    return 
PLUGIN_HANDLED;
}

public 
__ADVERTIR__(id) {
    if(
get_user_flags(id) &ADMIN_RCON) {
        new 
Razon[64];
        
read_args(Razoncharsmax(Razon));
        
remove_quotes(Razon);
        
trim(Razon);
        
        if(
strlen(Razon) <= 0) {
            
ColorChat(idGREEN"%s Tienes que agregar la razón"PREFIX_SAY);
            return;
        }
        
        new 
AName[32]; get_user_name(idANamecharsmax(AName));
        new 
Nombre[32]; get_user_name(g_Advertir[id], Nombrecharsmax(Nombre));
        
        
ColorChat(idGREEN"%s Advertiste al admin ^3%s ^4| ^1Razón: ^4%s"PREFIX_SAYNombreRazon);
        
ColorChat(g_Advertir[id], GREEN"%s ^3%s ^1te advirtio!!! La razón: ^4%s"PREFIX_SAYANameRazon);
    }

Responder
#2
Si mal no recuerdo, no hace mucho miramos 1 pero recuerda que el mismo que lo publico dijo que tenia el bug.

https://amxmodx-es.com/Thread-BUG-de-Menu

Cita:Ni se te ocurra mencionarme Watching
Responder
#3
(24/05/2018, 07:01 PM)El pirucho XP-007 escribió: Si mal no recuerdo, no hace mucho miramos 1 pero recuerda que el mismo que lo publico dijo que tenia el bug.

https://amxmodx-es.com/Thread-BUG-de-Menu

Cita:Ni se te ocurra mencionarme Watching

Hola , es otro parecido ese plugin. El mío lo probe y lo uso en servidores y jamás tuvo algún bug. Puedes probarlo por tu propios medios pero yo ya lo testee.
Responder
#4
Código PHP:
#include <amxmodx>

/*---------------EDIT ME------------------*/
#define ADMIN_CHECK ADMIN_KICK


static const COLOR[] = "^x04" //green
static const CONTACT[] = ""
/*----------------------------------------*/

new maxplayers
new gmsgSayText

public plugin_init() {
    
register_plugin("Admin Check""1.0""wG")
    
maxplayers get_maxplayers()
    
gmsgSayText get_user_msgid("SayText")
    
register_clcmd("say""handle_say")
    
register_cvar("amx_contactinfo"CONTACTFCVAR_SERVER)
}

public 
handle_say(id) {
    new 
said[192]
    
read_args(said,192)
    if( ( 
containi(said"who") != -&& containi(said"admin") != -) || contain(said"/admin") != -)
        
set_task(0.1,"print_adminlist",id)
    return 
PLUGIN_CONTINUE
}

public 
print_adminlist(user
{
    new 
adminnames[33][32]
    new 
message[256]
    new 
contactinfo[256], contact[112]
    new 
idcountxlen
    
    
for(id id <= maxplayers id++)
        if(
is_user_connected(id))
            if(
get_user_flags(id) & ADMIN_CHECK)
                
get_user_name(idadminnames[count++], 31)

    
len format(message255"%s ADMINS ONLINE: ",COLOR)
    if(
count 0) {
        for(
count x++) {
            
len += format(message[len], 255-len"%s%s "adminnames[x], < (count-1) ? ", ":"")
            if(
len 96 ) {
                
print_message(usermessage)
                
len format(message255"%s ",COLOR)
            }
        }
        
print_message(usermessage)
    }
    else {
        
len += format(message[len], 255-len"No hay admins conectados.")
        
print_message(usermessage)
    }
    
    
get_cvar_string("amx_contactinfo"contact63)
    if(
contact[0])  {
        
format(contactinfo111"%s Contacto -- %s"COLORcontact)
        
print_message(usercontactinfo)
    }
}

print_message(idmsg[]) {
    
message_begin(MSG_ONEgmsgSayText, {0,0,0}, id)
    
write_byte(id)
    
write_string(msg)
    
message_end()

[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
#5
Código PHP:
for ( new 1<= get_maxplayers ( ); i++ ) {
        
        if ( !
is_user_connected ) )
            continue;


        
        if ( 
is_user_admin ) ) {
            
get_user_name iiNamesizeof iName ) - );
        
            
menu_additem iMenuiName );
            
menu_setprop iMenuMPROP_EXITNAME"Salir" );
            
menu_setprop iMenuMPROP_BACKNAME"Atras" );
            
menu_setprop iMenuMPROP_NEXTNAME"Siguiente" );
            
            
Connected true;
        }
    } 
Asi que si hay 20 administradores, seteas el MPROP_EXITNAME y demas 20 veces?

Esta buena la idea, es original. WP
Responder
#6
(24/05/2018, 07:01 PM)El pirucho XP-007 escribió: Si mal no recuerdo, no hace mucho miramos 1 pero recuerda que el mismo que lo publico dijo que tenia el bug.

https://amxmodx-es.com/Thread-BUG-de-Menu

Cita:Ni se te ocurra mencionarme Watching

y que tiene? el dio este plugin, y supongo que decidió publicarlo...
yo añadiría flags pero cada quien jsjajaja

-Buen aporte
(13/08/2018, 07:59 PM)KrR10VnZl escribió: Usted tiene un retraso de otro mundo, pon de tu parte coño, como es posible que preguntes cual código? muchacho mongólico si dice código, él se refiere al SMA del CTF, dios mio y si no te gusta que te digan que tienes un retraso magistral, astral del otro mundo pon de tú parte y no hagas preguntas tontas.
Responder
#7
a veces pienso que el don de pirucho es comentar pendejadas sin sentido..


PD; concuerdo con Exertency Whatever
[Imagen: zcsztw-4.png] [Imagen: 6u5fj2-4.png]
[Imagen: linkedin_thumb_image.png][Imagen: 76561198283253977.png][Imagen: linkedin_thumb_image.png]
Responder
#8
[Imagen: Sin%20t%C3%ADtulo.png?raw=true]
Responder
#9
(24/05/2018, 09:16 PM)La Renga Mk escribió: [Imagen: Sin%20t%C3%ADtulo.png?raw=true]

Hay un error de símbolo o comando que escribiste mal, y en la imagen te lo dice.

Párrafo: 203
Responder
#10
borra el const no_amxx_uncompress

Whatever

(24/05/2018, 09:35 PM)El pirucho XP-007 escribió:
(24/05/2018, 09:16 PM)La Renga Mk escribió: [Imagen: Sin%20t%C3%ADtulo.png?raw=true]

Hay un error de símbolo o comando que escribiste mal, y en la imagen te lo dice.

Párrafo: 203
" poyo chiquen, pio re chiken "
[Imagen: zcsztw-4.png] [Imagen: 6u5fj2-4.png]
[Imagen: linkedin_thumb_image.png][Imagen: 76561198283253977.png][Imagen: linkedin_thumb_image.png]
Responder
#11
(24/05/2018, 09:16 PM)La Renga Mk escribió: [Imagen: Sin%20t%C3%ADtulo.png?raw=true]

Elimina esta linea:
Código PHP:
new const no_amxx_uncompress [ ] = "no_amxx_uncompress"

El código no es "tan importante" es algo simple para añadirle un "no_amxx_uncompress" Nothingdohere
[Imagen: b_350_20_323957_202743_f19a15_111111.png]

Estudia siempre; el tiempo es oro, lo material se puede recuperar pero el tiempo no se puede recuperar.
(02/10/2016, 05:05 PM)meTaLiCroSS escribió: Siempre me gusta ayudar cuando alguien esta interesado realmente en ver que esta programando.
(08/08/2019, 05:32 PM)meTaLiCroSS escribió: grax x el dato cr4ck


Mis aportes

PLUGINS
MAPAS
Menú LANG [SF] Sistema de Frags
Say System (Admin Prefix)
Responder
#12
(24/05/2018, 09:58 PM)Hypnotize escribió: borra el const no_amxx_uncompress

Whatever

(24/05/2018, 09:35 PM)El pirucho XP-007 escribió:
(24/05/2018, 09:16 PM)La Renga Mk escribió: [Imagen: Sin%20t%C3%ADtulo.png?raw=true]

Hay un error de símbolo o comando que escribiste mal, y en la imagen te lo dice.

Párrafo: 203
" poyo chiquen, pio re chiken "

Hypnotize lo voy a comentar pero estaria bueno para que sirve yo no tengo ni idea pero voy a buscar

Para pirucho
Cita:no escribi nada
Responder
#13
Buen aporte ^^

off:
(24/05/2018, 09:35 PM)El pirucho XP-007 escribió:
(24/05/2018, 09:16 PM)La Renga Mk escribió: [Imagen: Sin%20t%C3%ADtulo.png?raw=true]

Hay un error de símbolo o comando que escribiste mal, y en la imagen te lo dice.

Párrafo: 203

Aparte de castellano hablas inglés a la perfección, wow que gran usuario eres, ya te veré en el futuro.
Responder
#14
encontre esto a hora si buen aporte

Cita:Proteger plugin:
Para evitar que tu plugin sea descomprimido con este programa agrege el string "no_amxx_uncompress" en cualquier parte de su plugin.
Responder
#15
Se ve bien, buen trabajo Niper.-.Approved
Steam
Responder
#16
Ahí saque la v2.0, cualquier error, avisenme!
Responder
#17
No esta bueno dar información de ip:
Código PHP:
formatex(Titulocharsmax(Titulo), "Su ip: \y%s"szIp);
    
menu_additem(menuTitulonumero); 
Responder
#18
(27/06/2019, 08:39 PM)Alejandro escribió: No esta bueno dar información de ip:
Código PHP:
formatex(Titulocharsmax(Titulo), "Su ip: \y%s"szIp);
    
menu_additem(menuTitulonumero); 

Ahá... pero esta bajo el flag ADMIN_RCON (totalmente modificable por cualquier otro flag). Por ende, sí una persona tendría tu flag ADMIN_RCON, o sea que te haya hackeado, no va a ponerse a mirar en donde hay una native(en que plugin se usa get_user_ip) para ver tu ip, si mediante la rcon podes obtenerla...
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)