Mensajes: 68
Temas: 13
Registro en: Jul 2016
Reputación:
0
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
*Aprendiendo mas y mas* *poco a poco*
Mensajes: 1,182
Temas: 18
Registro en: Oct 2013
Reputación:
16
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_variable[ index ] = get_systime( ) + 200;
if( g_variable[ index ] > 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
Mensajes: 68
Temas: 13
Registro en: Jul 2016
Reputación:
0
14/12/2018, 06:21 PM
(Última modificación: 14/12/2018, 06:31 PM por arsenio. Edited 1 time in total.)
gracias pense que era imposible pero lo intentare, el problema es que soy noob en eso de variables, tries, etc 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
*Aprendiendo mas y mas* *poco a poco*
Mensajes: 1,182
Temas: 18
Registro en: Oct 2013
Reputación:
16
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
Mensajes: 68
Temas: 13
Registro en: Jul 2016
Reputación:
0
Muchas Gracias, lo intentare.
*Aprendiendo mas y mas* *poco a poco*
Mensajes: 68
Temas: 13
Registro en: Jul 2016
Reputación:
0
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
*Aprendiendo mas y mas* *poco a poco*
Mensajes: 1,182
Temas: 18
Registro en: Oct 2013
Reputación:
16
Código PHP: if( g_variable[ index ] > get_systime( ) && !( get_user_flags( index ) & 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
Mensajes: 68
Temas: 13
Registro en: Jul 2016
Reputación:
0
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 )
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(id, key) { 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(id, key) { 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
entonces creo que ahi no, y lo quiero agregar aqui:
Código PHP: // Player List Menu public menu_player_list(id, menuid, item) { // Menu was closed if (item == MENU_EXIT) { menu_destroy(menuid) show_menu_admin(id) return PLUGIN_HANDLED; } // Retrieve player id static buffer[2], dummy, playerid menu_item_getinfo(menuid, item, dummy, buffer, charsmax(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(id, playerid) 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(id, playerid) 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(id, playerid) 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(id, playerid) 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(id, playerid) 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(id, playerid) 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(id, playerid) 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
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(id, level, cid) { // Check for access flag depending on the resulting action if (g_newround) { // Start Mode Infection if (!cmd_access(id, g_access_flag[ACCESS_RESPAWN_PLAYERS], cid, 2)) return PLUGIN_HANDLED; } else { // Make Zombie if (!cmd_access(id, g_access_flag[ACCESS_RESPAWN_PLAYERS], cid, 2)) return PLUGIN_HANDLED; } // Retrieve arguments static arg[32], player read_argv(1, arg, charsmax(arg)) player = cmd_target(id, arg, (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(id, print_console, "[ZP] %L", id, "CMD_NOT") return PLUGIN_HANDLED } command_zombie(id, player) 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 ^-^
*Aprendiendo mas y mas* *poco a poco*
Mensajes: 68
Temas: 13
Registro en: Jul 2016
Reputación:
0
(10/01/2019, 04:24 PM)cLAANS escribió: Código PHP: if( g_variable[ index ] > get_systime( ) && !( get_user_flags( index ) & ADMIN_IMMUNITY ) ) return;
Saludos,
cLAANS.-
muchas gracias amigo, me sirvio tu codigo, primero me dio errores pero pude solucionarlos:
Código PHP: if( g_variable[ index ] > get_systime( ) && !( get_user_flags( index ) & 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
*Aprendiendo mas y mas* *poco a poco*
Mensajes: 1,182
Temas: 18
Registro en: Oct 2013
Reputación:
16
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
Mensajes: 68
Temas: 13
Registro en: Jul 2016
Reputación:
0
xD es que enserio que necesito ayuda bueno lo importante amigo es que me ayudaste a quitarle el limite al staff o owner eso es lo mas importante muchísimas gracias broo ahora en cuanto a eso 2 creo que lo he intentado y no me sale como es >_< pero lo intentare a ver graciaas
*Aprendiendo mas y mas* *poco a poco*
Mensajes: 68
Temas: 13
Registro en: Jul 2016
Reputación:
0
(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 :/
*Aprendiendo mas y mas* *poco a poco*
Mensajes: 68
Temas: 13
Registro en: Jul 2016
Reputación:
0
(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
*Aprendiendo mas y mas* *poco a poco*
Mensajes: 546
Temas: 65
Registro en: Jan 2017
Reputación:
4
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...
Mensajes: 68
Temas: 13
Registro en: Jul 2016
Reputación:
0
(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
*Aprendiendo mas y mas* *poco a poco*
|