Enviar respuesta 
TUT ZP Armas Con Bool
Autor Mensaje
Evil Spiret Sin conexión
Miembro Sr.


Mensajes: 578
Registro en: Dec 2013
Reputación: 12
Mensaje: #1
TUT ZP Armas Con Bool
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
Image
(Este mensaje fue modificado por última vez en: 02/07/2014 04:51 PM por Evil Spiret.)
14/04/2014 11:19 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
UnrealT Sin conexión
Miembro Destacado


Mensajes: 788
Registro en: Nov 2013
Reputación: 11
Mensaje: #2
RE: TUT ZP Armas Con Bool
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.
15/04/2014 12:49 AM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Nike Sin conexión
Miembro


Mensajes: 208
Registro en: Nov 2013
Reputación: 4
Mensaje: #3
RE: TUT ZP Armas Con Bool
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
(Este mensaje fue modificado por última vez en: 15/04/2014 09:49 AM por Nike.)
15/04/2014 09:49 AM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
alangomez2 Sin conexión
Miembro


Mensajes: 179
Registro en: Feb 2014
Reputación: 0
Mensaje: #4
RE: TUT ZP Armas Con Bool
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
15/04/2014 06:24 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Evil Spiret Sin conexión
Miembro Sr.


Mensajes: 578
Registro en: Dec 2013
Reputación: 12
Mensaje: #5
RE: TUT ZP Armas Con Bool
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
Image
15/04/2014 07:22 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Kane Sin conexión
Miembro Sr.


Mensajes: 532
Registro en: Feb 2014
Reputación: 17
Mensaje: #6
RE: TUT ZP Armas Con Bool
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
15/04/2014 08:07 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
roccoxx Sin conexión
Miembro Destacado


Plugin developer Trebol purpura 1k
Mensajes: 1,159
Registro en: Oct 2013
Reputación: 18
Mensaje: #7
RE: TUT ZP Armas Con Bool
podrias usar bits kane para mejorarlo un poquito e.e

futuro ingeniero agrónomo.

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"

volví a vender plugins, contactame
15/04/2014 08:12 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Kane Sin conexión
Miembro Sr.


Mensajes: 532
Registro en: Feb 2014
Reputación: 17
Mensaje: #8
RE: TUT ZP Armas Con Bool
(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
15/04/2014 08:40 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Evil Spiret Sin conexión
Miembro Sr.


Mensajes: 578
Registro en: Dec 2013
Reputación: 12
Mensaje: #9
RE: TUT ZP Armas Con Bool
(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
Image
(Este mensaje fue modificado por última vez en: 15/04/2014 08:49 PM por Evil Spiret.)
15/04/2014 08:48 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
3mcy daimon't Sin conexión
Miembro


Mensajes: 219
Registro en: Nov 2013
Reputación: 1
Mensaje: #10
RE: TUT ZP Armas Con Bool
en la primera forma podrias poner todos los new const en 1 solo const + 1 enum

Sistema de Logros v2.0 + Guardado

He vuelto... esta vez con mas ganas de ayudar que nunca!
17/04/2014 01:17 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Enviar respuesta 


Salto de foro:


Usuario(s) navegando en este tema: 1 invitado(s)

Contáctanos | Allied Modders en español | Volver arriba | Volver al contenido | Archivo (Modo simple) | Sindicación RSS