Raised This Month: $109 Target: $400
 27% 

[GUIA] Agregar Inmunidades en tipos de Admins


  
 
 
Thread Tools Display Modes
Author Message
MexPower
Veteran Member
Join Date: Nov 2012
Old 08-12-2013 , 16:00   [GUIA] Agregar Inmunidades en tipos de Admins
#1

Buenas En esta guia les enseñare como agregar inmunidad a los diferentes tipos de admin!
Primero abriremos el plugin admincmd.sma

Debajo de las includes
PHP Code:
#include <amxmodx>
#include <amxmisc> 
Aremos un enum

PHP Code:
enum
{
    
    
PLAYER 0,
    
ADMIN_BASICO//1
    
ADMIN_FULL//2
    
ADMIN_VIP//3 
    
ADMIN_DUENO // 4
}

new 
g_AdminType[33//Variable donde guardaremos que tipo de admin es 
En los enums si se sentencia solo "enum" se va ir aumentando de uno en uno

Ahora dejabo de client_disconnect
PHP Code:
//Cuando el usuario se desconecta
public client_disconnect(id)
{
    if (!
is_user_bot(id))
    {
        
InsertInfo(id);
    }

Agregaremos esto
PHP Code:
//Cuando entra en el servidor
public client_putinserver(id)
{
    if(
is_user_admin(id)) //Chequeamos si es admin
    
{
        if(
get_user_flags(id) & ADMIN_RCON//Si tiene la flag L
            
g_AdminType[id] = ADMIN_DUENO
            
        
else if(get_user_flags(id) & ADMIN_IMMUNITY//Si tiene la flag a
            
g_AdminType[id] = ADMIN_VIP
            
        
else if(get_user_flags(id) & ADMIN_LEVEL_C//Si tiene la flag o
            
g_AdminType[id] = ADMIN_FULL
        
else //Si no tiene niuno de las de arriba
            
g_AdminType[id] = ADMIN_BASICO
            
        
//Recuerden que deben de ir de mayor a menor porque lleva un orden primero chequeamos si 
        //tiene las mejores a las menores
    
}
    else 
//si no es admin
        
g_AdminType[id] = PLAYER    

Ahora para ponerle inmunidad en un ban seria aca
PHP Code:
 public cmdBan(idlevelcid
Para quitar que conque tengan inmunidad sean inmune a todo solo cambiaremos
PHP Code:
 new player cmd_target(idtargetCMDTARGET_OBEY_IMMUNITY CMDTARGET_NO_BOTS CMDTARGET_ALLOW_SELF
por
PHP Code:
new player cmd_target(idtargetCMDTARGET_NO_BOTS CMDTARGET_ALLOW_SELF
y listo
Ahora Debajo de
PHP Code:
if (!player)
    return 
PLUGIN_HANDLED 
Agregaremos esto abajo
PHP Code:
         if(g_AdminType[player] >= g_AdminType[id]) //si su admin es igual o mejor que el de el    
    
{
        
//Le mandamos un mensaje de que no puede hacer esto
        
console_print(id"[AMXX] No puedes Banear a un usuario Con un admin igual o superior al suyo")
        return 
PLUGIN_HANDLED//y detenemos la funcion
    

Y eso seria todo nos quedaria asi
PHP Code:
public cmdBan(idlevelcid)
{
    if (!
cmd_access(idlevelcid3))
        return 
PLUGIN_HANDLED

    
new target[32], minutes[8], reason[64]
    
    
read_argv(1target31)
    
read_argv(2minutes7)
    
read_argv(3reason63)
    
    new 
player cmd_target(idtargetCMDTARGET_NO_BOTS CMDTARGET_ALLOW_SELF)
    
    if (!
player)
        return 
PLUGIN_HANDLED
        
    
if(g_AdminType[player] >= g_AdminType[id])    
    {
        
console_print(id"[AMXX] No puedes Banear a un usuario Con un admin igual o superior al suyo")
        return 
PLUGIN_HANDLED;
    }    

    new 
authid[32], name2[32], authid2[32], name[32]
    new 
userid2 get_user_userid(player)

    
get_user_authid(playerauthid231)
    
get_user_authid(idauthid31)
    
get_user_name(playername231)
    
get_user_name(idname31)
    
    
log_amx("Ban: ^"%s<%d><%s><>^" ban and kick ^"%s<%d><%s><>^" (minutes ^"%s^") (reason ^"%s^")"nameget_user_userid(id), authidname2userid2authid2minutesreason)
    
    new 
temp[64], banned[16], nNum str_to_num(minutes)
    if (
nNum)
        
format(temp63"%L"player"FOR_MIN"minutes)
    else
        
format(temp63"%L"player"PERM")

    
format(banned15"%L"player"BANNED")

    if (
reason[0])
        
server_cmd("kick #%d ^"%(%%s)^";wait;banid ^"%s^" ^"%s^";wait;writeid"userid2reasonbannedtempminutesauthid2)
    else
        
server_cmd("kick #%d ^"%%s^";wait;banid ^"%s^" ^"%s^";wait;writeid"userid2bannedtempminutesauthid2)

    
    
// Display the message to all clients

    
new msg[256];
    new 
len;
    new 
maxpl get_maxplayers();
    for (new 
1<= maxpli++)
    {
        if (
is_user_connected(i) && !is_user_bot(i))
        {
            
len formatex(msgcharsmax(msg), "%L"i"BAN");
            
len += formatex(msg[len], charsmax(msg) - len" %s "name2);
            if (
nNum)
            {
                
len += formatex(msg[len], charsmax(msg) - len"%L"i"FOR_MIN"minutes);
            }
            else
            {
                
len += formatex(msg[len], charsmax(msg) - len"%L"i"PERM");
            }
            if (
strlen(reason) > 0)
            {
                
formatex(msg[len], charsmax(msg) - len" (%L: %s)"i"REASON"reason);
            }
            
show_activity_id(iidnamemsg);
        }
    }
    
    
console_print(id"[AMXX] %L"id"CLIENT_BANNED"name2)
    
    return 
PLUGIN_HANDLED

Ahora habra renstricciones de tipo de admin en los bans, si quieren hacerlo en los kick, slays, slaps, etc. Es igual

Eso fue todo, Gracias
__________________
Allied Modders En Español

Last edited by MexPower; 08-15-2013 at 12:02.
MexPower is offline
ChileScripting
BANNED
Join Date: Jan 2013
Old 08-12-2013 , 20:06   Re: [GUIA] Agregar Inmunidades en tipos de Admins
#2

Igual esta bueno xd pero podrias profundizar mas sobre algo autonomo hecho por ti mismo... xD

Por ejemplo yo hice un sistema de privilegios el cual consta de los mismos privilegios normales de cada admin solo que hice un plugin nuevo entero, y si lo juntas con sql y tienes acceso el plugin es muy accesible a bases de datos puedes configurar todo una web con eso ;)

Lo otro no es necesario chequear la variable is_user_admin y tambien se puede hacer switch en get_user_flags...
ChileScripting is offline
MexPower
Veteran Member
Join Date: Nov 2012
Old 08-12-2013 , 20:12   Re: [GUIA] Agregar Inmunidades en tipos de Admins
#3

Agrege el is_user_admin, para no tener que usar return plugin handled :A
Y un switch no es para eso porque se tienen que ordenar de mayor a menor tienes que ir checando si es dueño luego si es vip luego si es full y luego si es basico
porque si soy dueño y hago un switch tendre todas las flags nose a cual llamaria primero
__________________
Allied Modders En Español
MexPower is offline
Ayudante
Member
Join Date: Jul 2013
Location: Mi Casa!
Old 08-13-2013 , 01:18   Re: [GUIA] Agregar Inmunidades en tipos de Admins
#4

Muy Bueno, Gracias estaba buscando esto!
Ayudante is offline
Winchester90
Senior Member
Join Date: May 2013
Location: Dale! RG4L Baby
Old 08-13-2013 , 08:26   Re: [GUIA] Agregar Inmunidades en tipos de Admins
#5

buena guia pero es curioso en mi servidor soi admin general con todas las flags pero no me deja banear, kickear, slapear, ni slayear ni nada a los otros.Echare un vistazo no vaya a ser que mi compañero le haya puesto admin general a todos los admins XD.
__________________
Proyectos No comercio XD
Zombie Resurection 1.0 (45%)

Last edited by Winchester90; 08-13-2013 at 08:26.
Winchester90 is offline
ILUSION
Senior Member
Join Date: Oct 2006
Location: Argentina
Old 08-15-2013 , 11:03   Re: [GUIA] Agregar Inmunidades en tipos de Admins
#6

No sirve eso, porque en teoría por más que tenga el acceso de RCON y solamente el de inmunidad no te podría bannear porque me va a decir que tenes inmunidad.

Tendría que cambiarse esto
PHP Code:
    new player cmd_target(idtargetCMDTARGET_OBEY_IMMUNITY CMDTARGET_NO_BOTS CMDTARGET_ALLOW_SELF
Por esto
PHP Code:
    new player cmd_target(idtargetCMDTARGET_NO_BOTS CMDTARGET_ALLOW_SELF
Omitis el chequeo por inmunidad ya que abajo le agregaste uno nuevo.
__________________

Last edited by ILUSION; 08-15-2013 at 11:04.
ILUSION is offline
baneado
Veteran Member
Join Date: Dec 2012
Location: amxmodx-es.com
Old 08-15-2013 , 11:24   Re: [GUIA] Agregar Inmunidades en tipos de Admins
#7

buena idea lo de get_user_flags

yo lo utilizaba antes de ver este tutorial, pero buena ;)

es mejor almacenar en una variable los flags o hacer como tú haces en vez de utilizar todo el rato get_user_flags, ya que nunca van a cambiar

Last edited by baneado; 08-15-2013 at 11:25.
baneado is offline
MexPower
Veteran Member
Join Date: Nov 2012
Old 08-15-2013 , 12:04   Re: [GUIA] Agregar Inmunidades en tipos de Admins
#8

Quote:
Originally Posted by ILUSION View Post
No sirve eso, porque en teoría por más que tenga el acceso de RCON y solamente el de inmunidad no te podría bannear porque me va a decir que tenes inmunidad.

Tendría que cambiarse esto
PHP Code:
    new player cmd_target(idtargetCMDTARGET_OBEY_IMMUNITY CMDTARGET_NO_BOTS CMDTARGET_ALLOW_SELF
Por esto
PHP Code:
    new player cmd_target(idtargetCMDTARGET_NO_BOTS CMDTARGET_ALLOW_SELF
Omitis el chequeo por inmunidad ya que abajo le agregaste uno nuevo.
Es cierto, deecho antes de hacer el tuto estaba buscando donde chequean lo de inmunidad pero jamas me fije en el target asi que lo puse asi nomas, sabia que alguien me hiba corregir eso ya lo corregi Gracias!

Quote:
Originally Posted by Ayudante View Post
Muy Bueno, Gracias estaba buscando esto!
Quote:
Originally Posted by Winchester90 View Post
buena guia pero es curioso en mi servidor soi admin general con todas las flags pero no me deja banear, kickear, slapear, ni slayear ni nada a los otros.Echare un vistazo no vaya a ser que mi compañero le haya puesto admin general a todos los admins XD.
Quote:
Originally Posted by baneado View Post
buena idea lo de get_user_flags

yo lo utilizaba antes de ver este tutorial, pero buena ;)

es mejor almacenar en una variable los flags o hacer como tú haces en vez de utilizar todo el rato get_user_flags, ya que nunca van a cambiar
Multiples Gracias
__________________
Allied Modders En Español
MexPower is offline
Neeeeeeeeeel.-
Some Guy Yellin'
Join Date: Jul 2010
Location: Argentina
Old 08-15-2013 , 14:40   Re: [GUIA] Agregar Inmunidades en tipos de Admins
#9

Quote:
Originally Posted by baneado View Post
buena idea lo de get_user_flags

yo lo utilizaba antes de ver este tutorial, pero buena ;)

es mejor almacenar en una variable los flags o hacer como tú haces en vez de utilizar todo el rato get_user_flags, ya que nunca van a cambiar
Si se llama a amx_reloadadmins pueden cambiar.
__________________
Neeeeeeeeeel.- is offline
Send a message via Skype™ to Neeeeeeeeeel.-
Roccoxx
AlliedModders Donor
Join Date: Jan 2012
Location: Argentina
Old 08-15-2013 , 16:46   Re: [GUIA] Agregar Inmunidades en tipos de Admins
#10

esta buena la guia

yo recodearia todos los plugins default que vienen pero no tengo tiempo e.e, meteria todo en uno solo.
__________________

Last edited by Roccoxx; 08-15-2013 at 16:46.
Roccoxx is offline
Send a message via MSN to Roccoxx
 


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 15:39.


Powered by vBulletin®
Copyright ©2000 - 2020, vBulletin Solutions, Inc.
Theme made by Freecode