I found this plugin on a Russian site. The plugin is going well, but it has a prroblema.This plugin allows you to pass through all players, even through opponents.I'd like it if it can be edited so you can only go through teammates, not opponents.Thanks.
HTML Code:
#include <amxmodx>
#include <engine>
#include <fun>
#include <fakemeta>
#include <hamsandwich>
new const VERSION[] = "1.2"
new hologramas
new semiclip
const MAX_PLAYERS = 32
new g_iPlayers[MAX_PLAYERS], g_iNum, g_iPlayer, i
new const g_szAliveFlags[] = "a"
#define RefreshPlayersList() get_players(g_iPlayers, g_iNum, g_szAliveFlags)
public plugin_init()
{
hologramas = register_cvar("hologram","0")
semiclip = register_cvar("semiclip","1")
register_plugin("Hologram", VERSION, "G.")
register_forward(FM_AddToFullPack, "FM_client_AddToFullPack_Post", 1)
RegisterHam(Ham_Player_PreThink, "player", "Ham_CBasePlayer_PreThink_Post", 1)
}
public FM_client_AddToFullPack_Post(es, e, iEnt, id, hostflags, player, pSet)
{
if( player && id != iEnt && get_orig_retval() && is_user_alive(id) )
{
if( get_pcvar_num(semiclip) == 1)
{
set_es(es, ES_Solid, SOLID_NOT)
}
if( get_pcvar_num(hologramas) == 1 )
{
set_es(es, ES_RenderMode, kRenderTransAdd)
set_es(es, ES_RenderAmt, 80)
set_es(es, ES_RenderColor, 0, 0, 0)
set_es(es, ES_RenderFx, kRenderFxDistort)
}
if(is_user_alive(id) && get_pcvar_num(semiclip) == 0 )
{
set_pev(id, pev_solid, SOLID_SLIDEBOX)
}
}
}
public Ham_CBasePlayer_PreThink_Post(id)
{
if( !is_user_alive(id) )
{
return
}
if(get_pcvar_num(semiclip) == 1)
{
RefreshPlayersList()
for(i = 0; i<g_iNum; i++)
{
g_iPlayer = g_iPlayers[i]
if( id != g_iPlayer )
{
set_pev(g_iPlayer, pev_solid, SOLID_NOT)
}
}
}
}
public client_PostThink(id)
{
if( !is_user_alive(id) )
{
return
}
if(get_pcvar_num(semiclip) == 1)
{
RefreshPlayersList()
for(i = 0; i<g_iNum; i++)
{
g_iPlayer = g_iPlayers[i]
if( g_iPlayer != id )
{
set_pev(g_iPlayer, pev_solid, SOLID_SLIDEBOX)
}
}
}
}