24/07/2017, 11:53 AM
Tengo un problema al aumentarle el daño por knife al zombie.
Lo que pasa esque los humanos no resiven daño, no se que ise mal.
Les dejo code
Zombie completo
Lo que pasa esque los humanos no resiven daño, no se que ise mal.
Les dejo code
Código PHP:
public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type)
{
if(!zp_get_user_zombie(attacker))
return HAM_IGNORED;
if (get_user_weapon(attacker) != CSW_KNIFE)
return HAM_IGNORED;
if (zp_get_user_zombie_class(attacker) == g_zclassid1)
{
damage *= get_pcvar_float(cvar_damage)
SetHamParamFloat(4, damage)
}
return HAM_SUPERCEDE
}
Zombie completo
Código PHP:
#include <amxmodx>
#include <fakemeta>
#include <basebuilder>
#include <hamsandwich>
new const zclass_name[] = { "Chainsaw Zombie" }
new const zclass_info[] = { "Chainsaw Zombie Class" }
new const zclass_model[] = { "zombie_chainsaw" }
new const zclass_clawmodel[] = { "v_chainsaw" }
const zclass_health = 4000
const zclass_speed = 450
const Float:zclass_gravity = 0.6
const zclass_adminflags = ADMIN_ADMIN
new g_zclassid1
new cvar_damage;
new const spawm_chain[][] = { "zombie_plague/chainsaw1_hit.wav" }
new const chainsaw_sounds[][] =
{
"zombie_plague/chainsaw2_miss.wav",
"zombie_plague/chainsaw1_miss.wav",
"zombie_plague/chainsaw2_miss.wav",
"zombie_plague/chainsaw1_hit.wav",
"zombie_plague/chainsaw2_hit.wav",
"zombie_plague/chainsaw1_hit.wav",
"zombie_plague/chainsaw1_miss.wav",
"zombie_plague/chainsaw2_miss.wav",
"zombie_plague/chainsaw1_hit.wav"
}
new const knife_sounds[][] =
{
"weapons/knife_deploy1.wav",
"weapons/knife_hit1.wav",
"weapons/knife_hit2.wav",
"weapons/knife_hit3.wav",
"weapons/knife_hit4.wav",
"weapons/knife_hitwall1.wav",
"weapons/knife_slash1.wav",
"weapons/knife_slash2.wav",
"weapons/knife_stab.wav"
}
public plugin_init()
{
register_plugin("[ZP] Chainsaw Zombie Class", "0.1", "Artos")
register_forward(FM_EmitSound, "fw_EmitSound");
RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
RegisterHam(Ham_Spawn, "player", "ham_PlayerSpawn_Post", 1)
cvar_damage = register_cvar("zp_chainsaw_damage", "10.0");
}
public plugin_precache()
{
new x;
for(x = 0; x < sizeof spawm_chain; x++) precache_sound(spawm_chain[x]);
g_zclassid1 =bb_register_zombie_class(zclass_name, zclass_info, zclass_model, zclass_clawmodel, zclass_health, zclass_speed, zclass_gravity, 0.0, zclass_adminflags)
for(new i = 0; i < sizeof chainsaw_sounds; i++)
precache_sound(chainsaw_sounds[i])
}
public fw_EmitSound(id, channel, const sound[])
{
if(!is_user_alive(id) || !zp_get_user_zombie(id))
return FMRES_IGNORED
for(new i = 0; i < sizeof chainsaw_sounds; i++)
{
if(equal(sound, knife_sounds[i]) && (bb_get_user_zombie_class(id) == g_zclassid1))
{
emit_sound(id, channel, chainsaw_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
return FMRES_SUPERCEDE
}
}
return FMRES_IGNORED
}
public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type)
{
if(!zp_get_user_zombie(attacker))
return HAM_IGNORED;
if (get_user_weapon(attacker) != CSW_KNIFE)
return HAM_IGNORED;
if (zp_get_user_zombie_class(attacker) == g_zclassid1)
{
damage *= get_pcvar_float(cvar_damage)
SetHamParamFloat(4, damage)
}
return HAM_SUPERCEDE
}
public ham_PlayerSpawn_Post(id)
{
if (!is_user_alive(id))
return ;
if(bb_is_user_zombie(id) && bb_get_user_zombie_class(id) == g_zclassid1)
{
emit_sound(id, CHAN_STREAM, spawm_chain[random_num(0, sizeof spawm_chain -1)], 1.0, ATTN_NORM, 0, PITCH_HIGH)
}
}
Experiencia en Pawn: Bien
Estado: Aprendiendo
Estado: Aprendiendo