Enviar respuesta 
[ZP] [TUT] Menu de Bombas por lvl
Autor Mensaje
Evil Spiret Sin conexión
Miembro Sr.


Mensajes: 578
Registro en: Dec 2013
Reputación: 12
Mensaje: #1
[ZP] [TUT] Menu de Bombas por lvl
Hola chicos estaba al pedo , y mi zp no tenia un menu de bombas ; me base en otro sistema , pero arme este ;

Cambie unas pequeñas cosillas que estaban al pedo y mal ; Actualizacion 04/05/2014
Dejo otro sistema aun mejor ; Actualizacion 02/07/2014

1er sistema
Vamos a
Código PHP:
// Give the new weapon with full ammo 

Debajo de
Código PHP:
fm_set_user_bpammo(idweaponidMAXBPAMMO[weaponid]) 

ponemos...
Código PHP:
show_menu_granades(id

En donde quieran colocan esto...
Código PHP:
public show_menu_granades(id
{   
    
    new 
menu menu_create("\rMenu de Bombas""menu_handler")  
     
    if(
g_level[id] <= 0)  // Lvl necesario
    
{  
        
menu_additem(menu"\r ^n\d\y|1\w Bomba Flare \d\y|1\w Bomba Hielo\y||\w \d \r[Min Lvl 1]""1"0)  
    }  
    else if (
g_level[id] >= 0)  
    {  
        
menu_additem(menu"\r \w\y|1\w Bomba Flare \w\y|1\w Bomba Hielo\y||\w \w""1"0)  
    }  
    if(
g_level[id] <= 25)  
    {  
        
menu_additem(menu"\r \d\y|1\w Bomba Molotov \d\y|2\w Bomba Hielo\y||\w \d \r[Min Lvl 25]""2"0)  
    }  
    else if (
g_level[id] >= 25)   
    {  
        
menu_additem(menu"\r \w\y|1\w Bomba Molotov \w\y|2\w Bomba Hielo\y||\w \w""2"0)  
    }  
    if(
g_level[id] <= 40)  
    {  
        
menu_additem(menu"\r \d\y|2\w Bomba Molotov \d\y|1\w Bomba Droga \d\y|1\w\y||\w \r[Min Lvl 50]""3"0)  
    }  
    if(
g_level[id] >= 40)  
    {  
        
menu_additem(menu"\r \w\y|2\w Bomba Molotov \w\y|\w1 Bomba Droga \w\y|1\w\y||\w""3"0)  
    }  
    if(
g_level[id] <= 100)  
    {  
        
menu_additem(menu"\r \d\y|2\w Bomba Molotov \d\y|\w2 Bomba Droga \d\y|\w1 Campo de Fuerza\y||\w \r[Min Lvl 500]""4"0)  
    }  
    else if (
g_level[id] >= 100)  
    {  
        
menu_additem(menu"\r \w\y|2\w Bomba Molotov \w\y|2\w Bomba Droga \w\y|1\w Campo de Fuerza\y||\w""4"0)  
    }  
      
    
    
menu_display(idmenu0)  
}  

public 
menu_handler(idmenuitem)  
{  
    if (
item == MENU_EXIT)  
    {  
        
menu_destroy(menu)  
        return 
PLUGIN_HANDLED  
    
}  
     
    if(
g_zombie[id])  
    {  
        
menu_destroy(menu)  
        return 
PLUGIN_HANDLED  
    
}  
     
    new 
data[6], iName[64]  
    new 
accesscallback  
    menu_item_getinfo
(menuitemaccessdata,5iName63callback)  
    new 
key str_to_num(data)  
     
        switch(
key)  
        {      
            case 
1:  
            {  
                if (
g_level[id] >= 0)  // Level Necesario para elegir este pack
                
{  
                    
fm_give_item(id"weapon_hegrenade")  
          
fm_give_item(id"weapon_flashbang"
                
                     
                }  
            }  
            case 
2:  
            {  
                if (
g_level[id] >= 25)  
                {  
                    
fm_give_item(id"weapon_hegrenade")  
                    
fm_give_item(id"weapon_flashbang"
                    
fm_give_item(id"weapon_flashbang")  
                 
                }  else 
                    
zp_colored_print(id"No tienes nivel suficiente para este pack de bombas"
            }  
            case 
3:  
            {  
                if (
g_level[id] >= 40)  
                {  
                    
fm_give_item(id"weapon_hegrenade")  
                    
fm_give_item(id"weapon_hegrenade")  
                    
fm_give_item(id"weapon_flashbang")    
                     
                }else 
                    
zp_colored_print(id"No tienes nivel suficiente para este pack de bombas")  
            }  
            case 
4:  
            {  
                if (
g_level[id] >= 100)  
                {  
                    
fm_give_item(id"weapon_hegrenade")  
                    
fm_give_item(id"weapon_hegrenade")   
                    
fm_give_item(id"weapon_flashbang")  
          
fm_give_item(id"weapon_flashbang")   
          
fm_give_item(id"weapon_smokegrenade")    
                } else 
                    
zp_colored_print(id"No tienes nivel suficiente para este pack de bombas"
            
        
        }  
        }  
    }  
    return 
PLUGIN_HANDLED  


Haaa, Olvide algo ; Para sacar las granadas que te da cuando elejis las pistolitas

Borramos
Código PHP:
// Give additional items  
static i  
for (0sizeof g_additional_itemsi++)  
    
fm_give_item(idg_additional_items[i])  


Y borramos
Código PHP:
// Additional Items to give after buying all weapons (e.g. grenades)  
new const g_additional_items[][] = { "weapon_hegrenade""weapon_flashbang""weapon_smokegrenade" 

2do sistema
Aca dejo una mejor forma
El plugin es de 3mcy daimon't

Código PHP:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <fun>
#include <cstrike>

#define PLUGIN "Menu de bombas"
#define VERSION "1.0"
#define AUTHOR "---"

enum _:menu_nades {
    
nombre[33],
    
cantidad1,
    
cantidad2,
    
cantidad3,
    
nivel
}

new const 
nades[][menu_nades] = {
    {
"+ 1 HE | + 1 Flash | + 1 Smoke"111},
    {
"+ 2 HE | + 2 Flash | + 2 Smoke"222},
    {
"+ 3 HE | + 3 Flash | + 3 Smoke"33310},
    {
"+ 4 HE | + 4 Flash | + 4 Smoke"44415},
    {
"+ 5 HE | + 5 Flash | + 5 Smoke"55520}
}

public 
plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
register_clcmd("say /bombas""show_menu_granadas")
}

public 
show_menu_granadas(id) {    
    new 
menu menu_create("\wMenu de bombas""menu_bombas_handler"

    new 
num[3], len[1024]
    for (new 
0sizeof nadesi++) {
    
num_to_str(inum2)
    if(
variable_nivel[id] >= nades[i][nivel]) 
    
formatex(lensizeof len 1"\y [\w%s\y]" nades[i][nombre])
    else 
formatex(lensizeof len 1"\d [%s] \r[Nivel: %d]" nades[i][nombre] , nades[i][nivel])
    
menu_additem(menulennum)
}

    
menu_setprop(menuMPROP_BACKNAME"\yAtras"
    
menu_setprop(menuMPROP_NEXTNAME"\ySiguiente"
    
menu_setprop(menuMPROP_EXITNAME"\ySalir"
    
menu_display(idmenu0
}

public 
menu_bombas_handler(idmenuitem) {
    if(
item == MENU_EXIT || !is_user_connected(id)) { 
        
menu_destroy(menu
        return 
PLUGIN_HANDLED 
    

    
    if(
variable_nivel[id] < nades[item][nivel]) {    
        
print_color(id"Para este pack tu nivel debe ser:^x04 %d."nades[item][nivel])
        
show_menu_granadas(id)
        return 
PLUGIN_HANDLED;
    }

    
give_item(id"weapon_hegrenade")
    
cs_set_user_bpammo(idCSW_HEGRENADEnades[item][cantidad1])
    
give_item(id"weapon_flashbang")
    
cs_set_user_bpammo(idCSW_FLASHBANGnades[item][cantidad2])
    
give_item(id"weapon_smokegrenade")
    
cs_set_user_bpammo(idCSW_SMOKEGRENADEnades[item][cantidad3])

    
menu_destroy(menu)
    return 
PLUGIN_CONTINUE;
}

stock print_color(id, const mensaje[], any:...) {//Stock para mensajes de color
    
static buffer[128]
    
vformat(buffercharsmax(buffer), mensaje3)

    
    
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _id)
    
write_byte(id)
    
write_string(buffer)
    
message_end()


3er sistema
Arriba del plugin esto
Código PHP:
new const GRANADAS[][] =
{
    
"1 FUEGO - 1 HIELO - 1 LUZ",
    
"2 FUEGO - 1 HIELO - 1 LUZ",
    
"1 FUEGO - 2 HIELO - 1 LUZ",
    
"2 FUEGO - 1 HIELO - 3 LUZ",
    
"1 FUEGO - 1 LUZ - 1 BUBBLE",
    
"2 FUEGO - 2 LUZ - 2 BUBBLE"
}


new const 
GRANADAS_NIVEL[] =
{
    
1,
    
25,
    
40,
    
60,
    
90,
    
150
}

new const 
GRANADAS_1[] =
{
    
1,
    
2,
    
1,
    
2,
    
1,
    
2
}
new const 
GRANADAS_2[] =
{
    
1,
    
1,
    
2,
    
1,
    
1,
    
2
}
new const 
GRANADAS_3[] =
{
    
1,
    
1,
    
1,
    
3,
    
1,
    
2


Abajo de todo el public show_menu_buy2(id)
Código PHP:
show_menu_buy3(id)
{
    static 
menu[400], len
    len 
0
    
    
// Title
    
len += formatex(menu[len], sizeof menu len"\wMENU DE \rGRANADAS^n^n")


    for (new 
06i++)    
    {
        if(
g_nivel[id] >= GRANADAS_NIVEL[i])
            
len += formatex(menu[len], charsmax(menu) - len"\r%d.\w %s \y[Nivel: %d]^n"i+1GRANADAS[i], GRANADAS_NIVEL[i])        
        else
            
len += formatex(menu[len], charsmax(menu) - len"\r%d.\d %s [Nivel: %d]^n"i+1GRANADAS[i], GRANADAS_NIVEL[i])
    }
    
    
// 8. Auto Select
    
len += formatex(menu[len], sizeof menu len"^n\r8.\w %L \y[%L]"id"MENU_AUTOSELECT"id, (WPN_AUTO_ON) ? "MOTD_ENABLED" "MOTD_DISABLED")    
    
    
// 0. Exit
    
len += formatex(menu[len], sizeof menu len"^n^n\r0.\w %L"id"MENU_EXIT")
    
    
show_menu(idKEYSMENUmenu, -1"Buy Menu 3")
    
    return 
PLUGIN_HANDLED


Arriba de public menu_extras(id, key)
Código PHP:
public menu_buy3(idkey)
{
    
// Zombies or survivors get no guns
    
if (g_zombie[id] || g_survivor[id] || !is_user_alive(id))
        return 
PLUGIN_HANDLED;            
        
    
// Special keys / weapon list exceeded
    
if (key >= 7)
    {
        
// Toggle autoselect
        
if (key == MENU_KEY_AUTOSELECT)
            
WPN_AUTO_ON WPN_AUTO_ON
        
        
// Reshow menu unless user exited
        
if (key != MENU_KEY_EXIT)
            
show_menu_buy3(id)
        
        return 
PLUGIN_HANDLED;
    }
    
    if(
g_nivel[id] >= GRANADAS_NIVEL[key])
    {        
        
fm_give_item(id"weapon_hegrenade")
        
fm_give_item(id"weapon_flashbang")
        
fm_give_item(id"weapon_smokegrenade")
        
        
fm_set_user_bpammo(idCSW_HEGRENADEGRANADAS_1[key])
        
fm_set_user_bpammo(idCSW_FLASHBANGGRANADAS_2[key])
        
fm_set_user_bpammo(idCSW_SMOKEGRENADEGRANADAS_3[key])
            
            
// Para Agregar Alguna Bomba En Especial Agrégale La Variable Ay
/*
        if(key == 4 || key == 5) // Setear variable campo de fuerza
            g_granada_smoke[id] = 1    */
    
    
}
    else
    {
        
zp_colored_print(id"^x04[ZP PSA] ^x01No tenes nivel suficiente para ese ^x03Pack de Granadas.")
        
show_menu_buy3(id)
        return 
PLUGIN_HANDLED;        
    }
    
    return 
PLUGIN_HANDLED;


Ahora registramos el menu en public plugin_init()
Código PHP:
register_menu("Buy Menu 3"KEYSMENU"menu_buy3"

NUEVO ZOMBIE PLAGUE + LVLS!! UNETE A LA COMUNIDAD
Image
(Este mensaje fue modificado por última vez en: 02/07/2014 04:47 PM por Evil Spiret.)
09/03/2014 12:50 AM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
roccoxx Sin conexión
Miembro Destacado


Plugin developer Trebol purpura 1k
Mensajes: 1,159
Registro en: Oct 2013
Reputación: 18
Mensaje: #2
RE: ZP TUT Menu de Bombas por lvl
Quedaria mejor un menu con un loop.

Si vas a dejar un codigo para un tutorial o guia hacelo apto para que lo puedan adaptar no digas: "los bomb droga y molotov borrenlos"...

futuro ingeniero agrónomo.

tutoriales-allied
buscas un zp?

"La imitación es la forma más sincera de admiración con la que puede pagar la mediocridad a la grandeza"

volví a vender plugins, contactame
09/03/2014 12:56 AM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Evil Spiret Sin conexión
Miembro Sr.


Mensajes: 578
Registro en: Dec 2013
Reputación: 12
Mensaje: #3
RE: [ZP] [TUT] Menu de Bombas por lvl
(09/03/2014 12:56 AM)roccoxx escribió:  Quedaria mejor un menu con un loop.

Si vas a dejar un codigo para un tutorial o guia hacelo apto para que lo puedan adaptar no digas: "los bomb droga y molotov borrenlos"...
Pone la forma con el loop , asi queda para el que le guste de una forma o la otra ; te lo agradeceria

tenI Razon , Hay Edito

saludos

NUEVO ZOMBIE PLAGUE + LVLS!! UNETE A LA COMUNIDAD
Image
(Este mensaje fue modificado por última vez en: 09/03/2014 01:25 AM por Evil Spiret.)
09/03/2014 01:23 AM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
UnrealT Sin conexión
Miembro Destacado


Mensajes: 788
Registro en: Nov 2013
Reputación: 11
Mensaje: #4
RE: [ZP] [TUT] Menu de Bombas por lvl
2 cosas , esto no es un tutorial aqui no explicas nada y lo segundo , porque pones un print diciendo que no tiene el nivel necesario si esta echo por ammopacks?
09/03/2014 01:28 AM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Evil Spiret Sin conexión
Miembro Sr.


Mensajes: 578
Registro en: Dec 2013
Reputación: 12
Mensaje: #5
RE: [ZP] [TUT] Menu de Bombas por lvl
(09/03/2014 01:28 AM)UnrealT escribió:  2 cosas , esto no es un tutorial aqui no explicas nada y lo segundo , porque pones un print diciendo que no tiene el nivel necesario si esta echo por ammopacks?

Ahora me voy a dormir , mañana explico todo y por lo otro , revisa que pide tantos APS para elejir las bombas

Ejemplo
en const NIVELES ; 3500 , 4000 , 10000

En el menu le pones para que pida 10mil aps , teniendo 10mil aps serias lvl 3.
Si no sos lvl 3 , cuando elijas te dira que no tienes lvl suficiente.

Si , lo se un poco fea la forma , pero asi lo pense jaja
PD : Si tienen ganas de mejorarlo , aganlo ami no me molesta para nada , es mas me gustaria que lo mejoraran.

saludos

NUEVO ZOMBIE PLAGUE + LVLS!! UNETE A LA COMUNIDAD
Image
(Este mensaje fue modificado por última vez en: 09/03/2014 01:36 AM por Evil Spiret.)
09/03/2014 01:32 AM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Kane Sin conexión
Miembro Sr.


Mensajes: 532
Registro en: Feb 2014
Reputación: 17
Mensaje: #6
RE: [ZP] [TUT] Menu de Bombas por lvl
Muy fea la forma de chequear, y no creo q nadie tenga meno de 0 ammopacks.-

Nunca dijiste que es
Código PHP:
g_costgrenade[item

Como dijo neeeeel una vez(creo q fue el), si estas al pedo lee un libro no pongas cosas con errores para crear confusión. Igual se agradece que intentes aportar algo.

(19/06/2014 11:08 PM)01011001 escribió:  No tiene niveles infinitos, llega hasta 2147483648 (Y despues hace un integer overflow)

(19/06/2014 11:08 PM)[R]ak escribió:  Mis conocimientos aumentaron un 500% con este post
09/03/2014 02:14 AM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
3mcy daimon't Sin conexión
Miembro


Mensajes: 219
Registro en: Nov 2013
Reputación: 1
Mensaje: #7
RE: [ZP] [TUT] Menu de Bombas por lvl
ese menu de bombas no lo armaste tu ya que esta en un thread del AM antiguo deverias cambiarlo por menu con loop y el case te puedes ahorrar artas lineas editando un par de cosas

Sistema de Logros v2.0 + Guardado

He vuelto... esta vez con mas ganas de ayudar que nunca!
09/03/2014 07:03 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
RauliTop Sin conexión
Miembro Héroe


El protector 1k
Mensajes: 1,961
Registro en: Oct 2013
Reputación: 36
Mensaje: #8
RE: [ZP] [TUT] Menu de Bombas por lvl
Código PHP:
if(g_ammopacks[id] <= 0// si es menor o igual a 0
else if (g_ammopacks[id] >= 0// si es mayor o igual a 0 

simplemente ese else if no es necesario

-->
Código PHP:
if(g_ammopacks[id] <= 0// si es menor o igual a 0
else // si es mayor a 0 

otra cosa, esa no es forma de dar granadas...
Código PHP:
fm_give_item(id"weapon_hegrenade")  
fm_give_item(id"weapon_hegrenade"
tienes que hacer que solo se llame 1 vez a fm_give_item (give_item es mejor, pero bueno...) y después utiliza cs_set_user_bpammo para darle más de 1 granada

Código PHP:
new costo g_costgrenade[item// ??
if(g_ammopacks[id] >= costo// ??????
zp_colored_print(id"No tienes nivel suficiente para este pack de bombas"// ???????????? 
que cojones es todo eso? no pongo más interrogantes porque me cansé

si no saben hacer tutoriales, ni se esfuercen, ya me tienen harto, reportado

(17/04/2015 03:36 PM)Neeeeeeeeeel.- escribió:  No se va a volver a conectar a internet en toda su puta vida... nadie sube porno a mi foro y vive para contarlo.
(Este mensaje fue modificado por última vez en: 10/03/2014 12:16 PM por RauliTop.)
10/03/2014 12:11 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
LNATIC Sin conexión
Miembro


Mensajes: 161
Registro en: Oct 2013
Reputación: 6
Mensaje: #9
RE: [ZP] [TUT] Menu de Bombas por lvl
(10/03/2014 12:11 PM)RauliTop escribió:  tienes que hacer que solo se llame 1 vez a fm_give_item (give_item es mejor, pero bueno...)

Porqué es mejor? Huh
10/03/2014 03:26 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
3mcy daimon't Sin conexión
Miembro


Mensajes: 219
Registro en: Nov 2013
Reputación: 1
Mensaje: #10
RE: [ZP] [TUT] Menu de Bombas por lvl
es mejor give_item (fun) por que mismo RauliTop me dijo que fakemeta_util (fm_give_item) consume mas recursos

Sistema de Logros v2.0 + Guardado

He vuelto... esta vez con mas ganas de ayudar que nunca!
(Este mensaje fue modificado por última vez en: 10/03/2014 03:38 PM por 3mcy daimon't.)
10/03/2014 03:38 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