Hola, Tengo una duda, hace poco entre a un servidor zp el cual tiene el siguiente menu de armas:
Yo tengo los siguientes menu
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:
[SOLUCION] : Elimine todo el menu y categorias default del za y lo cambie por este menu de armas ZP Armas por level y rr C&P
Yo tengo los siguientes menu
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(id, random_num(0, ArraySize(g_primary_items) - 1))
menu_buy2(id, random_num(0, ArraySize(g_secondary_items) - 1))
return;
}
static len, userflags
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(id, KEYSMENU, g_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 len, weap, maxloops
len = 0
maxloops = min(WPN_STARTID+7, WPN_MAXIDS)
// Title
len += formatex(g_menu[len], charsmax(g_menu) - len, "\yArma Primaria^n^n", WPN_STARTID+1, min(WPN_STARTID+7, WPN_MAXIDS))
// 1-7. Weapon List
for (weap = WPN_STARTID; weap < maxloops; weap++)
{
if (g_level[id] >= ArrayGetCell(g_primary_levels, weap) || (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+1, WEAPONNAMES[ArrayGetCell(g_primary_weaponids, weap)], ArrayGetCell(g_primary_levels, weap))
else
len += formatex(g_menu[len], charsmax(g_menu) - len, "\r%d.\d %s (\rMin Nivel \w%d\d)^n", weap-WPN_STARTID+1, WEAPONNAMES[ArrayGetCell(g_primary_weaponids, weap)], ArrayGetCell(g_primary_levels, 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(id, KEYSMENU, g_menu, -1, "Buy Menu 1")
}
Código PHP:
// Buy Menu 1
public menu_buy1(id, key)
{
// 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-7 >= 0) WPN_STARTID -= 7
}
case MENU_KEY_NEXT: // next
{
if (WPN_STARTID+7 < WPN_MAXIDS) WPN_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(id, WPN_SELECTION)
return PLUGIN_HANDLED;
}
// Buy Primary Weapon
buy_primary_weapon(id, selection)
{
// Get admin flags
static userflags; userflags = get_user_flags(id)
// Level required for get weapon
if (g_level[id] < ArrayGetCell(g_primary_levels, selection) && !(userflags & g_access_flag[ACCESS_WEAPONS_FREE]))
{
if (g_isbot[id] || get_pcvar_num(cvar_randweapons))
buy_primary_weapon(id, random_num(0, ArraySize(g_primary_items) - 1))
else
show_menu_buy1(id)
return PLUGIN_HANDLED;
}
// Drop previous weapons
drop_weapons(id, 1)
drop_weapons(id, 2)
// Get weapon's id and name
static weaponid, wname[32]
weaponid = ArrayGetCell(g_primary_weaponids, selection)
ArrayGetString(g_primary_items, selection, wname, charsmax(wname))
// Give the new weapon and full ammo
give_item(id, wname)
ExecuteHamB(Ham_GiveAmmo, id, MAXBPAMMO[weaponid], AMMOTYPE[weaponid], MAXBPAMMO[weaponid])
// Weapons bought
g_canbuy[id] = 1
// Give additional items
for (new i = 0; i < ArraySize(g_additional_items); i++)
{
ArrayGetString(g_additional_items, i, wname, charsmax(wname))
// Level required for get weapon
if (g_level[id] >= ArrayGetCell(g_additional_levels, i) || (userflags & g_access_flag[ACCESS_WEAPONS_FREE]))
give_item(id, wname)
}
// 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], len, weap, maxloops
len = 0
maxloops = ArraySize(g_special_names), min(WPN_STARTID+7, WPN_MAXIDS)
// Title
len += formatex(g_menu[len], charsmax(g_menu) - len, "\yCategoria E - Arma Especiales^n^n", WPN_STARTID+1, min(WPN_STARTID+7, WPN_MAXIDS))
// 1-7. Weapon List
for (weap = WPN_STARTID; weap < maxloops; weap++)
{
ArrayGetString(g_special_names, weap, wpnname, charsmax(wpnname))
if (g_level[id] >= ArrayGetCell(g_special_levels, weap) && 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+1, wpnname)
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+1, wpnname, ArrayGetCell(g_special_levels, weap), 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(id, KEYSMENU, g_menu, -1, "Special Menu")
}
Código PHP:
// Special Category Menu
public menu_special(id, key)
{
// 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-7 >= 0) WPN_STARTID -= 7
}
case MENU_KEY_NEXT: // next
{
if (WPN_STARTID+7 < WPN_MAXIDS) WPN_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_levels, key) && !(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(id, 1)
drop_weapons(id, 2)
switch (key)
{
case 0:
{
g_superdeagle[id] = true
give_item(id, "weapon_deagle")
ExecuteHamB(Ham_GiveAmmo, id, MAXBPAMMO[CSW_DEAGLE], AMMOTYPE[CSW_DEAGLE], MAXBPAMMO[CSW_DEAGLE])
}
case 1:
{
g_superm249[id] = true
give_item(id, "weapon_m249")
ExecuteHamB(Ham_GiveAmmo, id, MAXBPAMMO[CSW_M249], AMMOTYPE[CSW_M249], MAXBPAMMO[CSW_M249])
}
case 2..4:
{
g_specialawp[id] = key - 1
give_item(id, "weapon_awp")
ExecuteHamB(Ham_GiveAmmo, id, MAXBPAMMO[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 C&P