Enviar respuesta 
[TUT][ZP] Habilidades humanas y zombies.
Autor Mensaje
Xezumn Sin conexión
Miembro


Mensajes: 81
Registro en: Jan 2017
Reputación: 0
Mensaje: #1
[TUT][ZP] Habilidades humanas y zombies.
Buenas, que tal?. Este es mi primer aporte para la comunidad, luego de tantos leer y leer, (creo) que no he visto ningun tutorial sobre esto, por ende y sin mas preambulos prosigo(tratare de explicarme lo mas que pueda);

Código PHP:
/*        [ MEJORAS ]        */

new g_gastados[33][2// variable de puntos gastados
new g_mejorasH[33][5// variable de habilidades humanas
new g_mejorasZ[33][5// variable de habilidades zombies
new g_puntos[33][2// variable de puntos


// MODIFICAR A GUSTO SI LO IMPLEMENTAN//
#define costo(%1)        (%1 * 5) + 1 // aca definimos el costo de cada nivel, ej; nivel 1 daño = 5 puntos, y asi sucesivamente.

#define ammount_hdamage(%1)    (%1 + 2) * 0.2 // aca definimos cuanto daño aumentara cada punto que le subamos al mismo
#define ammount_hhealth(%1)    (%1 * 25) // lo mismo pero con la vida
#define ammount_hspeed(%1)    (%1 * 4)  // lo mismo pero con la velocidad
#define ammount_hgravity(%1)    ((%1 * 0.02) * 2) // lo mismo pero con la gravedad
#define ammount_harmor(%1)    (%1 * 25) // lo mismo pero con la armadura

#define ammount_zdamage(%1)    (%1 + 3) * 0.2 // todo lo mismo,lean y comparen
#define ammount_zhealth(%1)    (%1 * 10000) 
#define ammount_zspeed(%1)    (%1 * 2) 
#define ammount_zgravity(%1)    ((%1 * 0.03) * 1) 
#define ammount_zdefense(%1)    (%1 * 0.1) 

new const mejoras_max[2][] = {      // Modificar a gusto si lo implementan.
        
999935302535 }, // Limite de mejoras humanas
        
209999303520 }  // Limite de mejoras zombies
}
new const 
mejoras_nombres[2][5][] = { // Modificar a gusto si lo implementan.
        
{
                
"Aumentar Ataque",    
                
"Aumentar Vitalidad",
                
"Aumentar Velocidad",         // Nombre de cada habilidad Humana
                
"Disminuir Gravedad",
                
"Aumentar Armadura"
        
}, {
                
"Aumentar Ataque",
                
"Aumentar Vitalidad",
                
"Aumentar Velocidad",         // Nombre de cada habilidad zombie
                
"Disminuir Gravedad",
                
"Aumentar Defensa"
        
}


Luego en fw_TakeDamage;

Código PHP:
if (!g_zombie[attacker]) // Dentro de este if buscan el parametro del daño y lo cambian por este, esto hace que tome el daño humano(osea el nivel de la habilidad,etc..)
    

    
SetHamParamFloat(4damage *= (ammount_hdamage(g_mejorasH[attacker][0]) + 1) / (ammount_zdefense(g_mejorasZ[victim][4]) + 1)) 

Luego en // Ham Player Spawn Post Forward

Buscan // Set Health and Gravity ( a veces sale diferente,dependiendo del zp que usen)
Código PHP:
// Set health and gravity
    
set_user_health(idArrayGetCell(g_hclass_hpg_humanclass[id]) + ammount_hhealth(g_mejorasH[id][1]))
    
set_pev(idpev_gravityFloat:ArrayGetCell(g_hclass_gravg_humanclass[id]) - ammount_hgravity(g_mejorasH[id][3]))
    
cs_set_user_armor(idammount_harmor(g_mejorasH[id][4]), CS_ARMOR_KEVLAR)
// Este lo que hace, es basicamente lo mismo que la anterior,pero aqui seteamos vida,chaleco,velocidad,gravedad. obviamente obteniendo el nivel de la habilidad.

// x2; el g_humanclass[id] se usa en caso de tener clases humanas en su zp, si no tienen clases humanas[aunque lo dudo] borran esa variable y listo.

//¿ porque aparece la variable de g_humanclass ? ; esto es para que se le sume a la clase(que ya viene con vita,velocidad,gravedad seteados) y le de una equivalencia mas comoda, y que por ejemplo, clase humana ninja +150 hp, si le sumas dos puntos a vitalidad(en este caso aumenta 25 hp cada punto) quedaria en +200 de vitalidad porque se suma. 

Luego en el mismo public, abajo de Set Health and Gravity( o como corno lo tengan) encontraremos esto;
Código PHP:
// Cache speed and name for player's class
    
ArrayGetString(g_hclass_nameg_humanclass[id], g_human_classname[id], charsmax(g_human_classname[]))
    
g_human_spd[id] = float(ArrayGetCell(g_hclass_spdg_humanclass[id]) + ammount_hspeed(g_mejorasH[id][2]))  
// Esto es simple,aca "cacheamos/precacheamos" la velocidad humana y/o clase humana, siguen sumandose,por ende precachearia las dos. 
Ahora seguimos con la seccion de habilidades ZOMBIE;
buscamos fw_PlayerPreThink(id) y dentro del public buscaran esta linea;

Código PHP:
// Check if proper CVARs are enabled and retrieve leap settings( yo lo tengo asi)
static Float:cooldownFloat:current_time
    
if (g_zombie[id])
    {
        
set_pev(idpev_maxspeedg_zombie_spd[id] + ammount_zspeed(g_mejorasZ[id][2])) // seteamos la velocidad(dependiendo del nivel de la mejora) al zombie. y tambien lo obtiene de la clase zombie,por ende se suman. 

Bueno, espero hallan entendido algo de mi post(o casualmente repost).
Cualquier duda consulten.

PSDT; Faltan las mejoras ammount_zdamage/health/gravity.
Esto es para que los que quieran hacer copy/paste tengan que usar la cabeza.
PSDT2; Son variables de codigo de kikizon2(para que no me traten de cp ;c

kissmeyearbasic-
21/12/2017 07:15 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
NkkI Ausente
Miembro Destacado


1k
Mensajes: 1,350
Registro en: Aug 2014
Reputación: 28
Mensaje: #2
RE: [TUT][ZP] Habilidades humanas y zombies.
Un tut a medias? Oh god why

ya estaba eso hecho por ivan igual Whatever

gracias por tu aporte.
21/12/2017 07:47 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Xezumn Sin conexión
Miembro


Mensajes: 81
Registro en: Jan 2017
Reputación: 0
Mensaje: #3
RE: [TUT][ZP] Habilidades humanas y zombies.
(21/12/2017 07:47 PM)NkkI escribió:  Un tut a medias? Oh god why

ya estaba eso hecho por ivan igual Whatever

gracias por tu aporte.

Como ya dije, a proposito , para que utilizen la cabeza los C&P :'v.

No sabia que ivan habia hecho uno :c

kissmeyearbasic-
22/12/2017 02: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