ADMIN MENU ZP por limite de tiempo ayuda pls
#1
Hola a todos, necesito ayuda, lo que pasa es que quiero ponerle un limite de tiempo al admin para que no abuse usando el admin menu en mi zombie plague 1.6.1 lo que quiero es que el admin cuando valla a:

Dar:
zombie/human
nemesis
survivor
sniper
assessin
revivir

iniciar mod:
swarm
armaggedon
multiple-infeccion
assessin vs sniper
modo plague

una ves usado el admin menu, tenga que esperar un determinado tiempo para volverlo a usar quisiera que fuera 200 segundos. me pueden ayudar por favor
[Imagen: 76561198133508672.png]
*Aprendiendo mas y mas* Excitedeyes *poco a poco* Whatever
Responder
#2
Tienes la simple opción de tomar el tiempo en el momento de que selecciona alguno de esos modos

Código PHP:
/* Returns system time in seconds elapsed since 00:00:00 on January 1, 1970. 
* Offset is given in seconds.*/

native get_systime(offset 0); 


Guarda el tiempo en alguna variable, y luego simplemente restringe si no pasaron los segundos que deseas.

Código PHP:
g_variableindex ] = get_systime( ) + 200;

if( 
g_variableindex ] > get_systime( ) )
    return; 

El problema que vas a tener, es que si el usuario se desconecta, y vos como un buen programador limpias la variable "g_variable", cuando ingrese nuevamente va a poder ingresar al menu (Retry)

Para ese caso te diria que uses tries

Saludos,
cLAANS.-
Mi unico plugin.
Tutorial de niveles.

Ayudo, pero no de la manera que quieren, si quieren aprender les servirá lo mio, para pedir el codigo en bandeja tienen la sección 'Pedidos'

(09/11/2017, 09:30 PM)SoundBlaster escribió: Espera y llamo a los power rangers para que me digan la linea de error
Responder
#3
Rainbow gracias Excitedeyes pense que era imposible pero lo intentare, el problema es que soy noob en eso de variables, tries, etc Cutecry Whatdone y la verdad no se donde agregar eso, osea voy al zm sma y en admin menu verdad? pero donde exactamente

PD: Quiero aprender, por favor Sonrisa
[Imagen: 76561198133508672.png]
*Aprendiendo mas y mas* Excitedeyes *poco a poco* Whatever
Responder
#4
https://amxmodx-es.com/Thread-Tries

Saludos,
cLAANS.-
Mi unico plugin.
Tutorial de niveles.

Ayudo, pero no de la manera que quieren, si quieren aprender les servirá lo mio, para pedir el codigo en bandeja tienen la sección 'Pedidos'

(09/11/2017, 09:30 PM)SoundBlaster escribió: Espera y llamo a los power rangers para que me digan la linea de error
Responder
#5
Muchas Gracias, lo intentare.
[Imagen: 76561198133508672.png]
*Aprendiendo mas y mas* Excitedeyes *poco a poco* Whatever
Responder
#6
hola amigos, ya conseguir la forma de limitar el admin menu no esta completa todavia tengo un problema pero estoy buscando la solucion :'v me he tardado mucho porque por mas que intento y intento no sirve como quiero, pero necesito que me ayuden con que el owner o el staff no tenga el limite, es decir solo lo tengan los admins normales. ayuda por favor Cutecry
[Imagen: 76561198133508672.png]
*Aprendiendo mas y mas* Excitedeyes *poco a poco* Whatever
Responder
#7
Código PHP:
if( g_variableindex ] > get_systime( ) && !( get_user_flagsindex ) & ADMIN_IMMUNITY ) )
    return; 

Saludos,
cLAANS.-
Mi unico plugin.
Tutorial de niveles.

Ayudo, pero no de la manera que quieren, si quieren aprender les servirá lo mio, para pedir el codigo en bandeja tienen la sección 'Pedidos'

