PHP- Kodu:
#include < amxmodx >
#include < engine >
#include < fakemeta >
#include < hamsandwich >
#define IsPlayer(%1) ( 1 <= %1 <= g_iMaxPlayers )
new const g_szAliveFlags[ ] = "a";
new g_iPlayers[ 32 ], g_iNum, g_iPlayer, g_iMaxPlayers, i,cvar_ackapa;
public plugin_init( ) {
register_plugin("Semiclip", "1.0", "Crusher918")
register_forward( FM_ShouldCollide, "FwdShouldCollide" );
register_forward( FM_AddToFullPack, "FwdAddToFullPack", true );
RegisterHam( Ham_Player_PreThink, "player", "FwdHamPlayerPreThink", true );
RegisterHam( Ham_Killed, "player", "FwdHamPlayerKilled", true );
g_iMaxPlayers = get_maxplayers( );
cvar_ackapa = register_cvar("amx_semiclip_ackapa","1")
register_logevent("OyunBaslangic", 2, "1=Round_Start")
}
public OyunBaslangic() {
server_cmd("amx_semiclip_ackapa 1")
set_task(50.0,"semiclipkapat",123)
}
public semiclipkapat() {
server_cmd("amx_semiclip_ackapa 0")
client_print(0,print_chat,"[Semiclip]: Semiclip Kapatildi.Artik birbirinizin icinden gecemezsiniz.")
remove_task(123)
}
public FwdAddToFullPack( es, e, iEnt, id, hostflags, player, pSet ) {
if( player && id != iEnt && get_orig_retval( ) ) {
set_es( es, ES_Solid, SOLID_NOT );
}
}
public FwdShouldCollide( const iTouched, const iOther ) {
if( IsPlayer( iTouched ) && IsPlayer( iOther ) ) {
forward_return( FMV_CELL, 0 );
return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}
public FwdHamPlayerKilled( ) {
get_players( g_iPlayers, g_iNum, g_szAliveFlags );
for( i = 0; i < g_iNum; i++ ) {
entity_set_int( g_iPlayers[ i ], EV_INT_solid, SOLID_SLIDEBOX );
}
}
public FwdHamPlayerPreThink( const id )
Semiclip( id, SOLID_NOT );
public client_PostThink( id )
Semiclip( id, SOLID_SLIDEBOX );
Semiclip( const id, const iSolid ) {
if(get_pcvar_num(cvar_ackapa)) {
if( !is_user_alive( id ) )
return;
get_players( g_iPlayers, g_iNum, g_szAliveFlags );
for( i = 0; i < g_iNum; i++ ) {
g_iPlayer = g_iPlayers[ i ];
if( id != g_iPlayer )
entity_set_int( g_iPlayer, EV_INT_solid, iSolid );
}
}
}
EDIT: