Chequear si tiene hid
#1
Hola gente, necesitaría un plugin que chequee si el jugador que esta ingresando tiene HID y si no que directamente no lo deje ingresar al servidor
Responder
#2
Toma esto lo usaba para no usar sxe cuando tenia global xD

Código PHP:
#include <amxmodx>

public plugin_init()
{   
    
register_plugin("sXeIFake""1.0""Chema")
    
    
set_task(58.3"anuncio"100_,_"b");
}

public 
plugin_cfg()
{
    if( 
is_plugin_loaded("Pause Plugins") != -)
        
server_cmd("amx_pausecfg add ^"sXeIFake^"");
}

public 
anuncio()
{        
    
set_hudmessage(02550, -1.00.2206.012.0)
    
show_hudmessage(0"Servidor protegido por sXe Injected v15.7^ndescargalo de sxe-injected.com^n(Estado: requerido)")
}

public 
client_putinserver(id)
{   
    
set_task(1.0"Check_Hid"id);
}    

public 
Check_Hid(id)
{    
    if(!
is_user_connected(id))
        return 
PLUGIN_HANDLED;
        
    new 
pw[192];
    
get_user_info(id"*HID"pwcharsmax(pw))    
    if(!
equal(pw"") || get_user_flags(id) & ADMIN_SLAY)  
        return 
PLUGIN_CONTINUE;    
    
    
server_cmd("kick #%d Este servidor esta protegido por sXe Injected v15.7"get_user_userid(id));    
    return 
PLUGIN_HANDLED;

Cualquier cosa decime creo que andaba hace mucho no lo uso.

EL QUE SABE SABE, EL QUE NO ES JEFE Mario
Responder
#3
Este es así nomas, si queres hacer que a X tipo de admin no le pida sXe Injected (como a los staff), o que si a X persona no le pida sxe, me avisas y agrego el if.

Código PHP:
#include <amxmodx>

public client_connect(id)
{
    static 
Hid[20];
    
get_user_infoid"*HID"HidcharsmaxHid ) );
    
    if ( 
equalHid"" ) )
        
server_cmd"kick #%d ^"Este server usa sXe InjectedDescargalo y volve a entrar^"" );

TFD ------ 10% (proyecto parado)

[Imagen: 76561198053053139.png]
Responder
#4
(11/06/2016, 07:49 PM)Matians escribió: Este es así nomas, si queres hacer que a X tipo de admin no le pida sXe Injected (como a los staff), o que si a X persona no le pida sxe, me avisas y agrego el if.

Código PHP:
#include <amxmodx>

public client_connect(id)
{
    static 
Hid[20];
    
get_user_infoid"*HID"HidcharsmaxHid ) );
    
    if ( 
equalHid"" ) )
        
server_cmd"kick #%d ^"Este server usa sXe InjectedDescargalo y volve a entrar^"" );


Dale, gracias, después lo pruebo y te aviso!
Responder
#5
Acá te armé un pequeño plugin con el método que yo uso, creo que es el más seguro de momento. Tiene soporte para AMX 1.8.3

Código PHP:
#include <amxmodx>

#if AMXX_VERSION_NUM < 183
    #define client_disconnected client_disconnect
#endif

new g_sPluginInfo[][] = {"sXe HID validate""v1.0""FEDERICOMB"};

/// Constants
const TASK_CHECK 234567;

/// Variables
new g_pCvar__sXe_OutPut 0;

public 
plugin_init() {
    
register_plugin(g_sPluginInfo[0], g_sPluginInfo[1], g_sPluginInfo[1]);
    
    
g_pCvar__sXe_OutPut get_cvar_pointer("__sxei_output");
}

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

public 
client_putinserver(id) {
    if(
g_pCvar__sXe_OutPut) { // Si la CVAR no existe va a tirar error..
        
remove_task(id TASK_CHECK);
        
set_task(random_float(5.07.0), "__taskCheckHid"id TASK_CHECK);
    }
}

