/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <xs>
#define PLUGIN "Kill effect"
#define VERSION "1.0"
#define AUTHOR "Dias , fear_ezmegmi"
new Float:g_iTask[33];
new g_iKills[33];
new g_effect_id[33], g_had_effect[33]
new const effect_model[] = "sprites/kill_1.spr"
new const effect_model2[] = "sprites/kill_2.spr"
new const effect_model3[] = "sprites/kill_3.spr"
new const effect_model4[] = "sprites/kill_4.spr"
new const effect_model5[] = "sprites/kill_5.spr"
new const effect_model6[] = "sprites/kill_6.spr"
new const effect_model7[] = "sprites/kill_7.spr"
new const effect_model8[] = "sprites/kill_8.spr"
new const effect_model9[] = "sprites/kill_knife.spr"
new const effect_model10[] = "sprites/kill_headshot.spr"
new const effect_model11[] = "sprites/kill_he.spr"
new cvar_scale, cvar_showtime, cvar_lightlevel
public plugin_init()
{
RegisterHam(Ham_Spawn, "player", "fw_spawn_post", 1)
register_event("DeathMsg", "Player_Killed_Post", "a");
register_forward(FM_AddToFullPack, "fw_WhatTheFuck_Post", 1)
register_logevent("korveg",2,"1=Round_End")
cvar_scale = register_cvar("in-ef_scale", "0.035")
cvar_showtime = register_cvar("in-ef_showtime", "4.0")
cvar_lightlevel = register_cvar("in-ef_lightlevel", "1.0")
}
public Player_Killed_Post()
{
new victim = read_data(2);
new attacker = read_data(1);
new hs = read_data(3);
new fegyo[32];
read_data(4, fegyo, 31);
if(!is_user_connected(attacker))
return;
if(victim == attacker)
return;
if(get_user_weapon(attacker) == CSW_KNIFE)
{
show_knife(attacker)
set_task(2.0,"show_kills")
}
else
{
show_kills(victim, attacker)
}
if(hs)
{
show_headshot(attacker)
set_task(2.0,"show_kills")
}
if(equal(fegyo, "grenade"))
{
show_grenade(attacker)
set_task(2.0,"show_kills")
}
}
public show_kills(victim, attacker)
{
g_iKills[attacker]++;
g_iTask[attacker] = get_gametime();
g_iKills[victim] = 0;
g_iTask[victim] = 0.0;
if (g_iKills[attacker] == 1)
{
show_effect(attacker)
}
if (g_iKills[attacker] == 2)
{
show_effect2(attacker)
}
if (g_iKills[attacker] == 3)
{
show_effect3(attacker)
}
if (g_iKills[attacker] == 4)
{
show_effect4(attacker)
}
if (g_iKills[attacker] == 5)
{
show_effect5(attacker)
}
if (g_iKills[attacker] == 6)
{
show_effect6(attacker)
}
if (g_iKills[attacker] == 7)
{
show_effect7(attacker)
}
if (g_iKills[attacker] == 8)
{
show_effect8(attacker)
}
}
public plugin_precache()
{
precache_model(effect_model)
precache_model(effect_model2)
precache_model(effect_model3)
precache_model(effect_model4)
precache_model(effect_model5)
precache_model(effect_model6)
precache_model(effect_model7)
precache_model(effect_model8)
precache_model(effect_model9)
precache_model(effect_model10)
precache_model(effect_model11)
}
public fw_spawn_post(id)
{
if(g_had_effect[id])
remove_effect(id)
}
public show_knife(id)
{
g_effect_id[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "env_sprite"))
if (!pev_valid(g_effect_id[id]))
return
g_had_effect[id] = 1
set_pev(g_effect_id[id], pev_solid, SOLID_NOT)
set_pev(g_effect_id[id], pev_movetype, MOVETYPE_NONE)
engfunc(EngFunc_SetModel, g_effect_id[id], effect_model9)
set_pev(g_effect_id[id], pev_rendermode, kRenderTransAlpha)
set_pev(g_effect_id[id], pev_renderamt, 0.0)
set_pev(g_effect_id[id], pev_owner, id)
set_pev(g_effect_id[id], pev_scale, get_pcvar_float(cvar_scale))
set_pev(g_effect_id[id], pev_light_level, get_pcvar_float(cvar_lightlevel))
set_task(2.0, "remove_effect", g_effect_id[id])
}
public show_headshot(id)
{
g_effect_id[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "env_sprite"))
if (!pev_valid(g_effect_id[id]))
return
g_had_effect[id] = 1
set_pev(g_effect_id[id], pev_solid, SOLID_NOT)
set_pev(g_effect_id[id], pev_movetype, MOVETYPE_NONE)
engfunc(EngFunc_SetModel, g_effect_id[id], effect_model10)
set_pev(g_effect_id[id], pev_rendermode, kRenderTransAlpha)
set_pev(g_effect_id[id], pev_renderamt, 0.0)
set_pev(g_effect_id[id], pev_owner, id)
set_pev(g_effect_id[id], pev_scale, get_pcvar_float(cvar_scale))
set_pev(g_effect_id[id], pev_light_level, get_pcvar_float(cvar_lightlevel))
set_task(2.0, "remove_effect", g_effect_id[id])
}
public show_grenade(id)
{
g_effect_id[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "env_sprite"))
if (!pev_valid(g_effect_id[id]))
return
g_had_effect[id] = 1
set_pev(g_effect_id[id], pev_solid, SOLID_NOT)
set_pev(g_effect_id[id], pev_movetype, MOVETYPE_NONE)
engfunc(EngFunc_SetModel, g_effect_id[id], effect_model11)
set_pev(g_effect_id[id], pev_rendermode, kRenderTransAlpha)
set_pev(g_effect_id[id], pev_renderamt, 0.0)
set_pev(g_effect_id[id], pev_owner, id)
set_pev(g_effect_id[id], pev_scale, get_pcvar_float(cvar_scale))
set_pev(g_effect_id[id], pev_light_level, get_pcvar_float(cvar_lightlevel))
set_task(2.0, "remove_effect", g_effect_id[id])
}
public show_effect(id)
{
g_effect_id[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "env_sprite"))
if (!pev_valid(g_effect_id[id]))
return
g_had_effect[id] = 1
set_pev(g_effect_id[id], pev_solid, SOLID_NOT)
set_pev(g_effect_id[id], pev_movetype, MOVETYPE_NONE)
engfunc(EngFunc_SetModel, g_effect_id[id], effect_model)
set_pev(g_effect_id[id], pev_rendermode, kRenderTransAlpha)
set_pev(g_effect_id[id], pev_renderamt, 0.0)
set_pev(g_effect_id[id], pev_owner, id)
set_pev(g_effect_id[id], pev_scale, get_pcvar_float(cvar_scale))
set_pev(g_effect_id[id], pev_light_level, get_pcvar_float(cvar_lightlevel))
set_task(get_pcvar_float(cvar_showtime), "remove_effect", g_effect_id[id])
}
public show_effect2(id)
{
g_effect_id[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "env_sprite"))
if (!pev_valid(g_effect_id[id]))
return
g_had_effect[id] = 1
set_pev(g_effect_id[id], pev_solid, SOLID_NOT)
set_pev(g_effect_id[id], pev_movetype, MOVETYPE_NONE)
engfunc(EngFunc_SetModel, g_effect_id[id], effect_model2)
set_pev(g_effect_id[id], pev_rendermode, kRenderTransAlpha)
set_pev(g_effect_id[id], pev_renderamt, 0.0)
set_pev(g_effect_id[id], pev_owner, id)
set_pev(g_effect_id[id], pev_scale, get_pcvar_float(cvar_scale))
set_pev(g_effect_id[id], pev_light_level, get_pcvar_float(cvar_lightlevel))
set_task(get_pcvar_float(cvar_showtime), "remove_effect", g_effect_id[id])
}
public show_effect3(id)
{
g_effect_id[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "env_sprite"))
if (!pev_valid(g_effect_id[id]))
return
g_had_effect[id] = 1
set_pev(g_effect_id[id], pev_solid, SOLID_NOT)
set_pev(g_effect_id[id], pev_movetype, MOVETYPE_NONE)
engfunc(EngFunc_SetModel, g_effect_id[id], effect_model3)
set_pev(g_effect_id[id], pev_rendermode, kRenderTransAlpha)
set_pev(g_effect_id[id], pev_renderamt, 0.0)
set_pev(g_effect_id[id], pev_owner, id)
set_pev(g_effect_id[id], pev_scale, get_pcvar_float(cvar_scale))
set_pev(g_effect_id[id], pev_light_level, get_pcvar_float(cvar_lightlevel))
set_task(get_pcvar_float(cvar_showtime), "remove_effect", g_effect_id[id])
}
public show_effect4(id)
{
g_effect_id[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "env_sprite"))
if (!pev_valid(g_effect_id[id]))
return
g_had_effect[id] = 1
set_pev(g_effect_id[id], pev_solid, SOLID_NOT)
set_pev(g_effect_id[id], pev_movetype, MOVETYPE_NONE)
engfunc(EngFunc_SetModel, g_effect_id[id], effect_model4)
set_pev(g_effect_id[id], pev_rendermode, kRenderTransAlpha)
set_pev(g_effect_id[id], pev_renderamt, 0.0)
set_pev(g_effect_id[id], pev_owner, id)
set_pev(g_effect_id[id], pev_scale, get_pcvar_float(cvar_scale))
set_pev(g_effect_id[id], pev_light_level, get_pcvar_float(cvar_lightlevel))
set_task(get_pcvar_float(cvar_showtime), "remove_effect", g_effect_id[id])
}
public show_effect5(id)
{
g_effect_id[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "env_sprite"))
if (!pev_valid(g_effect_id[id]))
return
g_had_effect[id] = 1
set_pev(g_effect_id[id], pev_solid, SOLID_NOT)
set_pev(g_effect_id[id], pev_movetype, MOVETYPE_NONE)
engfunc(EngFunc_SetModel, g_effect_id[id], effect_model5)
set_pev(g_effect_id[id], pev_rendermode, kRenderTransAlpha)
set_pev(g_effect_id[id], pev_renderamt, 0.0)
set_pev(g_effect_id[id], pev_owner, id)
set_pev(g_effect_id[id], pev_scale, get_pcvar_float(cvar_scale))
set_pev(g_effect_id[id], pev_light_level, get_pcvar_float(cvar_lightlevel))
set_task(get_pcvar_float(cvar_showtime), "remove_effect", g_effect_id[id])
}
public show_effect6(id)
{
g_effect_id[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "env_sprite"))
if (!pev_valid(g_effect_id[id]))
return
g_had_effect[id] = 1
set_pev(g_effect_id[id], pev_solid, SOLID_NOT)
set_pev(g_effect_id[id], pev_movetype, MOVETYPE_NONE)
engfunc(EngFunc_SetModel, g_effect_id[id], effect_model6)
set_pev(g_effect_id[id], pev_rendermode, kRenderTransAlpha)
set_pev(g_effect_id[id], pev_renderamt, 0.0)
set_pev(g_effect_id[id], pev_owner, id)
set_pev(g_effect_id[id], pev_scale, get_pcvar_float(cvar_scale))
set_pev(g_effect_id[id], pev_light_level, get_pcvar_float(cvar_lightlevel))
set_task(get_pcvar_float(cvar_showtime), "remove_effect", g_effect_id[id])
}
public show_effect7(id)
{
g_effect_id[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "env_sprite"))
if (!pev_valid(g_effect_id[id]))
return
g_had_effect[id] = 1
set_pev(g_effect_id[id], pev_solid, SOLID_NOT)
set_pev(g_effect_id[id], pev_movetype, MOVETYPE_NONE)
engfunc(EngFunc_SetModel, g_effect_id[id], effect_model7)
set_pev(g_effect_id[id], pev_rendermode, kRenderTransAlpha)
set_pev(g_effect_id[id], pev_renderamt, 0.0)
set_pev(g_effect_id[id], pev_owner, id)
set_pev(g_effect_id[id], pev_scale, get_pcvar_float(cvar_scale))
set_pev(g_effect_id[id], pev_light_level, get_pcvar_float(cvar_lightlevel))
set_task(get_pcvar_float(cvar_showtime), "remove_effect", g_effect_id[id])
}
public show_effect8(id)
{
g_effect_id[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "env_sprite"))
if (!pev_valid(g_effect_id[id]))
return
g_had_effect[id] = 1
set_pev(g_effect_id[id], pev_solid, SOLID_NOT)
set_pev(g_effect_id[id], pev_movetype, MOVETYPE_NONE)
engfunc(EngFunc_SetModel, g_effect_id[id], effect_model8)
set_pev(g_effect_id[id], pev_rendermode, kRenderTransAlpha)
set_pev(g_effect_id[id], pev_renderamt, 0.0)
set_pev(g_effect_id[id], pev_owner, id)
set_pev(g_effect_id[id], pev_scale, get_pcvar_float(cvar_scale))
set_pev(g_effect_id[id], pev_light_level, get_pcvar_float(cvar_lightlevel))
set_task(get_pcvar_float(cvar_showtime), "remove_effect", g_effect_id[id])
}
public fw_WhatTheFuck_Post(es, e, ent, host, host_flags, player, p_set)
{
if(!(0 < host < 33))
return FMRES_IGNORED
if(ent != g_effect_id[host] || !pev_valid(ent))
return FMRES_IGNORED
if(pev(ent, pev_owner) != host)
return FMRES_IGNORED
if(!is_user_alive(host))
return FMRES_IGNORED
static Float:origin[3], Float:forvec[3], Float:voffsets[3], Float:Angles[3]
pev(host, pev_origin, origin)
pev(host, pev_view_ofs, voffsets)
pev(host, pev_angles, Angles)
xs_vec_add(origin, voffsets, origin)
// Get a forward vector in the direction of player's aim
velocity_by_aim(host, 10, forvec)
// Set the sprite on the new origin
xs_vec_add(origin, forvec, origin)
engfunc(EngFunc_SetOrigin, ent, origin)
set_es(es, ES_Origin, origin)
set_es(es, ES_Angles, Angles)
// Make the sprite visible
set_es(es, ES_RenderMode, kRenderTransAdd)
set_es(es, ES_RenderAmt, 200)
return FMRES_HANDLED
}
public remove_effect(ent)
{
g_had_effect[pev(ent, pev_owner)] = 0
if(pev_valid(ent))
engfunc(EngFunc_RemoveEntity, ent)
}
public korveg(id)
{
g_iKills[id] = 0;
}