como bloquear para algunos admin el +grab
#1
Hola que tal, me veo obligado a consultar con vosotros que seguramente sepan del tema. La cuestion es que en un sv tengo el plugin +grab (podes mover jugadores) la cuestion es que solo quiero que tengan acceso ciertos admin, no todos, a lo que fui a la carpeta cmdaccess y trate de realizarlo de ahi pero no sucedio. LO QUE DEBO BLOQUEAR SERIA EL (bind "TECLA" +grab)
como se puede ver en azul el primero esta bien bloquea que no puedan escribir ese comando en consola pero sigue funcionando el +grab. y el segundo claramente no funciona pero seria lo que quiero bloquear.
aclaro que los admins con flag "a" si pueden usarlo, los que no les saque la "a" en la carpeta users.
les dejo url para que vean lo que realice.

HAGAN CLICK AQUI ABAJO

[/url][Imagen: ?3c87b73e26b2a7244275d393eadc9e48o.jpg]

Desde ya muchas gracias, atte El Abuelo
Responder
#2
Modificale la flag con la cual le das el +grab y solo dale la flag a los que vos quieras.
Responder
#3
(12/02/2020, 01:11 AM)Ballers escribió: Modificale la flag con la cual le das el +grab y solo dale la flag a los que vos quieras.

Creo que es lo que hice pero no funciono, fijate la imagen que subi abajo de todo esta en azul. como deberia ponerlo para que realmente bloquee el bind "tecla" +grab? :/
Responder
#4
Código PHP:
public grab_toggleidlevelcid )
{
    if(~
get_user_flags(id) & ADMIN_RESERVATION)
        return 
PLUGIN_HANDLED

    
if( !client_data[id][GRABBED] ) grabidlevelcid )
    else 
unset_grabbedid )
    
    return 
PLUGIN_HANDLED


Código PHP:
public grabidlevelcid )
{
    if(~
get_user_flags(id) & ADMIN_RESERVATION)
        return 
PLUGIN_HANDLED

    
if( !cmd_accessidlevelcid) || !get_pcvar_nump_enabled ) ) return PLUGIN_HANDLED
    
    
if ( !client_data[id][GRABBED] ) client_data[id][GRABBED] = -1    
    screenfade_in
id )
    
    return 
PLUGIN_HANDLED


Código PHP:
public force_grab(idlevelcid)
{
    if(~
get_user_flags(id) & ADMIN_RESERVATION)
        return 
PLUGIN_HANDLED

    
if( !cmd_accessidlevelcid) || !get_pcvar_nump_enabled ) ) return PLUGIN_HANDLED

    
new arg[33]
    
read_argv1arg32 )

    new 
targetid cmd_targetidarg)
    
    if( 
is_grabbedtargetidid ) ) return PLUGIN_HANDLED
    
if( !is_user_alivetargetid ) )
    {
        
client_printidprint_console"[AMXX] %L"id"COULDNT" )
        return 
PLUGIN_HANDLED
    
}
    
    
//Safe to tp target to aim spot?
    
new Float:tmpvec[3], Float:orig[3], Float:torig[3], Float:trace_ret[3]
    new 
bool:safe falsei
    
    get_view_pos
idorig )
    
tmpvec vel_by_aimidget_pcvar_nump_min_dist ) )
    
    for( new 
111 && !safej++ )
    {
        
torig[0] = orig[0] + tmpvec[i] * j
        torig
[1] = orig[1] + tmpvec[i] * j
        torig
[2] = orig[2] + tmpvec[i] * j
        
        traceline
tmpvectorigidtrace_ret )
        
        if( 
get_distance_ftrace_rettorig ) ) break
        
        
engfuncEngFunc_TraceHulltorigtorig0HULL_HUMAN0)
        if ( !
get_tr20TR_StartSolid ) && !get_tr20TR_AllSolid ) && get_tr20TR_InOpen ) )
            
safe true
    
}
    
    
//Still not safe? Then find another safe spot somewhere around the grabber
    
pevidpev_originorig )
    new try[
3]
    
orig[2] += 2
    
while( try[2] < && !safe )
    {
        for( 
03i++ )
            switch( try[
i] )
            {
                case 
torig[i] = orig[i] + ( == 80 40 )
                case 
torig[i] = orig[i]
                case 
torig[i] = orig[i] - ( == 80 40 )
            }
        
        
tracelinetmpvectorigidtrace_ret )
        
        
engfuncEngFunc_TraceHulltorigtorig0HULL_HUMAN0)
        if ( !
get_tr20TR_StartSolid ) && !get_tr20TR_AllSolid ) && get_tr20TR_InOpen )
                && !