(09/11/2017, 09:30 PM)SoundBlaster escribió: Espera y llamo a los power rangers para que me digan la linea de error
Responder
#8
Rainbow ok amigo lo intentare muchas gracias, tengo como 3 problemas para completar el admin menu limite el cual son:

1) el staff no tenga el limite (ya me diste la solucion, muchisimas gracias. ahora solo falta que yo lo haga correctamente Excitedeyes )

2) cuando el admin ingresa al admin menu y no lo cierra puede seguir usando los 3 menus dentro del admin menu el cual son:
- dar clase o revivir a alguien
-inciar un modo
-iniciar un modo personalizado

entonces lo que hice fue crear mas variables para cada menu, pero cuando da una clase (zombie, nemesis, survivor, assasin etc) y no cierra ese menu puede dar clases las veces que quiera en una ronda CLARO si cierra el menu y lo vuelve abrir le saldra el limite :/ entonces lo que quiero es que cuando de una clase y quiera dar la otra le salga el limite

con los otros 2 menus:
-inciar modo
-iniciar modo perzonalizado no hay problema por que si el admin usa ese menu ya no podra usarlo mas por que obviamente a lo que inicia el modo no puede usar mas el menu por que los modos se inician solo al inicio de la ronda entonces obviamente tendra que salir del menu para seguir jugando y a la otra ronda y ingrese a esos menus le saldra el limite. el problema esta con el primer menu lo he intentado agregar aqui:

Código PHP:
// Admin Menu
public menu_admin(idkey)
{
    static 
userflags
    userflags 
get_user_flags(id)
    
    switch (
key)
    {
        case 
ACTION_ZOMBIEFY_HUMANIZE// Zombiefy/Humanize command
        
{
            if (
userflags & (g_access_flag[ACCESS_MODE_INFECTION] | g_access_flag[ACCESS_MAKE_ZOMBIE] | g_access_flag[ACCESS_MAKE_HUMAN]))
            {
                
// Show player list for admin to pick a target
                
PL_ACTION ACTION_ZOMBIEFY_HUMANIZE
                show_menu_player_list
(id)
            }
            else
            {
                
zp_colored_print(id"^x04[ZP]^x01 %L"id"CMD_NOT_ACCESS")
                
show_menu_admin(id)
            }
        }
        case 
ACTION_MAKE_NEMESIS// Nemesis command
        
{
            if (
userflags & (g_access_flag[ACCESS_MODE_NEMESIS] | g_access_flag[ACCESS_MAKE_NEMESIS]))
            {
                
// Show player list for admin to pick a target
                
PL_ACTION ACTION_MAKE_NEMESIS
                show_menu_player_list
(id)
            }
            else
            {
                
zp_colored_print(id"^x04[ZP]^x01 %L"id"CMD_NOT_ACCESS")
                
show_menu_admin(id)
            }
        }
        case 
ACTION_MAKE_SURVIVOR// Survivor command
        
{
            if (
userflags & (g_access_flag[ACCESS_MODE_SURVIVOR] | g_access_flag[ACCESS_MAKE_SURVIVOR]))
            {
                
// Show player list for admin to pick a target
                
PL_ACTION ACTION_MAKE_SURVIVOR
                show_menu_player_list
(id)
            }
            else
            {
                
zp_colored_print(id"^x04[ZP]^x01 %L"id"CMD_NOT_ACCESS")
                
show_menu_admin(id)
            }
        }
        case 
ACTION_MAKE_SNIPER// Sniper command
        
{
            if (
userflags & (g_access_flag[ACCESS_MODE_SNIPER] | g_access_flag[ACCESS_MAKE_SNIPER]))
            {
                
// Show player list for admin to pick a target
                
PL_ACTION ACTION_MAKE_SNIPER
                show_menu_player_list
(id)
            }
            else
            {
                
zp_colored_print(id"^x04[ZP]^x01 %L"id"CMD_NOT_ACCESS")
                
show_menu_admin(id)
            }
        }
        case 
ACTION_MAKE_ASSASSIN// Assassin command
        
{
            if (
userflags & (g_access_flag[ACCESS_MODE_ASSASSIN] | g_access_flag[ACCESS_MAKE_ASSASSIN]))
            {
                
// Show player list for admin to pick a target
                
PL_ACTION ACTION_MAKE_ASSASSIN
                show_menu_player_list
(id)
            }
            else
            {
                
zp_colored_print(id"^x04[ZP]^x01 %L"id"CMD_NOT_ACCESS")
                
show_menu_admin(id)
            }
        }
        case 
ACTION_RESPAWN_PLAYER// Respawn command
        
{
            if (
userflags g_access_flag[ACCESS_RESPAWN_PLAYERS])
            {
                
// Show player list for admin to pick a target
                
PL_ACTION ACTION_RESPAWN_PLAYER
                show_menu_player_list
(id)
            }
            else
            {
                
zp_colored_print(id"^x04[ZP]^x01 %L"id"CMD_NOT_ACCESS")
                
show_menu_admin(id)
            }
        }
        case 
9// Chose to return
        
{
            
show_menu3_admin(id)
        }
    }
    return 
PLUGIN_HANDLED;
}

