try this
PHP Code:
//cred. xpaw for his original semiclip code
#include <amxmodx>
#include <fun>
#include <fakemeta>
#define PLUGIN "hns SEMICLIP"
#define VERSION "0.0"
#define AUTHOR "Tolsty"
#pragma semicolon 1;
new g_iSemiClip[33];
new air[33];
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR);
register_forward( FM_PlayerPreThink, "fwdPlayerPreThink" );
register_forward( FM_StartFrame, "fwStartFrame");
register_forward( FM_AddToFullPack, "fwFullPack", 1 );
}
public fwdAddToFullPack_Post( es_handle, e, ent, host, hostflags, player, pset ) {
if(player && g_iSemiClip[ent] && g_iSemiClip[host]) {
set_es(es_handle, ES_Solid, SOLID_NOT);
set_es(es_handle, ES_RenderMode, kRenderTransAlpha);
set_es(es_handle, ES_RenderAmt, 100);
}
return FMRES_IGNORED;
}
public fwdPlayerPreThink( iPlayer ) {
static flags;
flags = pev( iPlayer, pev_flags );
if ( flags & FL_ONGROUND || (pev(iPlayer, pev_movetype) == MOVETYPE_FLY) ) {
remove_task(iPlayer);
air[iPlayer] = false;
}
}
public fwStartFrame(plr) {
static iPlayers[32], iNum, iPlayer, iPlayer2;
get_players(iPlayers, iNum);
arrayset(g_iSemiClip, 0, sizeof(g_iSemiClip));
for(new i=0; i < iNum; i++) {
iPlayer = iPlayers[i];
if( !is_user_alive(iPlayer) )
continue;
for(new j=0; j < iNum; j++) {
iPlayer2 = iPlayers[j];
if(iPlayer == iPlayer2 || !is_user_alive(iPlayer2))
continue;
static Float:vOrigin1[3], Float:vOrigin2[3];
pev(iPlayer, pev_origin, vOrigin1);
pev(iPlayer2, pev_origin, vOrigin2);
static team[33];
team[iPlayer] = get_user_team( iPlayer );
static flags;
flags = pev( iPlayer, pev_flags );
if ( !( flags & FL_ONGROUND ) && (pev(iPlayer, pev_movetype) != MOVETYPE_FLY) ) {
set_task(0.8, "inair", iPlayer);
}
if ( vector_distance( vOrigin1, vOrigin2 ) < 220 && (pev(iPlayer, pev_movetype) == MOVETYPE_FLY && (team[iPlayer] != team[iPlayer2]) || air[iPlayer] ) ) {
g_iSemiClip[iPlayer] = true;
g_iSemiClip[iPlayer2] = true;
}
else if( vector_distance( vOrigin1, vOrigin2 ) < 220 && (team[iPlayer] == team[iPlayer2]) ) {
g_iSemiClip[iPlayer] = true;
g_iSemiClip[iPlayer2] = true;
}
}
}
for(new i=0; i < iNum;i++) {
iPlayer = iPlayers[i];
if( is_user_alive(iPlayer) )
set_pev(iPlayer, pev_solid, g_iSemiClip[iPlayer] ? SOLID_NOT : SOLID_SLIDEBOX);
}
return FMRES_IGNORED;
}
public inair(plr) {
new flags;
flags = pev( plr, pev_flags );
if ( flags & FL_ONGROUND || (pev(plr, pev_movetype) == MOVETYPE_FLY) ) {
air[plr] = false;
}
else {
air[plr] = true;
}
}