08/02/2019, 02:38 PM
(Última modificación: 08/02/2019, 02:39 PM por wavee. Edited 1 time in total.)
Tengo el siguiente menú de armas por niveles y reset, pero al pasar hacer el primer reset me ocurre lo siguiente
.Las armas de nivel, ej: 1 a 250. No me permite comprarlas
.Mi objetivo es que al resetear los niveles, pueda habilitar las armas de niveles bajos tanto como la del reset 1
.Las armas de nivel, ej: 1 a 250. No me permite comprarlas
.Mi objetivo es que al resetear los niveles, pueda habilitar las armas de niveles bajos tanto como la del reset 1
Código PHP:
public show_menu_buy1(taskid)
{
// Get player id
static id
(taskid > 32) ? (id = ID_SPAWN) : (id = taskid);
// Zombies or survivors get no guns
if (g_zombie || g_survivor[id] || !is_user_alive(id))
return;
// Bots pick their weapons randomly
if (is_user_bot(id))
{
buy_primary_weapon(id, random_num(0, sizeof Armasp - 1))
buy_secondary_weapon(id, random_num(0, sizeof Armass - 1))
//buy_third_weapon(id, random_num(0, sizeof PACKWEAPONENT - 1))
return;
}
// Automatic selection enabled for player and menu called on spawn event
if (WPN_AUTO_ON && taskid > 32)
{
buy_primary_weapon(id, WPN_AUTO_PRI)
buy_secondary_weapon(id, WPN_AUTO_SEC)
//buy_third_weapon(id, WPN_AUTO_THIRD)
return;
}
static menu[999], txtreset[999], texresetd[999], len, weap
len = 0
// Title
len += formatex(menu[len], sizeof menu - 1 - len, "\yArma Primaria \r[%d-%d]^n^n", WPN_STARTID+1, min(WPN_STARTID+7, WPN_MAXIDS))
// 1-7. Weapon List
for (weap = WPN_STARTID; weap < min(WPN_STARTID+7, WPN_MAXIDS); weap++)
{
formatex(txtreset, sizeof txtreset - 1, "\r(\yRR \w%d\r)", Armasp[weap][PRESET])
formatex(texresetd, sizeof texresetd - 1, "\r(\dRR \w%d\r)", Armasp[weap][PRESET])
replace_all(txtreset, charsmax(txtreset), "\r(\yRR \w0\r)", "")
replace_all(texresetd, charsmax(texresetd), "\r(\dRR \w0\r)", "")
if (g_level[id] >= Armasp[weap][PLEVEL] && g_resets[id] >= Armasp[weap][PRESET])
len += formatex(menu[len], sizeof menu - 1 - len, "\r%d.\w %s \d(\yLvl \w%d\d)%s^n", weap-WPN_STARTID+1, Armasp[weap][PNAME], Armasp[weap][PLEVEL], txtreset)
else
len += formatex(menu[len], sizeof menu - 1 - len, "\r%d.\w %s \d(\rMin Lvl \w%d\d)%s^n", weap-WPN_STARTID+1, Armasp[weap][PNAME], Armasp[weap][PLEVEL], texresetd)
}
// 8. Auto Select
len += formatex(menu[len], sizeof menu - 1 - len, "^n\r8.\w Recordar Seleccion \y[%s]", (WPN_AUTO_ON) ? "Habilitado" : "Deshabilitado")
// 9. Next/Back - 0. Exit
len += formatex(menu[len], sizeof menu - 1 - len, "^n^n\r9.\w Siguiente/Anterior^n^n\r0.\w Salir")
show_menu(id, KEYSMENU, menu, -1, "Buy Menu 1")
}
// Buy Menu 2
show_menu_buy2(id)
{
static menu[999], len, weap
len = 0
// Title
len += formatex(menu[len], sizeof menu - 1 - len, "\yArma Secundaria \r[%d-%d]^n^n", WPN2_STARTID+1, min(WPN2_STARTID+7, WPN2_MAXIDS))
// 1-6. Weapon List
for (weap = WPN2_STARTID; weap < min(WPN2_STARTID+7, WPN2_MAXIDS); weap++)
{
if (g_level[id] >= Armass[weap][PLEVEL])
len += formatex(menu[len], sizeof menu - 1 - len, "\r%d.\w %s \d(\yLvl \w%d\d)^n", weap-WPN2_STARTID+1, Armass[weap][PNAME], Armass[weap][PLEVEL])
else
len += formatex(menu[len], sizeof menu - 1 - len, "\r%d.\w %s \d(\rMin Lvl \w%d\d)^n", weap-WPN2_STARTID+1, Armass[weap][PNAME], Armass[weap][PLEVEL])
}
// 8. Auto Select
len += formatex(menu[len], sizeof menu - 1 - len, "^n\r8.\w Recordar Seleccion \y[%s]", (WPN_AUTO_ON) ? "Habilitado" : "Deshabilitado")
// 9. Next/Back - 0. Exit
len += formatex(menu[len], sizeof menu - 1 - len, "^n^n\r9.\w Siguiente/Anterior^n^n\r0.\w Salir")
show_menu(id, KEYSMENU, menu, -1, "Buy Menu 2")
}
public menu_buy1(id, key)
{
// 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 >= MENU_KEY_AUTOSELECT || WPN_SELECTION >= WPN_MAXIDS)
{
switch (key)
{
case MENU_KEY_AUTOSELECT: // toggle auto select
{
WPN_AUTO_ON = 1 - WPN_AUTO_ON
}
case MENU_KEY_NEXT: // next/back
{
if (WPN_STARTID+7 < WPN_MAXIDS)
WPN_STARTID += 7
else
WPN_STARTID = 0
}
case MENU_KEY_EXIT: // exit
{
return PLUGIN_HANDLED;
}
}
// Show buy menu again
show_menu_buy1(id)
return PLUGIN_HANDLED;
}
if(g_level[id] >= Armasp[WPN_SELECTION][PLEVEL] && g_resets[id] >= Armasp[WPN_SELECTION][PRESET])
{
// Store selected weapon id
WPN_AUTO_PRI = WPN_SELECTION
// Buy primary weapon
buy_primary_weapon(id, WPN_AUTO_PRI)
// Show pistols menu
show_menu_buy2(id)
}
else
show_menu_buy1(id)
return PLUGIN_HANDLED;
}
// Buy Primary Weapon
buy_primary_weapon(id, selection)
{
// Drop previous weapons
drop_weapons(id, 1)
drop_weapons(id, 2)
drop_weapons(id, 3)
// Get weapon index
static weaponid
weaponid = get_weaponid(Armasp[selection][PITEMS])
// Give the new weapon
fm_give_item(id, Armasp[selection][PITEMS])
fm_set_user_bpammo(id, weaponid, MAXBPAMMO[weaponid])
g_primarias[id][selection] = true
// Weapons bought
g_canbuy[id] = false
}
// Buy Menu 2
public menu_buy2(id, key)
{
// 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 >= MENU_KEY_AUTOSELECT || WPN2_SELECTION >= WPN2_MAXIDS)
{
switch (key)
{
case MENU_KEY_AUTOSELECT: // toggle auto select
{
WPN_AUTO_ON = 1 - WPN_AUTO_ON
}
case MENU_KEY_NEXT: // next/back
{
if (WPN2_STARTID+7 < WPN2_MAXIDS)
WPN2_STARTID += 7
else
WPN2_STARTID = 0
}
case MENU_KEY_EXIT: // exit
{
return PLUGIN_HANDLED;
}
}
// Show buy menu again
show_menu_buy2(id)
return PLUGIN_HANDLED;
}
if(g_level[id] < Armass[WPN2_SELECTION][PLEVEL])
{
show_menu_buy2(id)
return PLUGIN_HANDLED;
}
// Store selected weapon id
WPN_AUTO_SEC = WPN2_SELECTION
// Buy secondary weapon
buy_secondary_weapon(id, WPN_AUTO_SEC)
// Show bomb menu
//show_menu_buy3(id)
return PLUGIN_HANDLED;
}
// Buy secondary Weapon
buy_secondary_weapon(id, selection)
{
// Drop previous weapons
drop_weapons(id, 2)
// Get weapon index
static weaponid
weaponid = get_weaponid(Armass[selection][PITEMS])
// Give the new weapon
fm_give_item(id, Armass[selection][PITEMS])
fm_set_user_bpammo(id, weaponid, MAXBPAMMO[weaponid])
g_secundarias[id][selection] = true
}