Sorry here is code
PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#define IsPlayer(%1) (1 <= %1 <= get_maxplayers())
new players[32], inum, semiclip_cvar
public plugin_init() {
register_plugin("Semiclip", "1.1", "Crusher918") // Edited by PurposeLess
RegisterHam(Ham_Player_PreThink, "player", "FwdHamPlayerPreThink", true)
RegisterHam(Ham_Killed, "player", "FwdHamPlayerKilled", true)
register_forward(FM_ShouldCollide, "FwdShouldCollide")
register_forward(FM_AddToFullPack, "FwdAddToFullPack", true)
semiclip_cvar = register_cvar("semiclip", "0")
}
public FwdHamPlayerPreThink(const id) {
Semiclip(id, SOLID_NOT)
}
public client_PostThink(id) {
Semiclip(id, SOLID_SLIDEBOX)
}
public FwdHamPlayerKilled() {
get_players(players, inum, "a")
for(new i=0; i < inum; i++) {
entity_set_int(players[i], EV_INT_solid, SOLID_SLIDEBOX)
}
}
public FwdShouldCollide(const touched, const other) {
if(get_user_team(touched) != get_user_team(other))
return FMRES_IGNORED;
if(IsPlayer(touched) && IsPlayer(other)) {
forward_return(FMV_CELL, 0)
return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}
public FwdAddToFullPack(es, e, iEnt, id, hostflags, player, pSet) {
if(get_user_team(id) != get_user_team(iEnt))
return
if(player && id != iEnt && get_orig_retval()) {
set_es(es, ES_Solid, SOLID_NOT)
}
}
Semiclip(const id, const solid) {
if(get_pcvar_num(semiclip_cvar)) {
if(!is_user_alive(id))
return
get_players(players, inum, "a")
for(new i = 0; i < inum; i++) {
if(id != players[i]) {
if(get_user_team(players[i]) != get_user_team(id))
return
entity_set_int(players[i], EV_INT_solid, solid)
}
}
}
}