Quote:
Originally Posted by CoCe16
why are the chainsaw sounds played for all the zombie classes? is there any way to make these chainsaw sounds only for the CHAINSAW class? when i add this class to my server all the zombie classes are having these chainsaw sounds with knife.
|
Since the author is inactive, I edited the plugin:
PHP Code:
#include <amxmodx>
#include <fakemeta>
#include <zombieplague>
#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.mdl" }
const zclass_health = 1800
const zclass_speed = 190
const Float:zclass_gravity = 1.0
const Float:zclass_knockback = 1.0
new g_iMaxPlayers
#define IsPlayer(%0) (1 <= %0 <= g_iMaxPlayers)
new g_zclassid1
new cvar_damage;
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")
cvar_damage = register_cvar("zp_chainsaw_damage", "2.0");
g_iMaxPlayers = get_maxplayers()
}
public plugin_precache()
{
g_zclassid1 = zp_register_zombie_class(zclass_name, zclass_info, zclass_model, zclass_clawmodel, zclass_health, zclass_speed, zclass_gravity, zclass_knockback)
for(new i = 0; i < sizeof chainsaw_sounds; i++)
precache_sound(chainsaw_sounds[i])
}
public zp_user_infected_post(id, infector)
{
if (zp_get_user_zombie_class(id) == g_zclassid1)
client_print(id, print_chat, "[ZP] You're using a chainsaw zombie class which have %s damage multiplier!", get_pcvar_float(cvar_damage))
}
public fw_EmitSound(id, channel, const sound[])
{
if(!is_user_alive(id) || !zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_zombie_class(id) != g_zclassid1)
return FMRES_IGNORED
for(new i = 0; i < sizeof chainsaw_sounds; i++)
{
if(equal(sound, knife_sounds[i]))
{
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 (!IsPlayer(attacker) || !is_user_connected(attacker) || zp_get_user_nemesis(attacker) || !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
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/
__________________
Selling tons of my own private works.
Accepting paid work for clans and communities.
Don't hesitate to contact me.