Post by josecarlos2000 on Jun 25, 2022 17:15:47 GMT
i tried use this tutorial:https://amxmodx-es.com/Thread-TUT-Zombie-Plague-Colocar-sonidos-custom-death-y-pain but i cant do it for a error, i use zp 5.0.8 and advance.
Someone know tutorial??
/*
[ZP] Class : Assassin Zombie
(Powerful zombie class)
by Fry!
Description :
This is one of powerful zombies. Cuz now you can chose between infect and kill humans.
Press +Attack2 to kill people.
Changelog :
28/12/2009 - v1.0 - Public release
*/
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>
#include <zombieplague>
#include <fakemeta>
#define PLUGIN "[ZP] Class : Assassin Zombie"
#define VERSION "1.0"
#define AUTHOR "Fry!"
new const zclass_name[] = "Assassin Zombie"
new const zclass_info[] = "HP+++ Speed++ Knockback++"
new const zclass_model[] = "zombie_source"
new const zclass_clawmodel[] = "v_knife_zombie.mdl"
const zclass_health = 2430
const zclass_speed = 220
const Float:zclass_gravity = 1.0
const Float:zclass_knockback = 1.55
new g_msgScoreAttrib
new g_zclass_assassin
new const g_zombie_pain_snd[][] =
{
"zombie_plague/096/Scream.wav"
}
new const g_zombie_death_snd[][] =
{
"zombie_plague/custom/die1.wav",
"zombie_plague/custom/die2.wav",
"zombie_plague/custom/die3.wav"
}
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_cvar("zp_zclass_assassin_zombie",VERSION,FCVAR_SERVER|FCVAR_EXTDLL|FCVAR_UNLOGGED|FCVAR_SPONLY)
g_msgScoreAttrib = get_user_msgid("ScoreAttrib")
RegisterHam(Ham_TakeDamage, "player", "fw_PlayerTakeDamage")
new i;
for(i = 0; i < sizeof g_zombie_pain_snd; i++) precache_sound(g_zombie_pain_snd);
for(i = 0; i < sizeof g_zombie_death_snd; i++) precache_sound(g_zombie_death_snd);
}
public plugin_precache()
{
g_zclass_assassin = zp_register_zombie_class(zclass_name, zclass_info, zclass_model, zclass_clawmodel, zclass_health, zclass_speed, zclass_gravity, zclass_knockback)
}
public zp_user_infected_post(player, infector)
{
if (zp_get_user_zombie_class(player) == g_zclass_assassin)
{
client_print(player, print_chat, "[ZP] You are now Assassin Zombie")
client_print(player, print_chat, "[ZP] You can chose between infect and kill people")
}
}
public zp_user_infect_attempt(victim, infector, nemesis)
{
if (zp_get_user_zombie_class(infector) == g_zclass_assassin)
{
new button = pev(infector, pev_button)
if (button & IN_ATTACK2)
{
ExecuteHamB(Ham_Killed, victim, infector, 0)
}
else
return PLUGIN_CONTINUE
return ZP_PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
public fw_PlayerTakeDamage(id, inflictor, attacker, Float:damage, damage_type)
{
if (!is_user_alive(id) || !is_user_bot(id) || !zp_get_user_zombie(id))
return HAM_IGNORED
if (zp_get_user_zombie_class(id) != g_zclass_assassin)
return HAM_IGNORED
new attacker_name[32]
new button = pev(attacker, pev_button)
new GetMaxPlayers = get_maxplayers()
new GetHumanCount = zp_get_human_count()
get_user_name(attacker, attacker_name, 31)
if (!zp_is_swarm_round() || !zp_is_plague_round() || !zp_is_survivor_round() || !zp_is_nemesis_round() || GetHumanCount == GetMaxPlayers)
{
if (button & IN_ATTACK2)
{
if (zp_get_user_zombie_class(attacker) == g_zclass_assassin)
{
FixDeadAttrib(id)
UpdateScoreBoard(id, attacker)
client_print(id, print_chat, "[ZP] Hmm looks like %s didn't like you and decided to kill You!", attacker_name)
return HAM_SUPERCEDE
}
}
}
return HAM_SUPERCEDE
}
public FixDeadAttrib(id)
{
message_begin(MSG_BROADCAST, g_msgScoreAttrib)
write_byte(id)
write_byte(DEAD_DYING)
message_end()
}
public UpdateScoreBoard(victim, attacker)
{
new victim_frags = get_user_frags(victim) + 0
new attacker_frags = get_user_frags(attacker) + 1
new attacker_money = cs_get_user_money(attacker) + 0
set_pev(victim, pev_frags, float(victim_frags))
set_pev(attacker, pev_frags, float(attacker_frags))
cs_set_user_money(attacker, attacker_money, 1)
}
public fm_emitsound(id, channel, const sample[], Float:volume, Float:attn, flags, pitch)
{
if (!zp_get_user_zombie(id) || zp_get_user_nemesis(id) || zp_get_user_survivor(id) || zp_get_user_zombie_class(id) != g_zclass_assassin)
return FMRES_IGNORED;
if((sample[7] == 'b' && sample[8] == 'h' && sample[9] == 'i' && sample[10] == 't') || (sample[7] == 'h' && sample[8] == 'e' && sample[9] == 'a' && sample[10] == 'd'))
{
emit_sound(id, channel, g_zombie_pain_snd[random(sizeof(g_zombie_pain_snd))], volume, attn, flags, pitch)
return FMRES_SUPERCEDE;
}
if(sample[7] == 'd' && ((sample[8] == 'i' && sample[9] == 'e') || (sample[8] == 'e' && sample[9] == 'a')))
{
emit_sound( id, channel, g_zombie_death_snd[random(sizeof(g_zombie_death_snd))], volume, attn, flags, pitch)
return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}
Someone know tutorial??
/*
[ZP] Class : Assassin Zombie
(Powerful zombie class)
by Fry!
Description :
This is one of powerful zombies. Cuz now you can chose between infect and kill humans.
Press +Attack2 to kill people.
Changelog :
28/12/2009 - v1.0 - Public release
*/
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>
#include <zombieplague>
#include <fakemeta>
#define PLUGIN "[ZP] Class : Assassin Zombie"
#define VERSION "1.0"
#define AUTHOR "Fry!"
new const zclass_name[] = "Assassin Zombie"
new const zclass_info[] = "HP+++ Speed++ Knockback++"
new const zclass_model[] = "zombie_source"
new const zclass_clawmodel[] = "v_knife_zombie.mdl"
const zclass_health = 2430
const zclass_speed = 220
const Float:zclass_gravity = 1.0
const Float:zclass_knockback = 1.55
new g_msgScoreAttrib
new g_zclass_assassin
new const g_zombie_pain_snd[][] =
{
"zombie_plague/096/Scream.wav"
}
new const g_zombie_death_snd[][] =
{
"zombie_plague/custom/die1.wav",
"zombie_plague/custom/die2.wav",
"zombie_plague/custom/die3.wav"
}
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_cvar("zp_zclass_assassin_zombie",VERSION,FCVAR_SERVER|FCVAR_EXTDLL|FCVAR_UNLOGGED|FCVAR_SPONLY)
g_msgScoreAttrib = get_user_msgid("ScoreAttrib")
RegisterHam(Ham_TakeDamage, "player", "fw_PlayerTakeDamage")
new i;
for(i = 0; i < sizeof g_zombie_pain_snd; i++) precache_sound(g_zombie_pain_snd);
for(i = 0; i < sizeof g_zombie_death_snd; i++) precache_sound(g_zombie_death_snd);
}
public plugin_precache()
{
g_zclass_assassin = zp_register_zombie_class(zclass_name, zclass_info, zclass_model, zclass_clawmodel, zclass_health, zclass_speed, zclass_gravity, zclass_knockback)
}
public zp_user_infected_post(player, infector)
{
if (zp_get_user_zombie_class(player) == g_zclass_assassin)
{
client_print(player, print_chat, "[ZP] You are now Assassin Zombie")
client_print(player, print_chat, "[ZP] You can chose between infect and kill people")
}
}
public zp_user_infect_attempt(victim, infector, nemesis)
{
if (zp_get_user_zombie_class(infector) == g_zclass_assassin)
{
new button = pev(infector, pev_button)
if (button & IN_ATTACK2)
{
ExecuteHamB(Ham_Killed, victim, infector, 0)
}
else
return PLUGIN_CONTINUE
return ZP_PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
public fw_PlayerTakeDamage(id, inflictor, attacker, Float:damage, damage_type)
{
if (!is_user_alive(id) || !is_user_bot(id) || !zp_get_user_zombie(id))
return HAM_IGNORED
if (zp_get_user_zombie_class(id) != g_zclass_assassin)
return HAM_IGNORED
new attacker_name[32]
new button = pev(attacker, pev_button)
new GetMaxPlayers = get_maxplayers()
new GetHumanCount = zp_get_human_count()
get_user_name(attacker, attacker_name, 31)
if (!zp_is_swarm_round() || !zp_is_plague_round() || !zp_is_survivor_round() || !zp_is_nemesis_round() || GetHumanCount == GetMaxPlayers)
{
if (button & IN_ATTACK2)
{
if (zp_get_user_zombie_class(attacker) == g_zclass_assassin)
{
FixDeadAttrib(id)
UpdateScoreBoard(id, attacker)
client_print(id, print_chat, "[ZP] Hmm looks like %s didn't like you and decided to kill You!", attacker_name)
return HAM_SUPERCEDE
}
}
}
return HAM_SUPERCEDE
}
public FixDeadAttrib(id)
{
message_begin(MSG_BROADCAST, g_msgScoreAttrib)
write_byte(id)
write_byte(DEAD_DYING)
message_end()
}
public UpdateScoreBoard(victim, attacker)
{
new victim_frags = get_user_frags(victim) + 0
new attacker_frags = get_user_frags(attacker) + 1
new attacker_money = cs_get_user_money(attacker) + 0
set_pev(victim, pev_frags, float(victim_frags))
set_pev(attacker, pev_frags, float(attacker_frags))
cs_set_user_money(attacker, attacker_money, 1)
}
public fm_emitsound(id, channel, const sample[], Float:volume, Float:attn, flags, pitch)
{
if (!zp_get_user_zombie(id) || zp_get_user_nemesis(id) || zp_get_user_survivor(id) || zp_get_user_zombie_class(id) != g_zclass_assassin)
return FMRES_IGNORED;
if((sample[7] == 'b' && sample[8] == 'h' && sample[9] == 'i' && sample[10] == 't') || (sample[7] == 'h' && sample[8] == 'e' && sample[9] == 'a' && sample[10] == 'd'))
{
emit_sound(id, channel, g_zombie_pain_snd[random(sizeof(g_zombie_pain_snd))], volume, attn, flags, pitch)
return FMRES_SUPERCEDE;
}
if(sample[7] == 'd' && ((sample[8] == 'i' && sample[9] == 'e') || (sample[8] == 'e' && sample[9] == 'a')))
{
emit_sound( id, channel, g_zombie_death_snd[random(sizeof(g_zombie_death_snd))], volume, attn, flags, pitch)
return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}