public 
client_disconnected(id) {
    
remove_task(id TASK_CHECK);
}

public 
__taskCheckHid(const taskid) {
    new 
id = (taskid TASK_CHECK);
    
    if(!
is_user_connected(id)) {
        return;
    }
    
    new 
sBuffer[64]; sBuffer[0] = EOS;
    
    
server_cmd("sxe_userhid #%d"get_user_userid(id));
    
server_exec();
    
    
get_pcvar_string(g_pCvar__sXe_OutPutsBuffercharsmax(sBuffer));
    
    
replace_all(sBuffercharsmax(sBuffer), "sxei_userhid: """);
    
replace_all(sBuffercharsmax(sBuffer), "[""");
    
replace_all(sBuffercharsmax(sBuffer), "]""");
    
replace_all(sBuffercharsmax(sBuffer), "^n""");
    
    if(!
isValidHID(sBuffer)) {
        
server_cmd("kick #%d ^"sXe Injected es requerido en este servidordescargalo de www.sxe-injected.com^""get_user_userid(id));
    }
}

public 
isValidHID(const buffer[]) {
    if(
strlen(buffer) < 28
    
|| buffer[0] == '!'
    
|| equali(buffer"no HID present, try again.")
    || 
equali(buffer"")
    || 
containi(buffer" ") != -1
    
|| buffer[8] != '-'
    
|| buffer[17] != '-'
    
|| buffer[26] != '-')
    {
        return 
0// No es valido
    
}
    
    return 
1// Es valido



Archivos adjuntos
.sma   Descargar AMXX / sXe_valid.sma (Tamaño: 1.85 KB / Descargas: 99)
Believe, be yourself and don't hold on to just one dream ❤

https://github.com/FEDERICOMB96
Responder
#6
(11/06/2016, 07:58 PM)Boligoma escribió:
(11/06/2016, 07:49 PM)Matians escribió: Este es así nomas, si queres hacer que a X tipo de admin no le pida sXe Injected (como a los staff), o que si a X persona no le pida sxe, me avisas y agrego el if.

Código PHP:
#include <amxmodx>

public client_connect(id)
{
    static 
Hid[20];
    
get_user_infoid"*HID"HidcharsmaxHid ) );
    
    if ( 
equalHid"" ) )
        
server_cmd"kick #%d ^"Este server usa sXe InjectedDescargalo y volve a entrar^"" );


Dale, gracias, después lo pruebo y te aviso!

No me funciono

(11/06/2016, 08:53 PM)Federicomb escribió: Acá te armé un pequeño plugin con el método que yo uso, creo que es el más seguro de momento. Tiene soporte para AMX 1.8.3

Código PHP:
#include <amxmodx>

#if AMXX_VERSION_NUM < 183
    #define client_disconnected client_disconnect
#endif

new g_sPluginInfo[][] = {"sXe HID validate""v1.0""FEDERICOMB"};

/// Constants
const TASK_CHECK 234567;

/// Variables
new g_pCvar__sXe_OutPut 0;

public 
plugin_init() {
    
register_plugin(g_sPluginInfo[0], g_sPluginInfo[1], g_sPluginInfo[1]);
    
    
g_pCvar__sXe_OutPut get_cvar_pointer("__sxei_output");
}

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

public 
client_putinserver(id) {
    if(
g_pCvar__sXe_OutPut) { // Si la CVAR no existe va a tirar error..
        
remove_task(id TASK_CHECK);
        
set_task(random_float(5.07.0), "__taskCheckHid"id TASK_CHECK);
    }
}

public 
client_disconnected(id) {
    
remove_task(id TASK_CHECK);
}

