14/04/2014, 11:19 PM
(Última modificación: 02/07/2014, 04:51 PM por Evil Spiret.)
Hola chicos , creo que esto no esta aportado y lo voy a aportar
Pedi ayuda muchas veces con el tema del menu ; hasta que lo entendi y pude hacer esta forma para agregar mas armas.
Lo hice en un ZP 4.2 no se si funcionara para otra version
Explicacion ; esto hace que puedas poner varias veces la misma arma en el juego EJ ; dos XM1014 y las dos con diferente model , daño , velocidad , ETC.
Antes que nada recomiendo tener las armas secundarias y primarias de esta forma bien ordenadita ; asi los tengo yo
Debajo de los includes pongan esto
En public fw_PlayerSpawn_Post(id) ponemos
AHORA ATENCION CON ESTO
nos vamos a switch (selection) y debajo ponemos esto
SIGAMOS....
Nos vamos al menu primario de armas y reemplazamos por este
Ahora solo hay que setear el model normalmente
Si no les anda algo me avisan ; espero que este todo es que copie los codes directamente del amxmod.
Seguramente se puede mejorar esta forma, pero funciona bastante bien.
Pedi ayuda muchas veces con el tema del menu ; hasta que lo entendi y pude hacer esta forma para agregar mas armas.
Lo hice en un ZP 4.2 no se si funcionara para otra version
Explicacion ; esto hace que puedas poner varias veces la misma arma en el juego EJ ; dos XM1014 y las dos con diferente model , daño , velocidad , ETC.
Antes que nada recomiendo tener las armas secundarias y primarias de esta forma bien ordenadita ; asi los tengo yo
Código PHP:
// Armas primarias Nombres
new const WEAPONNAMES[][] =
{
"Schmitd TMP lasser",
"Mac Relase",
"Ump 45",
"Navy Guerrillera",
"Super m3",
"P90 VRI",
"Schmitd Scout",
"Dual M3",
"Famas",
"Norm Xm1014",
"Galil HKG3",
"SG-552 Commando",
"Galil GACE",
"AK-RK 62",
"Benelli M4",
"Aug Lasser 55",
"P90 IR42",
"M4A1 Carabine",
"AWP Sniper",
"SG-550 Automattic",
"M4A1 Lasser",
"XM1020 Demon",
"G3SG1 Rifle Automatico"
}
// Armas primarias
new const g_primary_items[][] =
{
"weapon_tmp",
"weapon_mac10",
"weapon_ump45",
"weapon_mp5navy",
"weapon_m3",
"weapon_p90",
"weapon_scout",
"weapon_m3",
"weapon_famas",
"weapon_xm1014",
"weapon_galil",
"weapon_sg552",
"weapon_galil",
"weapon_ak47",
"weapon_xm1014",
"weapon_aug",
"weapon_p90",
"weapon_m4a1",
"weapon_awp",
"weapon_sg550",
"weapon_m4a1",
"weapon_xm1014",
"weapon_g3sg1"
}
// Niveles armas primarias
new const g_levelprimary[] =
{
1,
20,
35,
50,
70,
85,
100,
120,
185,
220,
280,
310,
380,
450,
550,
620,
730,
840,
970,
1200,
1420,
1580,
1800
}
// Armas secundarias
new const g_secondary_items[][] =
{
"weapon_glock18",
"weapon_usp",
"weapon_p228",
"weapon_deagle",
"weapon_fiveseven",
"weapon_elite"
}
// Niveles armas secundarias
new const g_levelsecundary[] =
{
1,
15,
45,
70,
100,
175
}
// Armas Secundarias Nombres
new const WEAPONNAMES2[][] =
{
"Glock 18.C",
"USP .45 ACP Tactical",
"P228 Compact",
"Desert Eagle",
"FiveSeven",
"Dual Silver Elites"
}
Debajo de los includes pongan esto
Código PHP:
new bool:g_p90g[33] //P90
En public fw_PlayerSpawn_Post(id) ponemos
Código PHP:
g_p90g[id] = false
AHORA ATENCION CON ESTO
nos vamos a switch (selection) y debajo ponemos esto
Código PHP:
case 16: g_p90g[id] = true
Código PHP:
// Atencion : el case 16 funciona bien con todas las armas que tengo , hay que contar bien antes de poner el numero
Ejemplo tengo 5 armas y el arma es la N 4 contamos 4 y restamos uno , seria la numero tres osea CASE 3
//Empezamos a contar desde 0
SIGAMOS....
Código PHP:
case CSW_P90:
{
if (g_p90g[id])
{
set_pev(id, pev_viewmodel2, model_weapon_p90g) // Model de la nueva P90
}
else
{
set_pev(id, pev_viewmodel2, model_weapon_p90) // Model comun de la P90
}
}
Nos vamos al menu primario de armas y reemplazamos por este
Código PHP:
if (WPN_AUTO_ON && taskid > g_maxplayers)
{
buy_primary_weapon(id, WPN_AUTO_PRI)
menu_buy2(id, WPN_AUTO_SEC)
return;
}
static menu[300], len, weap
len = 0
// Title
len += formatex(menu[len], sizeof menu - 1 - len, "\y%L \r[%d-%d]^n^n", id, "MENU_BUY1_TITLE", 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++)
{
if (g_level[id] >= g_levelprimary[weap])
{
len += formatex(menu[len], sizeof menu - 1 - len, "\r%d.\w %s \r^n", weap-WPN_STARTID+1, WEAPONNAMES[weap])
}
else
{
len += formatex(menu[len], sizeof menu - 1 - len, "\d%d. %s [\rNivel \w%d\d]^n", weap-WPN_STARTID+1, WEAPONNAMES[weap], g_levelprimary[weap])
}
}
// 8. Auto Select
len += formatex(menu[len], sizeof menu - 1 - len, "^n\r8.\w %L \y[%L]", id, "MENU_AUTOSELECT", id, (WPN_AUTO_ON) ? "MOTD_ENABLED" : "MOTD_DISABLED")
// 9. Next/Back - 0. Exit
len += formatex(menu[len], sizeof menu - 1 - len, "^n^n\r9.\w %L/%L^n^n\r0.\w %L", id, "MENU_NEXT", id, "MENU_BACK", id, "MENU_EXIT")
show_menu(id, KEYSMENU, menu, -1, "Buy Menu 1")
}
Ahora solo hay que setear el model normalmente
Código PHP:
new const model_weapon_p90g[] = { "models/CP-ZP/v_p90IR.mdl" }
Código PHP:
engfunc(EngFunc_PrecacheModel, model_weapon_p90g)
Si no les anda algo me avisan ; espero que este todo es que copie los codes directamente del amxmod.
Seguramente se puede mejorar esta forma, pero funciona bastante bien.