public 
menu2_admin(idkey)
{
    static 
userflags
    userflags 
get_user_flags(id)
    
    switch (
key)
    {
        case 
0// Multiple Infection command
        
{
            if (
userflags g_access_flag[ACCESS_MODE_MULTI])
            {
                if (
allowed_multi())
                    
command_multi(id)
                else
                    
zp_colored_print(id"^x04[ZP]^x01 %L"id"CMD_NOT")
            }
            else
                
zp_colored_print(id"^x04[ZP]^x01 %L"id"CMD_NOT_ACCESS")
            
            
show_menu2_admin(id)
        }
        case 
1// Swarm Mode command
        
{
            if (
userflags g_access_flag[ACCESS_MODE_SWARM])
            {
                if (
allowed_swarm())
                    
command_swarm(id)
                else
                    
zp_colored_print(id"^x04[ZP]^x01 %L"id"CMD_NOT")
            }
            else
                
zp_colored_print(id"^x04[ZP]^x01 %L"id"CMD_NOT_ACCESS")
            
            
show_menu2_admin(id)
        }
        case 
2// Plague Mode command
        
{
            if (
userflags g_access_flag[ACCESS_MODE_PLAGUE])
            {
                if (
allowed_plague())
                    
command_plague(id)
                else
                    
zp_colored_print(id"^x04[ZP]^x01 %L"id"CMD_NOT")
            }
            else
                
zp_colored_print(id"^x04[ZP]^x01 %L"id"CMD_NOT_ACCESS")
            
            
show_menu2_admin(id)
        }
        case 
3// Armageddon Mode command
        
{
            if (
userflags g_access_flag[ACCESS_MODE_LNJ])
            {
                if (
allowed_lnj())
                    
command_lnj(id)
                else
                    
zp_colored_print(id"^x04[ZP]^x01 %L"id"CMD_NOT")
            }
            else
                
zp_colored_print(id"^x04[ZP]^x01 %L"id"CMD_NOT_ACCESS")
            
            
show_menu2_admin(id)
        }
        case 
9// Chose to return
        
{
            
show_menu3_admin(id)
        }
    }
    return 
PLUGIN_HANDLED;



pero cuando lo agrego la variable y copilo y lo subo al sv y uso el menu 1 de dar clases y me doy zombie o nemesis, assasin, etc me sale el mensaje de limite pero aun asi usa el menu las veces que quiera es como si solo diera el mensaje por usa el comando pero no lo limita como tal Cutecry

entonces creo que ahi no, y lo quiero agregar aqui:

Código PHP:
// Player List Menu
public menu_player_list(idmenuiditem)
{
    
// Menu was closed
    
if (item == MENU_EXIT)
    {
        
menu_destroy(menuid)
        
show_menu_admin(id)
        return 
PLUGIN_HANDLED;
    }
    
    
// Retrieve player id
    
static buffer[2], dummyplayerid
    menu_item_getinfo
(menuiditemdummybuffercharsmax(buffer), __dummy)
    
playerid buffer[0]
    
    
// Perform action on player
    
    // Get admin flags
    
static userflags
    userflags 
get_user_flags(id)
    
    
// Make sure it's still connected
    
if (g_isconnected[playerid])
    {
        
// Perform the right action if allowed
        
switch (PL_ACTION)
        {
            case 
ACTION_ZOMBIEFY_HUMANIZE// Zombiefy/Humanize command
            
{
                if (
g_zombie[playerid])
                {
                    if (
userflags g_access_flag[ACCESS_MAKE_HUMAN])
                    {
                        if (
allowed_human(playerid))
                            
command_human(idplayerid)
                        else
                            
zp_colored_print(id"^x04[ZP]^x01 %L"id"CMD_NOT")
                    }
                    else
                        
zp_colored_print(id"^x04[ZP]^x01 %L"id"CMD_NOT_ACCESS")
                }
                else
                {
                    if (
g_newround ? (userflags g_access_flag[ACCESS_MODE_INFECTION]) : (userflags g_access_flag[ACCESS_MAKE_ZOMBIE]))
                    {
                        if (
allowed_zombie(playerid))
                            
command_zombie(idplayerid)
                        else
                            
zp_colored_print(id"^x04[ZP]^x01 %L"id"CMD_NOT")
                    }
                    else
                        
zp_colored_print(id"^x04[ZP]^x01 %L"id"CMD_NOT_ACCESS")
                }
            }
            case 
ACTION_MAKE_NEMESIS// Nemesis command
            
{
                if (
g_newround ? (userflags g_access_flag[ACCESS_MODE_NEMESIS]) : (userflags g_access_flag[ACCESS_MAKE_NEMESIS]))
                {
                    if (
allowed_nemesis(playerid))
                        
command_nemesis(idplayerid)
                    else
                        
zp_colored_print(id"^x04[ZP]^x01 %L"id"CMD_NOT")
                }
                else
                    
zp_colored_print(id"^x04[ZP]^x01 %L"id"CMD_NOT_ACCESS")
            }
            case 
ACTION_MAKE_SURVIVOR// Survivor command
            
{
                if (
g_newround ? (userflags g_access_flag[ACCESS_MODE_SURVIVOR]) : (userflags g_access_flag[ACCESS_MAKE_SURVIVOR]))
                {
                    if (
allowed_survivor(playerid))
                        
command_survivor(idplayerid)
                    else
                        
zp_colored_print(id"^x04[ZP]^x01 %L"id"CMD_NOT")
                }
                else
                    
zp_colored_print(id"^x04[ZP]^x01 %L"id"CMD_NOT_ACCESS")
            }
            case 
ACTION_MAKE_SNIPER// Sniper command
            
{
                if (
g_newround ? (userflags g_access_flag[ACCESS_MODE_SNIPER]) : (userflags g_access_flag[ACCESS_MAKE_SNIPER]))
                {
                    if (
allowed_sniper(playerid))
                        
command_sniper(idplayerid)
                    else
                        
zp_colored_print(id"^x04[ZP]^x01 %L"id"CMD_NOT")
                }
                else
                    
zp_colored_print(id"^x04[ZP]^x01 %L"id"CMD_NOT_ACCESS")
            }
            case 
ACTION_MAKE_ASSASSIN// Assassin command
            
{
                if (
g_newround ? (userflags g_access_flag[ACCESS_MODE_ASSASSIN]) : (userflags g_access_flag[ACCESS_MAKE_ASSASSIN]))
                {
                    if (
allowed_assassin(playerid))
                        
command_assassin(idplayerid)
                    else
                        
zp_colored_print(id"^x04[ZP]^x01 %L"id"CMD_NOT")
                }
                else
                    
zp_colored_print(id"^x04[ZP]^x01 %L"id"CMD_NOT_ACCESS")
            }
            case 
ACTION_RESPAWN_PLAYER// Respawn command
            
{
                if (
userflags g_access_flag[ACCESS_RESPAWN_PLAYERS])
                {
                    if (
allowed_respawn(playerid))
                        
command_respawn(idplayerid)
                    else
                        
zp_colored_print(id"^x04[ZP]^x01 %L"id"CMD_NOT")
                }
                else
                    
zp_colored_print(id"^x04[ZP]^x01 %L"id"CMD_NOT_ACCESS")
            }
        }
    }
    else
        
zp_colored_print(id"^x04[ZP]^x01 %L"id"CMD_NOT")
    
    
menu_destroy(menuid)
    
show_menu_player_list(id)
    return 
PLUGIN_HANDLED;



pero no se como xd no veo la forma :'v

y el otro problema es que los comandos zp es decir: zp_nemesis, zp_swarm, zp_plague, zp_zombie, etc. bueno cuando usan el admin menu y les sale el limite los admins pueden seguir usando los comandos zp en consola y quiero que los admins normales tengan limite con la misma variable que ya lo usaron en el admin menu, es decir. cuando usen admin menu y quieran usar esos comandos zp tambien salga de que ya lo uso por que ya uso el admin menu ps exepto a los staff y owners xd ellos si sin limite. espero me ayudes bro cLAANS Rainbow Cutecry

yo para medio resolver esto lo que hice fue bloquear el comando para admins normales y dejandolo para staf o owners, agregandole el acceso immunity solo para osea asi:

les bloquee el comando de respawn a los admins normales con la flagss "a" luego fui y le coloque el acceso respawn a todos los comandos zp asi solo lo usaran los staff o owners:


Código PHP:
// zp_zombie [target]
public cmd_zombie(idlevelcid)
{
    
// Check for access flag depending on the resulting action
    
if (g_newround)
    {
        
// Start Mode Infection
        
if (!cmd_access(idg_access_flag[ACCESS_RESPAWN_PLAYERS], cid2))
            return 
PLUGIN_HANDLED;
    }
    else
    {
        
// Make Zombie
        
if (!cmd_access(idg_access_flag[ACCESS_RESPAWN_PLAYERS], cid2))
            return 
PLUGIN_HANDLED;
    }
    
    
// Retrieve arguments
    
static arg[32], player
    read_argv
(1argcharsmax(arg))
    
player cmd_target(idarg, (CMDTARGET_ONLY_ALIVE CMDTARGET_ALLOW_SELF))
    
    
// Invalid target
    
if (!player) return PLUGIN_HANDLED;
    
    
// Target not allowed to be zombie
    
if (!allowed_zombie(player))
    {
        
client_print(idprint_console"[ZP] %L"id"CMD_NOT")
        return 
PLUGIN_HANDLED
    
}
    
    
command_zombie(idplayer)
    
    return 
PLUGIN_HANDLED;



que me dices, lo dejo asi o si me ayudarías agregarle la varible del limite del admin menu y que los staff y owners no tengan el limite ^-^
[Imagen: 76561198133508672.png]
*Aprendiendo mas y mas* Excitedeyes *poco a poco* Whatever
Responder
#9
(10/01/2019, 04:24 PM)cLAANS escribió:
Código PHP:
if( g_variableindex ] > get_systime( ) && !( get_user_flagsindex ) & ADMIN_IMMUNITY ) )
    return; 

Saludos,
cLAANS.-

muchas gracias amigo, me sirvio tu codigo, primero me dio errores pero pude solucionarlos:

Código PHP:
if( g_variableindex ] > get_systime( ) && !( get_user_flagsindex ) & ADMIN_IMMUNITY ) )
    return; 