public 
__taskCheckHid(const taskid) {
    new 
id = (taskid TASK_CHECK);
    
    if(!
is_user_connected(id)) {
        return;
    }
    
    new 
sBuffer[64]; sBuffer[0] = EOS;
    
    
server_cmd("sxe_userhid #%d"get_user_userid(id));
    
server_exec();
    
    
get_pcvar_string(g_pCvar__sXe_OutPutsBuffercharsmax(sBuffer));
    
    
replace_all(sBuffercharsmax(sBuffer), "sxei_userhid: """);
    
replace_all(sBuffercharsmax(sBuffer), "[""");
    
replace_all(sBuffercharsmax(sBuffer), "]""");
    
replace_all(sBuffercharsmax(sBuffer), "^n""");
    
    if(!
isValidHID(sBuffer)) {
        
server_cmd("kick #%d ^"sXe Injected es requerido en este servidordescargalo de www.sxe-injected.com^""get_user_userid(id));
    }
}

public 
isValidHID(const buffer[]) {
    if(
strlen(buffer) < 28
    
|| buffer[0] == '!'
    
|| equali(buffer"no HID present, try again.")
    || 
equali(buffer"")
    || 
containi(buffer" ") != -1
    
|| buffer[8] != '-'
    
|| buffer[17] != '-'
    
|| buffer[26] != '-')
    {
        return 
0// No es valido
    
}
    
    return 
1// Es valido


Me funciono pero tarda en expulsar al jugador, no hay una forma que lo haga más rápido?

ya, no vi el set_task jaja, afecta en algo si lo pongo en 1.0 hasta 3.0?

Aveces te expulsa teniendo el sXe abierto
Responder
#7
Normalmente se tarde en mandar el HID al servidor, se manda luego de que te conectes

Si tenes ban local o global tarda en expulsarte por esa misma razón, por que quieres hacerlo tan tan rápido?
(03/07/2016, 11:24 PM)meTaLiCroSS escribió: Como lo hizo sasske es como lo estipule de un principio Proud
Responder
#8
Tal como dijo sasske, a veces tarda en mandar el HID del cliente al servidor, por eso hago el task. Proba reduciendo el task a 3.0 como mínimo, pero menos de eso no te recomiendo porque no va a detectar ningun HID. Si el envío del HID sería instantáneo sería mejor el tema.
Believe, be yourself and don't hold on to just one dream ❤

https://github.com/FEDERICOMB96
Responder
#9
(12/06/2016, 11:42 AM)sasske escribió: Normalmente se tarde en mandar el HID al servidor, se manda luego de que te conectes

Si tenes ban local o global tarda en expulsarte por esa misma razón, por que quieres hacerlo tan tan rápido?

Para evitar a los indeseables, pueden entrar por suficiente tiempo para molestar, spamear, etc.

(12/06/2016, 01:02 PM)Federicomb escribió: Tal como dijo sasske, a veces tarda en mandar el HID del cliente al servidor, por eso hago el task. Proba reduciendo el task a 3.0 como mínimo, pero menos de eso no te recomiendo porque no va a detectar ningun HID. Si el envío del HID sería instantáneo sería mejor el tema.

Ah, ok, se agradece, 3.0 a 5.0 está bien?
Responder
#10
(12/06/2016, 01:21 PM)Boligoma escribió:
(12/06/2016, 01:02 PM)Federicomb escribió: Tal como dijo sasske, a veces tarda en mandar el HID del cliente al servidor, por eso hago el task. Proba reduciendo el task a 3.0 como mínimo, pero menos de eso no te recomiendo porque no va a detectar ningun HID. Si el envío del HID sería instantáneo sería mejor el tema.

Ah, ok, se agradece, 3.0 a 5.0 está bien?

Yo diría que sí.
Believe, be yourself and don't hold on to just one dream ❤

https://github.com/FEDERICOMB96
Responder
#11
(12/06/2016, 01:21 PM)Boligoma escribió:
(12/06/2016, 11:42 AM)sasske escribió: Normalmente se tarde en mandar el HID al servidor, se manda luego de que te conectes

Si tenes ban local o global tarda en expulsarte por esa misma razón, por que quieres hacerlo tan tan rápido?

Para evitar a los indeseables, pueden entrar por suficiente tiempo para molestar, spamear, etc.

(12/06/2016, 01:02 PM)Federicomb escribió: Tal como dijo sasske, a veces tarda en mandar el HID del cliente al servidor, por eso hago el task. Proba reduciendo el task a 3.0 como mínimo, pero menos de eso no te recomiendo porque no va a detectar ningun HID. Si el envío del HID sería instantáneo sería mejor el tema.

Ah, ok, se agradece, 3.0 a 5.0 está bien?

Pues pueden molestar con sXe-I

Tu dices para dar ban local? dales ban por STEAM_ID y listo, o por IP

Y si quisieras, pudieras des-habilitar el SAY hasta hacer el checkeo por HID, entonces al entrar al SV, durante unos 5 seg no podrían hablar, pero no creo q sea molestia para nadie...
(03/07/2016, 11:24 PM)meTaLiCroSS escribió: Como lo hizo sasske es como lo estipule de un principio Proud
Responder
#12
(11/06/2016, 08:53 PM)Federicomb escribió: Acá te armé un pequeño plugin con el método que yo uso, creo que es el más seguro de momento. Tiene soporte para AMX 1.8.3

Código PHP:
#include <amxmodx>

#if AMXX_VERSION_NUM < 183
    #define client_disconnected client_disconnect
#endif

new g_sPluginInfo[][] = {"sXe HID validate""v1.0""FEDERICOMB"};

/// Constants
const TASK_CHECK 234567;

/// Variables
new g_pCvar__sXe_OutPut 0;

public 
plugin_init() {
    
register_plugin(g_sPluginInfo[0], g_sPluginInfo[1], g_sPluginInfo[1]);
    
    
g_pCvar__sXe_OutPut get_cvar_pointer("__sxei_output");
}

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

public 
client_putinserver(id) {
    if(
g_pCvar__sXe_OutPut) { // Si la CVAR no existe va a tirar error..
        
remove_task(id TASK_CHECK);
        
set_task(random_float(5.07.0), "__taskCheckHid"id TASK_CHECK);
    }
}

public 
client_disconnected(id) {
    
remove_task(id TASK_CHECK);
}

public 
__taskCheckHid(const taskid) {
    new 
id = (taskid TASK_CHECK);
    
    if(!
is_user_connected(id)) {
        return;
    }
    
    new 
sBuffer[64]; sBuffer[0] = EOS;
    
    
server_cmd("sxe_userhid #%d"get_user_userid(id));
    
server_exec();
    
    
get_pcvar_string(g_pCvar__sXe_OutPutsBuffercharsmax(sBuffer));
    
    
replace_all(sBuffercharsmax(sBuffer), "sxei_userhid: """);
    
replace_all(sBuffercharsmax(sBuffer), "[""");
    
replace_all(sBuffercharsmax(sBuffer), "]""");
    
replace_all(sBuffercharsmax(sBuffer), "^n""");
    
    if(!
isValidHID(sBuffer)) {
        
server_cmd("kick #%d ^"sXe Injected es requerido en este servidordescargalo de www.sxe-injected.com^""get_user_userid(id));
    }
}

public 
isValidHID(const buffer[]) {
    if(
strlen(buffer) < 28
    
|| buffer[0] == '!'
    
|| equali(buffer"no HID present, try again.")
    || 
equali(buffer"")
    || 
containi(buffer" ") != -1
    
|| buffer[8] != '-'
    
|| buffer[17] != '-'
    
|| buffer[26] != '-')
    {
        return 
0// No es valido
    
}
    
    return 
1// Es valido


Una pregunta.
Tu Codigo @FEDERICOMB; expulsa jugadores teniendo el sXe puesto...
Como puedo evitar eso?
Responder
#13
(18/06/2016, 03:48 AM)Web Controller escribió:
(11/06/2016, 08:53 PM)Federicomb escribió: Acá te armé un pequeño plugin con el método que yo uso, creo que es el más seguro de momento. Tiene soporte para AMX 1.8.3

Código PHP:
#include <amxmodx>

#if AMXX_VERSION_NUM < 183
    #define client_disconnected client_disconnect
#endif

new g_sPluginInfo[][] = {"sXe HID validate""v1.0""FEDERICOMB"};

/// Constants
const TASK_CHECK 234567;

/// Variables
new g_pCvar__sXe_OutPut 0;

public 
plugin_init() {
    
register_plugin(g_sPluginInfo[0], g_sPluginInfo[1], g_sPluginInfo[1]);
    
    
g_pCvar__sXe_OutPut get_cvar_pointer("__sxei_output");
}

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

public 
client_putinserver(id) {
    if(
g_pCvar__sXe_OutPut) { // Si la CVAR no existe va a tirar error..
        
remove_task(id TASK_CHECK);
        
set_task(random_float(5.07.0), "__taskCheckHid"id TASK_CHECK);
    }
}

public 
client_disconnected(id) {
    
remove_task(id TASK_CHECK);
}

public 
__taskCheckHid(const taskid) {
    new 
id = (taskid TASK_CHECK);
    
    if(!
is_user_connected(id)) {
        return;
    }
    
    new 
sBuffer[64]; sBuffer[0] = EOS;
    
    
server_cmd("sxe_userhid #%d"get_user_userid(id));
    
server_exec();
    
    
get_pcvar_string(g_pCvar__sXe_OutPutsBuffercharsmax(sBuffer));
    
    
replace_all(sBuffercharsmax(sBuffer), "sxei_userhid: """);
    
replace_all(sBuffercharsmax(sBuffer), "[""");
    
replace_all(sBuffercharsmax(sBuffer), "]""");
    
replace_all(sBuffercharsmax(sBuffer), "^n""");
    
    if(!
isValidHID(sBuffer)) {
        
server_cmd("kick #%d ^"sXe Injected es requerido en este servidordescargalo de www.sxe-injected.com^""get_user_userid(id));
    }
}

public 
isValidHID(const buffer[]) {
    if(
strlen(buffer) < 28
    
|| buffer[0] == '!'
    
|| equali(buffer"no HID present, try again.")
    || 
equali(buffer"")
    || 
containi(buffer" ") != -1
    
|| buffer[8] != '-'
    
|| buffer[17] != '-'
    
|| buffer[26] != '-')
    {
        return 
0// No es valido
    
}
    
    return 
1// Es valido


Una pregunta.
Tu Codigo @FEDERICOMB; expulsa jugadores teniendo el sXe puesto...
Como puedo evitar eso?

Borra esta línea y haz lo que necesites.

Código PHP:
server_cmd("kick #%d ^"sXe Injected es requerido en este servidordescargalo de www.sxe-injected.com^""get_user_userid(id)); 
Believe, be yourself and don't hold on to just one dream ❤

https://github.com/FEDERICOMB96
Responder
#14
Creo que el se refiere a que no les detecta el HID aun teniendo el sXe

El método de agarrar el HID esta bien, así que posiblemente sea que lo ejecutas demasiado rápido, entonces no llega a aparecer el HID.

Trata de ponerle mas tiempo al task.
(03/07/2016, 11:24 PM)meTaLiCroSS escribió: Como lo hizo sasske es como lo estipule de un principio Proud
Responder
#15
(19/06/2016, 11:27 PM)sasske escribió: Creo que el se refiere a que no les detecta el HID aun teniendo el sXe

El método de agarrar el HID esta bien, así que posiblemente sea que lo ejecutas demasiado rápido, entonces no llega a aparecer el HID.

Trata de ponerle mas tiempo al task.

Bueno sí, eso ya lo sabemos. Que cuando entras al servidor no te otorga instantáneamente el HID, sino que tarda un tiempo. No sé que tiempo será, pero si quieren pueden ponerle 10 segundos al task antes de que compruebe. Approved
Believe, be yourself and don't hold on to just one dream ❤

https://github.com/FEDERICOMB96
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)