Page 1 of 1

Team SemiClip reikalingas pagalba.

Posted: 2013 Jan 28 11:13
by Chemodan
Sveiki , reikalingas pluginas kuris leidžia tik CT VIP/ADMIN su flagu ADMIN_CHAT eiti kiaurai team , pluginas Semi Clip atrodo . Busiu dekingas. Nes nesigauna padaryt , kad veiktu taip kaip noriu.

Re: Team SemiClip reikalingas pagalba.

Posted: 2013 Jan 28 11:37
by laimiukas3

Code: Select all

#include <amxmodx>#include <hamsandwich>#include <fakemeta> public plugin_init(){    register_plugin("Admin NO Clip", "1.0", "[A]tomen")    RegisterHam(Ham_Spawn, "player", "fwd_Ham_Spawn_post", 1)} public fwd_Ham_Spawn_post(id){    if(get_user_flags(id) & ADMIN_CHAT && pev(id, pev_solid) != SOLID_TRIGGER)        set_pev(id, pev_solid, SOLID_TRIGGER)     return HAM_IGNORED} 

Re: Team SemiClip reikalingas pagalba.

Posted: 2013 Jan 28 12:25
by Chemodan
Jis veikia , bet jis ne švelniai praejna , reikia dar pralysti į žmogu.. ir Terai negali liesti Admina ar visus net CT..

Code: Select all

#include <amxmodx>#include <fakemeta> #pragma semicolon 1 #define DISTANCE 120 new g_iTeam[33];new bool:g_bSolid[33];new bool:g_bHasSemiclip[33];new Float:g_fOrigin[33][3]; new bool:g_bSemiclipEnabled; new g_iForwardId[3];new g_iMaxPlayers;new g_iCvar[3]; public plugin_init( ){    register_plugin( "(Team-)Semiclip", "1.2", "SchlumPF*" );        g_iCvar[0] = register_cvar( "semiclip_enabled", "1" );    g_iCvar[1] = register_cvar( "semiclip_teamclip", "0" );    g_iCvar[2] = register_cvar( "semiclip_transparancy", "1" );        register_forward( FM_ClientCommand, "fwdClientCommand" );        if( get_pcvar_num( g_iCvar[0] ) )    {        g_iForwardId[0] = register_forward( FM_PlayerPreThink, "fwdPlayerPreThink" );        g_iForwardId[1] = register_forward( FM_PlayerPostThink, "fwdPlayerPostThink" );        g_iForwardId[2] = register_forward( FM_AddToFullPack, "fwdAddToFullPack_Post", 1 );                g_bSemiclipEnabled = true;    }    else        g_bSemiclipEnabled = false;        g_iMaxPlayers = get_maxplayers( );} public fwdPlayerPreThink( plr ){    static id, last_think;     if( last_think > plr )    {        for( id = 1 ; id <= g_iMaxPlayers ; id++ )        {            if( is_user_alive( id ) )            {                if( get_pcvar_num( g_iCvar[1] ) )                    g_iTeam[id] = get_user_team( id );                                g_bSolid[id] = pev( id, pev_solid ) == SOLID_SLIDEBOX ? true : false;                pev( id, pev_origin, g_fOrigin[id] );            }            else                g_bSolid[id] = false;        }    }     last_think = plr;     if( g_bSolid[plr] )    {        for( id = 1 ; id <= g_iMaxPlayers ; id++ )        {            if( g_bSolid[id] && get_distance_f( g_fOrigin[plr], g_fOrigin[id] ) <= DISTANCE && id != plr )            {                if( get_pcvar_num( g_iCvar[1] ) && g_iTeam[plr] != g_iTeam[id] )                    return FMRES_IGNORED;                    set_pev( id, pev_solid, SOLID_NOT );                g_bHasSemiclip[id] = true;            }        }    }     return FMRES_IGNORED;} public fwdPlayerPostThink( plr ){    static id;     for( id = 1 ; id <= g_iMaxPlayers ; id++ )    {        if( g_bHasSemiclip[id] )        {            set_pev( id, pev_solid, SOLID_SLIDEBOX );            g_bHasSemiclip[id] = false;        }    }} public fwdAddToFullPack_Post( es_handle, e, ent, host, hostflags, player, pset ){    if( player )    {        if( g_bSolid[host] && g_bSolid[ent] && get_distance_f( g_fOrigin[host], g_fOrigin[ent] ) <= DISTANCE )        {            if( get_pcvar_num( g_iCvar[1] ) && g_iTeam[host] != g_iTeam[ent] )                return FMRES_IGNORED;                            set_es( es_handle, ES_Solid, SOLID_NOT ); // makes semiclip flawless                        if( get_pcvar_num( g_iCvar[2] ) == 1 )            {                set_es( es_handle, ES_RenderMode, kRenderTransAlpha );                set_es( es_handle, ES_RenderAmt, 85 );            }            else if( get_pcvar_num( g_iCvar[2] ) == 2 )            {                set_es( es_handle, ES_Effects, EF_NODRAW );                set_es( es_handle, ES_Solid, SOLID_NOT );            }        }    }        return FMRES_IGNORED;} // is there a better way to detect changings of g_iCvar[0]?public fwdClientCommand( plr ){    // use the forwards just when needed, for good performance    if( !get_pcvar_num( g_iCvar[0] ) && g_bSemiclipEnabled )    {        unregister_forward( FM_PlayerPreThink, g_iForwardId[0] );        unregister_forward( FM_PlayerPostThink, g_iForwardId[1] );        unregister_forward( FM_AddToFullPack, g_iForwardId[2], 1 );                g_bSemiclipEnabled = false;    }    else if( get_pcvar_num( g_iCvar[0] ) && !g_bSemiclipEnabled )    {        g_iForwardId[0] = register_forward( FM_PlayerPreThink, "fwdPlayerPreThink" );        g_iForwardId[1] = register_forward( FM_PlayerPostThink, "fwdPlayerPostThink" );        g_iForwardId[2] = register_forward( FM_AddToFullPack, "fwdAddToFullPack_Post", 1 );                g_bSemiclipEnabled = true;    }}