----->

Código PHP:
if( g_mivariable[id] > ElLimite_LIMIT && !( get_user_flags(id) & ADMIN_IMMUNITY ) ) 

si el return, ni return plugin enabled ya que si hago esto me da error de else y si elimino el else pasara que cuando copile sin error y abro el menu me sale el mensaje de limite pero no limita como tal asi que lo agrege asi como lo ves que cambie, pero muchisimas gracias bro me sirvio de maravilla justo lo que quiera Rainbow Excitedeyes
[Imagen: 76561198133508672.png]
*Aprendiendo mas y mas* Excitedeyes *poco a poco* Whatever
Responder
#10
Fa amigo, tanto vas a escribir ...

1. Una vez que manden el modo, cerrales el menu entonces no van a poder seguir en ese menu "especial" ... o sino ejerce las condiciones en ese handler ...
2. Para los comandos de _swarm, zp_plague, zp_zomb .. etc, etc .. simplemente ejecuta las mismas acciones que estas haciendo en el handler de tu menú

Saludos,
cLAANS.-
Mi unico plugin.
Tutorial de niveles.

Ayudo, pero no de la manera que quieren, si quieren aprender les servirá lo mio, para pedir el codigo en bandeja tienen la sección 'Pedidos'

(09/11/2017, 09:30 PM)SoundBlaster escribió: Espera y llamo a los power rangers para que me digan la linea de error
Responder
#11
xD es que enserio que necesito ayuda Cutecry bueno lo importante amigo es que me ayudaste a quitarle el limite al staff o owner eso es lo mas importante Sonrisa muchísimas gracias broo Excitedeyes ahora en cuanto a eso 2 creo que lo he intentado y no me sale como es >_< pero lo intentare a ver graciaas
[Imagen: 76561198133508672.png]
*Aprendiendo mas y mas* Excitedeyes *poco a poco* Whatever
Responder
#12
(11/01/2019, 04:34 AM)cLAANS escribió: Fa amigo, tanto vas a escribir ...

