[ZA][SOLUCIONADO] Modificar Menu de Armas
#1
Hola, Tengo una duda, hace poco entre a un servidor zp el cual tiene el siguiente menu de armas:
[Imagen: 1246febcef04eb3a8b2ae7515dd66353o.jpg]

Yo tengo los siguientes menu
[Imagen: halflife00-1585493.jpg]
[Imagen: halflife01-1585495.jpg][Imagen: halflife02-1585496.jpg]

Tengo los menus separados y quisiera saber como dejarlo al menu como la primera foto que mostre, que muestre las armas primarias con sus niveles y luego las armas por level y reset aca dejo el codigo de mi menu:

Código PHP:
// Category Weapons Menu
show_menu_category(id)
{
    
// Player dead?
    
if (!g_isalive[id]) return;
    
    
// Zombies, survivors or wesker get no guns
    
if (g_class[id] >= SURVIVOR) return;
    
    
// Bots pick their weapons randomly / Random weapons setting enabled
    
if (get_pcvar_num(cvar_randweapons) || g_isbot[id])
    {
        
buy_primary_weapon(idrandom_num(0ArraySize(g_primary_items) - 1))
        
menu_buy2(idrandom_num(0ArraySize(g_secondary_items) - 1))
        return;
    }
    
    static 
lenuserflags
    len 
0
    userflags 
get_user_flags(id)
    
    
// Title
    
len += formatex(g_menu[len], charsmax(g_menu) - len"\wElegir \rarmas^n^n")
    
    
// 1. Category A
    
len += formatex(g_menu[len], charsmax(g_menu) - len"\y1.\w Arma Primaria \y[Nivel: 1 ~ %d]^n"g_max_level)
        
    
// 3. Category E
    
if (g_fame[id] >= g_fame_category[1] || (userflags g_access_flag[ACCESS_WEAPONS_FREE]))
        
len += formatex(g_menu[len], charsmax(g_menu) - len"\y2.\w Arma Especial \y[Fama: %d ~ %d]^n^n"g_fame_category[1], g_max_fame)
    else
        
len += formatex(g_menu[len], charsmax(g_menu) - len"\y2.\d Arma Especial \y[Fama: %d ~ %d]^n^n"g_fame_category[1], g_max_fame)
    
    
// Note - 0. Exit
    
len += formatex(g_menu[len], charsmax(g_menu) - len"\rNota: \wLas armas especiales hacen +50% daño^n^n\y0.\w Salir")
    
    
show_menu(idKEYSMENUg_menu, -1"Category Menu")
}