get_distance_ftrace_rettorig ) ) safe true
        
        
try[0]++
        if( try[
0] == )
        {
            try[
0] = 0
            
try[1]++
            if( try[
1] == )
            {
                try[
1] = 0
                
try[2]++
            }
        }
    }
    
    if( 
safe )
    {
        
set_pevtargetidpev_origintorig )
        
set_grabbedidtargetid )
        
screenfade_inid )    
    }
    else 
client_printidprint_chat"[AMXX] %L"id"COULDNT" )

    return 
PLUGIN_HANDLED

Responder
#5
(12/02/2020, 04:56 PM)Nelo escribió:
Código PHP:
public grab_toggleidlevelcid )
{
    if(~
get_user_flags(id) & ADMIN_RESERVATION)
        return 
PLUGIN_HANDLED

    
if( !client_data[id][GRABBED] ) grabidlevelcid )
    else 
unset_grabbedid )
    
    return 
PLUGIN_HANDLED


Código PHP:
public grabidlevelcid )
{
    if(~
get_user_flags(id) & ADMIN_RESERVATION)
        return 
PLUGIN_HANDLED

    
if( !cmd_accessidlevelcid) || !get_pcvar_nump_enabled ) ) return PLUGIN_HANDLED
    
    
if ( !client_data[id][GRABBED] ) client_data[id][GRABBED] = -1    
    screenfade_in
id )
    
    return 
PLUGIN_HANDLED


Código PHP:
public force_grab(idlevelcid)
{
    if(~
get_user_flags(id) & ADMIN_RESERVATION)
        return 
PLUGIN_HANDLED

    
if( !cmd_accessidlevelcid) || !get_pcvar_nump_enabled ) ) return PLUGIN_HANDLED

    
new arg[33]
    
read_argv1arg32 )

    new 
targetid cmd_targetidarg)
    
    if( 
is_grabbedtargetidid ) ) return PLUGIN_HANDLED
    
if( !is_user_alivetargetid ) )
    {
        
client_printidprint_console"[AMXX] %L"id"COULDNT" )
        return 
PLUGIN_HANDLED
    
}
    
    
//Safe to tp target to aim spot?
    
new Float:tmpvec[3], Float:orig[3], Float:torig[3], Float:trace_ret[3]
    new 
bool:safe falsei
    
    get_view_pos
idorig )
    
tmpvec vel_by_aimidget_pcvar_nump_min_dist ) )
    
    for( new 
111 && !safej++ )
    {
        
torig[0] = orig[0] + tmpvec[i] * j
        torig
[1] = orig[1] + tmpvec[i] * j
        torig
[2] = orig[2] + tmpvec[i] * j
        
        traceline
tmpvectorigidtrace_ret )
        
        if( 
get_distance_ftrace_rettorig ) ) break
        
        
engfuncEngFunc_TraceHulltorigtorig0HULL_HUMAN0)
        if ( !
get_tr20TR_StartSolid ) && !get_tr20TR_AllSolid ) && get_tr20TR_InOpen ) )
            
safe true
    
}
    
    
//Still not safe? Then find another safe spot somewhere around the grabber
    
pevidpev_originorig )
    new try[
3]
    
orig[2] += 2
    
while( try[2] < && !safe )
    {
        for( 
03i++ )
            switch( try[
i] )
            {
                case 
torig[i] = orig[i] + ( == 80 40 )
                case 
torig[i] = orig[i]
                case 
torig[i] = orig[i] - ( == 80 40 )
            }
        
        
tracelinetmpvectorigidtrace_ret )
        
        
engfuncEngFunc_TraceHulltorigtorig0HULL_HUMAN0)
        if ( !
get_tr20TR_StartSolid ) && !get_tr20TR_AllSolid ) && get_tr20TR_InOpen )
                && !
get_distance_ftrace_rettorig ) ) safe true
        
        
try[0]++
        if( try[
0] == )
        {
            try[
0] = 0
            
try[1]++
            if( try[
1] == )
            {
                try[
1] = 0
                
try[2]++
            }
        }
    }
    
    if( 
safe )
    {
        
set_pevtargetidpev_origintorig )
        
set_grabbedidtargetid )
        
screenfade_inid )    
    }
    else 
client_printidprint_chat"[AMXX] %L"id"COULDNT" )

    return 
PLUGIN_HANDLED


Desde ya agradezco tu respuesta, ahora debo colocar todo esto en el sma del grab, o hacer un sma y compilarlo como un plugin nuevo? Disculpen si parece tonta mi pregunta, es que estoy aprendiendo Whatdone
Responder
#6
reemplaza las funciones en el sma del grab y compila, te estoy dejando las funciones completas solo tenes que reemplazarlas
Responder
#7
(14/02/2020, 03:30 PM)Nelo escribió: reemplaza las funciones en el sma del grab y compila, te estoy dejando las funciones completas solo tenes que reemplazarlas

Muchas gracias, funciono!
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)