1. Una vez que manden el modo, cerrales el menu entonces no van a poder seguir en ese menu "especial" ... o sino ejerce las condiciones en ese handler ...
2. Para los comandos de _swarm, zp_plague, zp_zomb .. etc, etc .. simplemente ejecuta las mismas acciones que estas haciendo en el handler de tu menú

Saludos,
cLAANS.-

como les cierro el menu una vez que ejerzan el comando? ya lo intente y no logre nada :/
[Imagen: 76561198133508672.png]
*Aprendiendo mas y mas* Excitedeyes *poco a poco* Whatever
Responder
#13
(11/01/2019, 04:34 AM)cLAANS escribió: Fa amigo, tanto vas a escribir ...

1. Una vez que manden el modo, cerrales el menu entonces no van a poder seguir en ese menu "especial" ... o sino ejerce las condiciones en ese handler ...
2. Para los comandos de _swarm, zp_plague, zp_zomb .. etc, etc .. simplemente ejecuta las mismas acciones que estas haciendo en el handler de tu menú

Saludos,
cLAANS.-

por favor amigo dime como cerrarles el menu, una vez que lo usen? pls
[Imagen: 76561198133508672.png]
*Aprendiendo mas y mas* Excitedeyes *poco a poco* Whatever
Responder
#14
Hola,mira esta respuesta, te puede servir:

https://amxmodx-es.com/Thread-entender-e...4#pid54314

En el segundo ejemplo tiene que esperar 20 segundos, tienes que modificar ese tiempo por el que vos quieras...
Responder
#15
(14/01/2019, 10:13 PM)warrior escribió: Hola,mira esta respuesta, te puede servir:

https://amxmodx-es.com/Thread-entender-e...4#pid54314

En el segundo ejemplo tiene que esperar 20 segundos, tienes que modificar ese tiempo por el que vos quieras...

hola amigo, si ya resolvi lo del tiempo. pero ahora quiero saber como cerrarles el menu una vez que usen el primer menu: dar zombie o revivir a alguien
[Imagen: 76561198133508672.png]
*Aprendiendo mas y mas* Excitedeyes *poco a poco* Whatever
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)