Enviar respuesta 
como bloquear para algunos admin el +grab
Autor Mensaje
El Abuelo Sin conexión
Miembro Junior


Mensajes: 6
Registro en: Feb 2020
Reputación: 0
Mensaje: #1
como bloquear para algunos admin el +grab
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]Image

Desde ya muchas gracias, atte El Abuelo
(Este mensaje fue modificado por última vez en: 07/02/2020 10:58 PM por El Abuelo.)
07/02/2020 10:54 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Ballers Sin conexión
Miembro Sr.


Trebol de oro
Mensajes: 405
Registro en: Sep 2016
Reputación: 0
Mensaje: #2
RE: como bloquear para algunos admin el +grab
Modificale la flag con la cual le das el +grab y solo dale la flag a los que vos quieras.
12/02/2020 01:11 AM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
El Abuelo Sin conexión
Miembro Junior


Mensajes: 6
Registro en: Feb 2020
Reputación: 0
Mensaje: #3
RE: como bloquear para algunos admin el +grab
(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? :/
12/02/2020 04:25 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Nelo Sin conexión
Miembro Destacado


Mensajes: 823
Registro en: May 2015
Reputación: 7
Mensaje: #4
RE: como bloquear para algunos admin el +grab
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


(Este mensaje fue modificado por última vez en: 12/02/2020 04:58 PM por Nelo.)
12/02/2020 04:56 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
El Abuelo Sin conexión
Miembro Junior


Mensajes: 6
Registro en: Feb 2020
Reputación: 0
Mensaje: #5
RE: como bloquear para algunos admin el +grab
(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
14/02/2020 12:59 AM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Nelo Sin conexión
Miembro Destacado


Mensajes: 823
Registro en: May 2015
Reputación: 7
Mensaje: #6
RE: como bloquear para algunos admin el +grab
reemplaza las funciones en el sma del grab y compila, te estoy dejando las funciones completas solo tenes que reemplazarlas

14/02/2020 03:30 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