// Buy Menu 1
public show_menu_buy1(id)
{
    
// Player dead?
    
if (!g_isalive[id]) return;
    
    
// Zombies, survivors or wesker get no guns
    
if (g_class[id] >= SURVIVOR) return;
    
    static 
lenweapmaxloops
    len 
0
    maxloops 
min(WPN_STARTID+7WPN_MAXIDS)
    
    
// Title
    
len += formatex(g_menu[len], charsmax(g_menu) - len"\yArma Primaria^n^n"WPN_STARTID+1min(WPN_STARTID+7WPN_MAXIDS))
    
    
// 1-7. Weapon List
    
for (weap WPN_STARTIDweap maxloopsweap++)
    {
        if (
g_level[id] >= ArrayGetCell(g_primary_levelsweap) || (get_user_flags(id) & g_access_flag[ACCESS_WEAPONS_FREE]))
            
len += formatex(g_menu[len], charsmax(g_menu) - len"\r%d.\w %s (\yMin Nivel \w%d)^n"weap-WPN_STARTID+1WEAPONNAMES[ArrayGetCell(g_primary_weaponidsweap)], ArrayGetCell(g_primary_levelsweap))
        else
            
len += formatex(g_menu[len], charsmax(g_menu) - len"\r%d.\d %s (\rMin Nivel \w%d\d)^n"weap-WPN_STARTID+1WEAPONNAMES[ArrayGetCell(g_primary_weaponidsweap)], ArrayGetCell(g_primary_levelsweap))
    }
    
    
// 8. Back 9. Next - 0. Exit
    
len += formatex(g_menu[len], charsmax(g_menu) - len"^n\r8.\y Anterior^n\r9.\y Siguiente^n^n\r0.\y Salir")
    
    
show_menu(idKEYSMENUg_menu, -1"Buy Menu 1")

Código PHP:
// Buy Menu 1
public menu_buy1(idkey)
{
    
// Player dead?
    
if (!g_isalive[id]) return PLUGIN_HANDLED;
    
    
// Not normal human
    
if (g_class[id] >= SURVIVOR) return PLUGIN_HANDLED;
    
    
// Special keys / weapon list exceeded
    
if (key >= MENU_KEY_BACK || WPN_SELECTION >= WPN_MAXIDS)
    {
        switch (
key)
        {
            case 
MENU_KEY_BACK// back
            
{
                if (
WPN_STARTID->= 0WPN_STARTID -= 7
            
}
            case 
MENU_KEY_NEXT// next
            
{
                if (
WPN_STARTID+WPN_MAXIDSWPN_STARTID += 7
            
}
            case 
MENU_KEY_EXIT// exit
            
{
                return 
PLUGIN_HANDLED;
            }
        }
        
        
// Show buy menu again
        
show_menu_buy1(id)
        return 
PLUGIN_HANDLED;
    }
    
    
// Buy primary weapon
    
buy_primary_weapon(idWPN_SELECTION)
    
    return 
PLUGIN_HANDLED;
}

// Buy Primary Weapon
buy_primary_weapon(idselection)
{
    
// Get admin flags
    
static userflagsuserflags get_user_flags(id)
    
    
// Level required for get weapon
    
if (g_level[id] < ArrayGetCell(g_primary_levelsselection) && !(userflags g_access_flag[ACCESS_WEAPONS_FREE]))
    {
        if (
g_isbot[id] || get_pcvar_num(cvar_randweapons))
            
buy_primary_weapon(idrandom_num(0ArraySize(g_primary_items) - 1))
        else
            
show_menu_buy1(id)
        return 
PLUGIN_HANDLED;
    }
        
    
// Drop previous weapons
    
drop_weapons(id1)
    
drop_weapons(id2)
        
    
// Get weapon's id and name
    
static weaponidwname[32]
    
weaponid ArrayGetCell(g_primary_weaponidsselection)
    
ArrayGetString(g_primary_itemsselectionwnamecharsmax(wname))
        
    
// Give the new weapon and full ammo
    
give_item(idwname)
    
ExecuteHamB(Ham_GiveAmmoidMAXBPAMMO[weaponid], AMMOTYPE[weaponid], MAXBPAMMO[weaponid])
        
    
// Weapons bought
    
g_canbuy[id] = 1
        
    
// Give additional items
    
for (new 0ArraySize(g_additional_items); i++)
    {
        
ArrayGetString(g_additional_itemsiwnamecharsmax(wname))
        
        
// Level required for get weapon
        
if (g_level[id] >= ArrayGetCell(g_additional_levelsi) || (userflags g_access_flag[ACCESS_WEAPONS_FREE]))
            
give_item(idwname)
    }
    
    
// Show pistols menu
    
if (!g_isbot[id] && !get_pcvar_num(cvar_randweapons))
        
show_menu_buy2(id)
            
    return 
PLUGIN_HANDLED;

Código PHP:
// Special Category Menu
show_menu_special(id)
{
    
// Player dead?
    
if (!g_isalive[id]) return;
    
    
// Zombies, survivors or wesker get no guns
    
if (g_class[id] >= SURVIVOR) return;
    
    static 
wpnname[32], lenweapmaxloops
    len 
0
    maxloops 
ArraySize(g_special_names), min(WPN_STARTID+7WPN_MAXIDS)
    
    
// Title
    
len += formatex(g_menu[len], charsmax(g_menu) - len"\yCategoria E - Arma Especiales^n^n"WPN_STARTID+1min(WPN_STARTID+7WPN_MAXIDS))
    
    
// 1-7. Weapon List
    
for (weap WPN_STARTIDweap maxloopsweap++)
    {
        
ArrayGetString(g_special_namesweapwpnnamecharsmax(wpnname))
        if (
g_level[id] >= ArrayGetCell(g_special_levelsweap) && g_fame[id] >= armas_reset[weap] || (get_user_flags(id) & g_access_flag[ACCESS_WEAPONS_FREE]))
            
len += formatex(g_menu[len], charsmax(g_menu) - len"\r%d.\w %s [\yDisponible\w]^n"weap-WPN_STARTID+1wpnname)
        else
            
len += formatex(g_menu[len], charsmax(g_menu) - len"\r%d.\d %s [\rNivel \w%d\d][\rReset: \w%d\d]^n"weap-WPN_STARTID+1wpnnameArrayGetCell(g_special_levelsweap), armas_reset[weap])
    }
            
    
// 8. Back 9. Next - 0. Exit
    
len += formatex(g_menu[len], charsmax(g_menu) - len"^n\r8.\y Anterior^n\r9.\y Siguiente^n^n\r0.\y Salir")
    
    
show_menu(idKEYSMENUg_menu, -1"Special Menu")

Código PHP:
// Special Category Menu
public menu_special(idkey)
{
    
// Player dead?
    
if (!g_isalive[id]) return PLUGIN_HANDLED;
    
    
// Not normal human
    
if (g_class[id] >= SURVIVOR) return PLUGIN_HANDLED;
    
    
// Special keys / weapon list exceeded
    
if (key >= ArraySize(g_special_names) && MENU_KEY_BACK || WPN_SELECTION >= WPN_MAXIDS)
    {
        switch (
key)
        {
            case 
MENU_KEY_BACK// back
            
{
                if (
WPN_STARTID->= 0WPN_STARTID -= 7
            
}
            case 
MENU_KEY_NEXT// next
            
{
                if (
WPN_STARTID+WPN_MAXIDSWPN_STARTID += 7
            
}
            case 
MENU_KEY_EXIT// exit
            
{
                return 
PLUGIN_HANDLED;
            }
        }
        
        
// Show buy menu again
        
show_menu_special(id)
        
        return 
PLUGIN_HANDLED;
    }
    
    
// Level required for get weapon
    
if (g_level[id] < ArrayGetCell(g_special_levelskey) && !(get_user_flags(id) & g_access_flag[ACCESS_WEAPONS_FREE]))
    {
        
show_menu_special(id)
        return 
PLUGIN_HANDLED;
    }
    
    
// Reset required for get weapon
    
if (g_fame[id] < armas_reset[key] && !(get_user_flags(id) & g_access_flag[ACCESS_WEAPONS_FREE]))
    {
        
show_menu_special(id)
        return 
PLUGIN_HANDLED;
    }
        
    
// Drop previous weapons
    
drop_weapons(id1)
    
drop_weapons(id2)
        
    switch (
key)
    {
        case 
0:
        {
            
g_superdeagle[id] = true
            give_item
(id"weapon_deagle")
            
ExecuteHamB(Ham_GiveAmmoidMAXBPAMMO[CSW_DEAGLE], AMMOTYPE[CSW_DEAGLE], MAXBPAMMO[CSW_DEAGLE])
        }
        case 
1:
        {
            
g_superm249[id] = true
            give_item
(id"weapon_m249")
            
ExecuteHamB(Ham_GiveAmmoidMAXBPAMMO[CSW_M249], AMMOTYPE[CSW_M249], MAXBPAMMO[CSW_M249])
        }
        case 
2..4:
        {
            
g_specialawp[id] = key 1
            give_item
(id"weapon_awp")
            
ExecuteHamB(Ham_GiveAmmoidMAXBPAMMO[CSW_AWP], AMMOTYPE[CSW_AWP], MAXBPAMMO[CSW_AWP])
        }
    }
    
    
// Weapons bought, can't buy secondary weapon
    
g_canbuy[id] = 2
    
    
// Show pistols menu
    
if (!g_isbot[id] && !get_pcvar_num(cvar_randweapons))
        
show_menu_buy2(id)
            
    return 
PLUGIN_HANDLED;


[SOLUCION] : Elimine todo el menu y categorias default del za y lo cambie por este menu de armas ZP Armas por level y rr pacman C&P
Responder
#2
Alguien podria ayudarme?
Responder
#3
https://amxmodx-es.com/Thread-ZP-Armas-p...y-rr-v-C-P

Fijate si te sirve...

Es exactamente lo que vos pediis, solo tenes que reemplazar los menus. y agregar las awp de fuego / hielo / thunder
Responder
#4
(31/12/2015, 06:35 PM)Soy nuevo escribió: https://amxmodx-es.com/Thread-ZP-Armas-p...y-rr-v-C-P

Fijate si te sirve...

Es exactamente lo que vos pediis, solo tenes que reemplazar los menus. y agregar las awp de fuego / hielo / thunder

Intente adaptar ese menu al ZA y me tira errores :/
Responder
#5
Me pasarias el .sma
“Quien te quiere en su vida, volverá a buscarte”
Qué frase más estúpida
Porque quien te quiere en su vida, jamás se iría.
Responder
#6
ALTO UN MOMENTO ESTE EL EL ZOMBIE APOCALYPSE 4.0 CREO YO BUENO LA VERDAD E INTENTADO HACER CON RESET PERO NO ME FUNCIONA SIGUIENDO TU PASO Y ME SALEN ERRORES
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)