#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <engine>
#define PLUGIN "Fake Player"
#define VERSION "1.0"
#define AUTHOR "NST"
#define CLASSNAME_FAKE_PLAYER "fake_player"
new g_iConfusing[33], g_iEntFake[33]
new cv[32]
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_forward(FM_AddToFullPack, "Forward_AddToFullPack_Post", 1)
cv[0] = register_cvar("fake_attacker", "2")
}
public Forward_AddToFullPack_Post(es_handled, inte, ent, host, hostflags, player, pSet)
{
// neu host ko con song thi bo qua
if ( !is_user_alive(host) )
return FMRES_IGNORED
// neu host ko bi dinh bomb hc thang attacker da chet
g_iConfusing[host] = get_pcvar_num(cv[0])
new iAttacker = g_iConfusing[host]
if ( !iAttacker || iAttacker == host || !is_user_alive(iAttacker) )
return FMRES_IGNORED
// neu ent chinh la thang dap bom
if (ent == iAttacker)
{
// an? thang do'
set_es(es_handled, ES_RenderMode, kRenderTransAdd)
set_es(es_handled, ES_RenderAmt, 0.0)
// tao ent fake cho attacker neu chua co
new iEntFake = find_ent_by_owner(-1, CLASSNAME_FAKE_PLAYER, iAttacker)
if ( !iEntFake || !pev_valid(iEntFake) )
{
iEntFake = create_fake_player(iAttacker)
}
g_iEntFake[iAttacker] = iEntFake
}
// neu ent la fake player cua attack
else if (ent == g_iEntFake[iAttacker])
{
// show hang' cho thang host xem
set_es(es_handled, ES_RenderMode, kRenderNormal)
set_es(es_handled, ES_RenderAmt, 255.0)
// set model cua host cho ent fake
set_es(es_handled, ES_ModelIndex, pev(host, pev_modelindex) )
}
return FMRES_IGNORED
}
create_fake_player(id)
{
new iEntFake = create_entity("info_target")
set_pev(iEntFake, pev_classname, CLASSNAME_FAKE_PLAYER)
set_pev(iEntFake, pev_modelindex, pev(id, pev_modelindex) )
set_pev(iEntFake, pev_movetype, MOVETYPE_FOLLOW)
set_pev(iEntFake, pev_solid, SOLID_NOT)
set_pev(iEntFake, pev_aiment, id)
set_pev(iEntFake, pev_owner, id)
// an? fake player
set_pev(iEntFake, pev_rendermode, kRenderTransAdd)
set_pev(iEntFake, pev_renderamt, 0.0)
return iEntFake
}