TUT ZP Armas Con Bool
#1
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

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 16g_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(idpev_viewmodel2model_weapon_p90g// Model de la nueva P90
            
}
            else
            {
                
set_pev(idpev_viewmodel2model_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(idWPN_AUTO_PRI)
menu_buy2(idWPN_AUTO_SEC)
return;
}
    
    static 
menu[300], lenweap
    len 
0
    
      
// Title
    
len += formatex(menu[len], sizeof menu len"\y%L \r[%d-%d]^n^n"id"MENU_BUY1_TITLE"WPN_STARTID+1min(WPN_STARTID+7WPN_MAXIDS))
    
    
// 1-7. Weapon List
    
for (weap WPN_STARTIDweap min(WPN_STARTID+7WPN_MAXIDS); weap++) 
    { 
         if (
g_level[id] >= g_levelprimary[weap]) 
        { 
            
len += formatex(menu[len], sizeof menu len"\r%d.\w %s \r^n"weap-WPN_STARTID+1WEAPONNAMES[weap]) 
        }     
        else 
        { 
            
len += formatex(menu[len], sizeof menu len"\d%d. %s [\rNivel \w%d\d]^n"weap-WPN_STARTID+1WEAPONNAMES[weap], g_levelprimary[weap])         
        } 
    } 
    
    
// 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")
    
    
// 9. Next/Back - 0. Exit
    
len += formatex(menu[len], sizeof menu len"^n^n\r9.\w %L/%L^n^n\r0.\w %L"id"MENU_NEXT"id"MENU_BACK"id"MENU_EXIT")
    
    
show_menu(idKEYSMENUmenu, -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_PrecacheModelmodel_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.
NUEVO ZOMBIE PLAGUE + LVLS!! UNETE A LA COMUNIDAD
[Imagen: b_350_20_ffad41_e98100_000000_591f11.png]


Responder
#2
Esto no es un tutorial , solo indicas donde o que deben hacer.
Tienes que explicar sobre el codigo y ademas lo veo que es muy al vicio esto ya que la "arma modificada" solo cambia el model.

Podrias ponerle no se emm , mas damage , mas rapides al atacar , menos tiempo de espera en la recarga , menos recoil.
Responder
#3
la verdad nose si lei en alliedmods que las armas con bool no son recomendables... nose si estoy en lo cierto...xD

coincido con Unrealt... aparte saca los levels, no todos tienen los mismo
[Guia] Granada de Droga [actulizado 01/04/14]
[Guia] Cambio de leap zp 4.2 a 4.3

Zp 4.2 Extincion [Beta+Lvl] Edicion 0.1 (%95) terminado
Responder
#4
Pienso igual que ellos en ninguna parte le cambias el daño, velocidad, recoil que se yo, solo el modelo y solo el modelo V.
Tenes una pentium 4.. ami no me engañas
Responder
#5
Si , eso fue lo que quise hacer; hay mucho que no tienen ni idea de que se puede hacer esto.

Ademas no es cosa de otro mundo cambiar la velocidad y el daño

Saludos
NUEVO ZOMBIE PLAGUE + LVLS!! UNETE A LA COMUNIDAD
[Imagen: b_350_20_ffad41_e98100_000000_591f11.png]


Responder
#6
por dios, si "creas" 12 armas de esa forma, reliable channel overflow de 1. Podrias hacer por lo menos que sea de esta forma...
Código PHP:
new g_armas[33]

// reset_vars -> if (resetall)
g_armas[id] = 0

// buy_primary_ ...
g_armas[id] = (selection >= 16) ? 0

// models

case CSW_P90:
{
    if (
g_arma[id])
        
set_pev(idpev_viewmodel2"model_nuevo")
    else
        
set_pev(idpev_viewmodel2"model")
}
case 
CSW_AK47:
{
    if (
g_arma[id])
        
set_pev(idpev_viewmodel2"model_nuevo")
    else
        
set_pev(idpev_viewmodel2"model")
}

// Takedamage
new Float:valor 2.5 + (g_arma[attacker] * 2.0) + g_arma[attacker]
SetHamParamFloat(4g_currentweapon[attacker]*valor)

// Recoil
new Float:valorFloat:recoil[3]
pev(weaponpev_punchanglerecoil)

valor = (g_arma[pev(weaponpev_owner)] * 20) / 100
recoil
[0] += (valor 0.00) ? 0.00 valor

set_pev
(weaponpev_punchanglerecoil
Esto tambien es feito pero bue, un ejemplo nomas
(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
Responder
#7
podrias usar bits kane para mejorarlo un poquito e.e
Ingeniero agrónomo y desarrollador de Software.

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"

Merci Alliedmodders pour m'introduire dans la programmation.
Responder
#8
(15/04/2014, 08:12 PM)roccoxx escribió: podrias usar bits kane para mejorarlo un poquito e.e
Todavia no los se usar bien, igual no se dicen que hace muy poca diferencia alpedo recodear todo.
(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
Responder
#9
(15/04/2014, 08:07 PM)Kane escribió: por dios, si "creas" 12 armas de esa forma, reliable channel overflow de 1. Podrias hacer por lo menos que sea de esta forma...
Código PHP:
new g_armas[33]

// reset_vars -> if (resetall)
g_armas[id] = 0

// buy_primary_ ...
g_armas[id] = (selection >= 16) ? 0

// models

case CSW_P90:
{
    if (
g_arma[id])
        
set_pev(idpev_viewmodel2"model_nuevo")
    else
        
set_pev(idpev_viewmodel2"model")
}
case 
CSW_AK47:
{
    if (
g_arma[id])
        
set_pev(idpev_viewmodel2"model_nuevo")
    else
        
set_pev(idpev_viewmodel2"model")
}

// Takedamage
new Float:valor 2.5 + (g_arma[attacker] * 2.0) + g_arma[attacker]
SetHamParamFloat(4g_currentweapon[attacker]*valor)

// Recoil
new Float:valorFloat:recoil[3]
pev(weaponpev_punchanglerecoil)

valor = (g_arma[pev(weaponpev_owner)] * 20) / 100
recoil
[0] += (valor 0.00) ? 0.00 valor

set_pev
(weaponpev_punchanglerecoil
Esto tambien es feito pero bue, un ejemplo nomas


Solo me parece mas ordenado, supongo
Estas haciendo lo mismo por lo que veo
solo agregas el danio
NUEVO ZOMBIE PLAGUE + LVLS!! UNETE A LA COMUNIDAD
[Imagen: b_350_20_ffad41_e98100_000000_591f11.png]


Responder
#10
en la primera forma podrias poner todos los new const en 1 solo const + 1 enum
Responder
#11
tengo dudas, Donde consigo switch (selection) en 4.3
Responder
#12
Crealo, anda a
Código PHP:
buy_primary_weapon 

Debajo de
Código PHP:
g_canbuy[id] = false 

Código PHP:
    switch (selection)
    {
        case 
1g_armas[id][0] = true // Reemplaza el 1 por el que necesites
                 // En este caso en 1 seria la mac 10



Se cuenta así
Código PHP:
// Armas primarias
new const g_primary_items[][] = 

    
"weapon_tmp"// 0
    
"weapon_mac10"// 1
    
"weapon_ump45"// 2
    
"weapon_mp5navy"// 3
    
"weapon_m3"// 4
    
"weapon_p90"// 5
    
"weapon_scout"// 6
    
"weapon_m3"// y así sucesivamente 
    
"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"
 


PD ; NO REVIVAS
NUEVO ZOMBIE PLAGUE + LVLS!! UNETE A LA COMUNIDAD
[Imagen: b_350_20_ffad41_e98100_000000_591f11.png]


Responder
#13
Lee primero las reglas, antes de decir que no reviva el tema.

PD: Se puede mejorar este tutorial, almenos le deberías de dar soporte al tema, para mejorarlo un poco más...
[Imagen: b_350_20_323957_202743_f19a15_111111.png]

Estudia siempre; el tiempo es oro, lo material se puede recuperar pero el tiempo no se puede recuperar.
(02/10/2016, 05:05 PM)meTaLiCroSS escribió: Siempre me gusta ayudar cuando alguien esta interesado realmente en ver que esta programando.
(08/08/2019, 05:32 PM)meTaLiCroSS escribió: grax x el dato cr4ck


Mis aportes

PLUGINS
MAPAS
Menú LANG [SF] Sistema de Frags
Say System (Admin Prefix)
Responder
#14
(09/08/2015, 02:53 PM)totopizza escribió: Lee primero las reglas, antes de decir que no reviva el tema.

PD: Se puede mejorar este tutorial, almenos le deberías de dar soporte al tema, para mejorarlo un poco más...

No estoy casi nunca, estoy estudiando para rendir matemática II en ingeniería.
Apenas pueda lo mejoro.
NUEVO ZOMBIE PLAGUE + LVLS!! UNETE A LA COMUNIDAD
[Imagen: b_350_20_ffad41_e98100_000000_591f11.png]


Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)