Raised This Month: $51 Target: $400
 12% 

Solved [Help] admins cant grab owners


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Mikaeel123
Senior Member
Join Date: Oct 2018
Old 06-12-2019 , 03:27   [Help] admins cant grab owners
Reply With Quote #1

Hi . i have a plugin grab . this is mg_grab and i want to block admins cant grab owners flag "a"
How do it ??


PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
#include <dhudmessage>

#pragma tabsize 0

#define PLUGIN         "MG Grab"
#define VERSION        "1.0"
#define AUTHOR        "Nickron"

#define ADMIN         ADMIN_LEVEL_F 
#define RESON_KICK    "Kick [MG Grab] 4utau PravuLa"
#define GRAB_MENU

#define TSK_CHKE 50

#define SF_FADEOUT 0

new client_data[33][4]
#define GRABBED  0
#define GRABBER  1
#define GRAB_LEN 2
#define FLAGS    3

#define CDF_IN_PUSH   (1<<0)
#define CDF_IN_PULL   (1<<1)
#define CDF_NO_CHOKE  (1<<2)

enum
{
    
0.0,
    
255.0,
    
255.0,

    
200.0
};

new const 
Menu[][] = 
{
    
"",
    
"MENU_1",
    
"MENU_2",
    
"MENU_3",
    
"MENU_4",
    
"MENU_5",
    
"MENU_6"
};

new 
p_enabledp_players_only
new p_throw_forcep_min_distp_speedp_grab_force
new p_choke_timep_choke_dmgp_auto_choke
new p_glow
new speed_off[33]
new 
g_short
new model_gibs
new MAXPLAYERS
new SVC_SCREENSHAKESVC_SCREENFADEWTF_DAMAGE

public plugin_init( )
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
register_event("CurWeapon""CurrentWeapon""be""1=1")
    
RegisterHam(Ham_Spawn"player""SpawnPlayer")

    
p_enabled register_cvar"gp_enabled""1" )
    
p_players_only register_cvar"gp_players_only""0" )
    
    
p_min_dist register_cvar "gp_min_dist""90" )
    
p_throw_force register_cvar"gp_throw_force""1500" )
    
p_grab_force register_cvar"gp_grab_force""8" )
    
p_speed register_cvar"gp_speed""5" )
    
    
p_choke_time register_cvar"gp_choke_time""1.5" )
    
p_choke_dmg register_cvar"gp_choke_dmg""5" )
    
p_auto_choke register_cvar"gp_auto_choke""1" )
    
    
p_glow register_cvar"gp_glow""1" )
    
    
register_clcmd"amx_grab""force_grab"ADMIN"Grab client & teleport to you." )
    
register_clcmd"+grab""grab"ADMIN"bind a key to +grab" )
    
register_clcmd"-grab""unset_grabbed" )
    
    
register_clcmd"+push""push"ADMIN"bind a key to +push" )
    
register_clcmd"-push""push" )
    
register_clcmd"+pull""pull"ADMIN"bind a key to +pull" )
    
register_clcmd"-pull""pull" )
    
register_clcmd"push""push2" )
    
register_clcmd"pull""pull2" )
    
    
register_clcmd"drop" ,"throw" )
    
    
register_event"DeathMsg""DeathMsg""a" )
    
    
register_forwardFM_PlayerPreThink"fm_player_prethink" )
    
    
register_dictionary"grab_plus.txt" )
    
    
MAXPLAYERS get_maxplayers()
    
    
SVC_SCREENFADE get_user_msgid"ScreenFade" )
    
SVC_SCREENSHAKE get_user_msgid"ScreenShake" )
    
WTF_DAMAGE get_user_msgid"Damage" )

    
register_dictionary("mg_grab.txt");
}

public 
plugin_precache( )
{
    
precache_sound("player/PL_PAIN2.WAV")
    
precache_sound("MG_grab/grab_victim_xa.wav"
    
precache_sound("MG_grab/grab_id_mine.wav"
    
precache_sound("MG_grab/grab_weapon.wav"
    
precache_sound("MG_grab/grab_bury.wav"
    
g_short precache_model("sprites/MG_grab/energy_grab.spr");
    
model_gibs precache_model("models/rockgibs.mdl")
}

public 
fm_player_prethinkid )
{
    new 
target
    
//Search for a target
    
if ( client_data[id][GRABBED] == -)
    {
        new 
Float:orig[3], Float:ret[3]
        
get_view_posidorig )
        
ret vel_by_aimid9999 )
        
        
ret[0] += orig[0]
        
ret[1] += orig[1]
        
ret[2] += orig[2]
        
        
target tracelineorigretidret )
        
        if( 
target <= MAXPLAYERS )
        {
            if( 
is_grabbedtargetid ) ) return FMRES_IGNORED
            set_grabbed
idtarget )
        }
        else if( !
get_pcvar_nump_players_only ) )
        {
            new 
movetype
            
if( target && pev_validtarget ) )
            {
                
movetype pevtargetpev_movetype )
                if( !( 
movetype == MOVETYPE_WALK || movetype == MOVETYPE_STEP || movetype == MOVETYPE_TOSS ) )
                    return 
FMRES_IGNORED
            
}
            else
            {
                
target 0
                
new ent engfuncEngFunc_FindEntityInSphere, -1ret12.0 )
                while( !
target && ent )
                {
                    
movetype peventpev_movetype )
                    if( ( 
movetype == MOVETYPE_WALK || movetype == MOVETYPE_STEP || movetype == MOVETYPE_TOSS )
                            && 
ent != id  )
                        
target ent
                    ent 
engfuncEngFunc_FindEntityInSphereentret12.0 )
                }
            }
            if( 
target )
            {
                if( 
is_grabbedtargetid ) ) return FMRES_IGNORED
                set_grabbed
idtarget )
            }
        }
    }
    
    
target client_data[id][GRABBED]
    
//If they've grabbed something
    
if( target )
    {
        if( !
pev_validtarget ) || ( pevtargetpev_health ) < && pevtargetpev_max_health ) ) )
        {
            
unset_grabbedid )
            return 
FMRES_IGNORED
        
}
         
        
//Use key choke
        
if( pevidpev_button ) & IN_USE )
            
do_chokeid )
        
        
//Push and pull
        
new cdf client_data[id][FLAGS]
        if ( 
cdf CDF_IN_PULL )
            
do_pullid )
        else if ( 
cdf CDF_IN_PUSH )
            
do_pushid )
        
        if( 
target MAXPLAYERS grab_thinkid )
    }
    
    
//If they're grabbed
    
target client_data[id][GRABBER]
    if( 
target grab_thinktarget )
    
    return 
FMRES_IGNORED
}

public 
grab_thinkid //id of the grabber
{
    new 
target client_data[id][GRABBED]
    
    
//Keep grabbed clients from sticking to ladders
    
if( pevtargetpev_movetype ) == MOVETYPE_FLY && !(pevtargetpev_button ) & IN_JUMP ) ) client_cmdtarget"+jump;wait;-jump" )
    
    
//Move targeted client
    
new Float:tmpvec[3], Float:tmpvec2[3], Float:torig[3], Float:tvel[3]
    
    
get_view_posidtmpvec )
    
    
tmpvec2 vel_by_aimidclient_data[id][GRAB_LEN] )
    
    
torig get_target_origin_ftarget )
    
    new 
force get_pcvar_nump_grab_force )
    
    
tvel[0] = ( ( tmpvec[0] + tmpvec2[0] ) - torig[0] ) * force
    tvel
[1] = ( ( tmpvec[1] + tmpvec2[1] ) - torig[1] ) * force
    tvel
[2] = ( ( tmpvec[2] + tmpvec2[2] ) - torig[2] ) * force
    
    set_pev
targetpev_velocitytvel )
}

stock Float:get_target_origin_fid )
{
    new 
Float:orig[3]
    
pevidpev_originorig )
    
    
//If grabbed is not a player, move origin to center
    
if( id MAXPLAYERS )
    {
        new 
Float:mins[3], Float:maxs[3]
        
pevidpev_minsmins )
        
pevidpev_maxsmaxs )
        
        if( !
mins[2] ) orig[2] += maxs[2] / 2
    
}
    
    return 
orig
}

public 
grabidlevelcid )
{
    if( !
cmd_accessidlevelcid) || !get_pcvar_nump_enabled ) ) return PLUGIN_HANDLED
    
    
if ( !client_data[id][GRABBED] ) client_data[id][GRABBED] = -1
    
    
return PLUGIN_HANDLED
}

public 
SpawnPlayer(id)
    
speed_off[id] = false

public CurrentWeapon(id)
{
    if(
speed_off[id])
        
set_pev(idpev_maxspeed00000.0)
}

public 
grab_menu(id
{
    new 
name[32]
    new 
target client_data[id][GRABBED]
    if(
target && is_user_alive(target))
    {
        
get_user_name(targetnamecharsmax(name))
    }
    new 
Item[512], Str[10], menu;

    
formatex(Itemcharsmax(Item), "%L"id"MENU_NAME"name);
    
menu menu_create(Item"menu_handler")

    for(new 
1<= charsmax(Menu); i++)
    {
        
num_to_str(iStrcharsmax(Str));

        
formatex(Itemcharsmax(Item), "%L"idMenu[i]);
        
menu_additem(menuItemStr0);
    }
    
formatex(Itemcharsmax(Item), "%L"id"MENU_EXIT");
    
menu_setprop(menuMPROP_EXITNAMEItem);

    
menu_display(idmenu0);

    return 
PLUGIN_HANDLED;
}
     
public 
menu_handler(idmenuitem
{
    if(
item == MENU_EXIT
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED
    
}
         
    new 
data[6], iName[64], accesscallback
    menu_item_getinfo
(menuitemaccessdata5iName63callback)
         
    new 
key str_to_num(data)
    new 
target client_data[id][GRABBED]
         
    switch(
key
    {
        case 
1:
        {
            if(
target && is_user_alive(target))
            {
                
grab_eff_zd(idtarget)
                
server_cmd("kick #%d ^"%s^""get_user_userid(target), RESON_KICK)
            }
        }
        case 
2:
        {
            if(
target && is_user_alive(target))
            {
                
user_kill(target)
            }
        }
        case 
3:
        {
            if(
target && is_user_alive(target))
            {
                
fm_strip_user_weapons(target)
                
fm_give_item(target"weapon_knife")                
            }
        }
        case 
4:
        {
            if(
target && is_user_alive(target))
            {
                
Bury(idtarget)
            }
        }
        case 
5:
        {
            if(
target && is_user_alive(target))
            {
                
Bury_off(idtarget)
            }
        }
        case 
6:
        {
            if(
target && is_user_alive(target))
            {
                
pull(id)
            }
        }
        case 
7:
        {
            if(
target && is_user_alive(target))
            {
                
set_pev(targetpev_punchangle, { 400.0999.0400.0 })
            }
        }
    }
    return 
PLUGIN_HANDLED
}

public throw( 
id )
{
    new 
target client_data[id][GRABBED]
    if( 
target )
    {
        
set_pevtargetpev_velocityvel_by_aimidget_pcvar_num(p_throw_force) ) )
        
unset_grabbedid )
        return 
PLUGIN_HANDLED
    
}

    return 
PLUGIN_CONTINUE
}

public 
unset_grabbedid )
{
    new 
target client_data[id][GRABBED]
    if( 
target && pev_validtarget ) )
    {
        
set_pevtargetpev_renderfxkRenderFxNone )
        
set_pevtargetpev_rendercolor, {255.0255.0255.0} )
        
set_pevtargetpev_rendermodekRenderNormal )
        
set_pevtargetpev_renderamt16.0 )
        
        if( 
target <= MAXPLAYERS )
            
client_data[target][GRABBER] = 0
    
}
    
show_menu(id0"^n"1)
    
client_data[id][GRABBED] = 0
}

//Grabs onto someone
public set_grabbedidtarget )
{
    if( 
get_pcvar_nump_glow ) )
    {
        
set_pevtargetpev_renderfxkRenderFxGlowShell )
        
set_pevtargetpev_rendercolor, {rgb})
        
set_pevtargetpev_rendermodekRenderTransColor )
        
set_pevtargetpev_renderamt)
    }
    
    if( 
target <= MAXPLAYERS )
        
client_data[target][GRABBER] = id
    client_data
[id][FLAGS] = 0
    client_data
[id][GRABBED] = target
    
new name[33], name2[33]
    
get_user_name(idname32
    
get_user_name(targetname232)
    if(
get_user_team(target)==|| get_user_team(target)==2)
    {        
        
client_cmd(target"spk MG_grab/grab_victim_xa.wav")
        
client_cmd(id"spk MG_grab/grab_id_mine.wav"
        
ChatColor(target"%L"target"CHAT_1"name)  
        
ChatColor(id"%L"id"CHAT_2"name2)
        
grab_eff(target)
        
#if defined GRAB_MENU
        
grab_menu(id)
        
#endif
    
}
    else
    {
        
ChatColor(id"%L"id"CHAT_3")
        
client_cmd(0"spk MG_grab/grab_weapon.wav"
    }
    new 
Float:torig[3], Float:orig[3]
    
pevtargetpev_origintorig )
    
pevidpev_originorig )
    
client_data[id][GRAB_LEN] = floatroundget_distance_ftorigorig ) )
    if( 
client_data[id][GRAB_LEN] < get_pcvar_nump_min_dist ) ) client_data[id][GRAB_LEN] = get_pcvar_nump_min_dist )
}

public 
Bury(idtarget)
{
    
ChatColor(id"%L"id"CHAT_4")
    
set_dhudmessage(25500, -1.00.2000.13.00.12.0false)
    
show_dhudmessage(id"ذ—ذگذڑذ*ذںذگذ*")
    
client_cmd(id"spk MG_grab/grab_bury.wav")
    
grab_eff_zd(idtarget)
    if(
is_user_alive(target))
        {
        new 
origin[3]
        
get_user_origin(targetorigin)
        
origin[2] -= 30
        set_user_origin
(targetorigin)
    }
}

public 
Bury_off(idtarget)
{
    
ChatColor(id"%L"id"CHAT_5")
    
    
set_dhudmessage(25500, -1.00.2000.13.00.12.0false)
    
show_dhudmessage(target"ذ’ذگذ، ذ*ذ¢ذڑذ*ذںذگذ›ذک")
    
    if(
is_user_alive(target))
        {
        new 
origin[3]
        
get_user_origin(targetorigin)
        
origin[2] += 30
        set_user_origin
(targetorigin)
    }
}    

public 
grab_eff(target)
{
    new 
origin[3]
   
    
get_user_origin(target,origin)
   
    
message_begin(MSG_ALL,SVC_TEMPENTITY,{0,0,0},target)
    
write_byte(TE_SPRITETRAIL//ذ،ذ؟ر€ذ°ذ¹ر‚ ذ·ذ°ر…ذ²ذ°ر‚ذ°
    
write_coord(origin[0])
    
write_coord(origin[1])
    
write_coord(origin[2]+20)
    
write_coord(origin[0])
    
write_coord(origin[1])
    
write_coord(origin[2]+80)
    
write_short(g_short)
    
write_byte(20)
    
write_byte(20)
    
write_byte(4)
    
write_byte(20)
    
write_byte(10)
    
message_end()
}

public 
grab_eff_zd(idtarget)
{
    new 
origin[3]
    
get_user_origin(idorigin3)

    
message_begin(MSG_BROADCAST,SVC_TEMPENTITY); 
    
write_byte(TE_BREAKMODEL); // TE_
    
write_coord(origin[0]); // X
    
write_coord(origin[1]); // Y
    
write_coord(origin[2] + 24); // Z
    
write_coord(16); // size X
    
write_coord(16); // size Y
    
write_coord(16); // size Z
    
write_coord(random_num(-50,50)); // velocity X
    
write_coord(random_num(-50,50)); // velocity Y
    
write_coord(25); // velocity Z
    
write_byte(10); // random velocity
    
write_short(model_gibs); // sprite
    
write_byte(9); // count
    
write_byte(20); // life
    
write_byte(0x08); // flags
    
message_end();    
}
    
public 
push(id)
{
    
client_data[id][FLAGS] ^= CDF_IN_PUSH
    
return PLUGIN_HANDLED
}

public 
pull(id)
{
    
ChatColor(id"%L"id"CHAT_6")
    
client_data[id][FLAGS] ^= CDF_IN_PULL
    
return PLUGIN_HANDLED
}

public 
push2id )
{
    if( 
client_data[id][GRABBED] > )
    {
        
do_pushid )
        return 
PLUGIN_HANDLED
    
}
    return 
PLUGIN_CONTINUE
}

public 
pull2id )
{
    if( 
client_data[id][GRABBED] > )
    {
        
do_pullid )
        return 
PLUGIN_HANDLED
    
}
    return 
PLUGIN_CONTINUE
}

public 
do_pushid )
    if( 
client_data[id][GRAB_LEN] < 9999 )
        
client_data[id][GRAB_LEN] += get_pcvar_nump_speed )

public 
do_pullid )
{
    new 
mindist get_pcvar_nump_min_dist )
    new 
len client_data[id][GRAB_LEN]
    
    if( 
len mindist )
    {
        
len -= get_pcvar_nump_speed )
        if( 
len mindist len mindist
        client_data
[id][GRAB_LEN] = len
    
}
    else if( 
get_pcvar_nump_auto_choke ) )
        
do_chokeid )
}

public 
do_chokeid )
{
    new 
target client_data[id][GRABBED]
    if( 
client_data[id][FLAGS] & CDF_NO_CHOKE || id == target || target MAXPLAYERS) return
    
    new 
dmg get_pcvar_nump_choke_dmg )
    new 
vec[3]
    
FVecIVecget_target_origin_ftarget ), vec )
    
    
message_beginMSG_ONESVC_SCREENSHAKE_target )
    
write_short999999 //amount
    
write_short9999 //duration
    
write_short999 //frequency
    
message_end( )
    
    
message_beginMSG_ONESVC_SCREENFADE_target )
    
write_short9999 //duration
    
write_short100 //hold
    
write_shortSF_FADE_MODULATE //flags
    
write_byte200 //r
    
write_byte//g
    
write_byte//b
    
write_byte200 //a
    
message_end( )
    
    
message_beginMSG_ONEWTF_DAMAGE_target )
    
write_byte//damage armor
    
write_bytedmg //damage health
    
write_longDMG_CRUSH //damage type
    
write_coordvec[0] ) //origin[x]
    
write_coordvec[1] ) //origin[y]
    
write_coordvec[2] ) //origin[z]
    
message_end( )
        
    
message_beginMSG_BROADCASTSVC_TEMPENTITY )
    
write_byteTE_BLOODSTREAM )
    
write_coordvec[0] ) //pos.x
    
write_coordvec[1] ) //pos.y
    
write_coordvec[2] + 15 //pos.z
    
write_coordrandom_num0255 ) ) //vec.x
    
write_coordrandom_num0255 ) ) //vec.y
    
write_coordrandom_num0255 ) ) //vec.z
    
write_byte70 //col index
    
write_byterandom_num50250 ) ) //speed
    
message_end( )
    
    new 
health pevtargetpev_health ) - dmg
    set_pev
targetpev_healthfloathealth ) )
    if( 
health dllfuncDLLFunc_ClientKilltarget )
    
    
emit_soundtargetCHAN_BODY"player/PL_PAIN2.WAV"VOL_NORMATTN_NORM0PITCH_NORM )
    
    
client_data[id][FLAGS] ^= CDF_NO_CHOKE
    set_task
get_pcvar_floatp_choke_time ), "clear_no_choke"TSK_CHKE id )
}

public 
clear_no_choketskid )
{
    new 
id tskid TSK_CHKE
    client_data
[id][FLAGS] ^= CDF_NO_CHOKE
}

//Grabs the client and teleports them to the admin
public force_grab(idlevelcid)
{
    if( !
cmd_accessidlevelcid) || !get_pcvar_nump_enabled ) ) return PLUGIN_HANDLED

    
new arg[33]
    
read_argv1arg32 )

    new 
targetid cmd_targetidarg)
    
    if( 
is_grabbedtargetidid ) ) return PLUGIN_HANDLED
    
if( !is_user_alivetargetid ) )
    {
        return 
PLUGIN_HANDLED
    
}
    
    
//Safe to tp target to aim spot?
    
new Float:tmpvec[3], Float:orig[3], Float:torig[3], Float:trace_ret[3]
    new 
bool:safe falsei
    
    get_view_pos
idorig )
    
tmpvec vel_by_aimidget_pcvar_nump_min_dist ) )
    
    for( new 
111 && !safej++ )
    {
        
torig[0] = orig[0] + tmpvec[i] * j
        torig
[1] = orig[1] + tmpvec[i] * j
        torig
[2] = orig[2] + tmpvec[i] * j
        
        traceline
tmpvectorigidtrace_ret )
        
        if( 
get_distance_ftrace_rettorig ) ) break
        
        
engfuncEngFunc_TraceHulltorigtorig0HULL_HUMAN0)
        if ( !
get_tr20TR_StartSolid ) && !get_tr20TR_AllSolid ) && get_tr20TR_InOpen ) )
            
safe true
    
}
    
    
//Still not safe? Then find another safe spot somewhere around the grabber
    
pevidpev_originorig )
    new try[
3]
    
orig[2] += 2
    
while( try[2] < && !safe )
    {
        for( 
03i++ )
            switch( try[
i] )
            {
                case 
torig[i] = orig[i] + ( == 80 40 )
                case 
torig[i] = orig[i]
                case 
torig[i] = orig[i] - ( == 80 40 )
            }
        
        
tracelinetmpvectorigidtrace_ret )
        
        
engfuncEngFunc_TraceHulltorigtorig0HULL_HUMAN0)
        if ( !
get_tr20TR_StartSolid ) && !get_tr20TR_AllSolid ) && get_tr20TR_InOpen )
                && !
get_distance_ftrace_rettorig ) ) safe true
        
        
try[0]++
        if( try[
0] == )
        {
            try[
0] = 0
            
try[1]++
            if( try[
1] == )
            {
                try[
1] = 0
                
try[2]++
            }
        }
    }
    
    if( 
safe )
    {
        
set_pevtargetidpev_origintorig )
        
set_grabbedidtargetid )
    }

    return 
PLUGIN_HANDLED
}

public 
is_grabbedtargetgrabber )
{
    for( new 
1<= MAXPLAYERSi++ )
        if( 
client_data[i][GRABBED] == target )
        {
            
unset_grabbedgrabber )
            return 
true
        
}
    return 
false
}

public 
DeathMsg( )
    
kill_grabread_data) )

public 
client_disconnectid )
{
    
kill_grabid )
    
speed_off[id] = false
    
return PLUGIN_CONTINUE
}

public 
kill_grabid )
{
    
//If given client has grabbed, or has a grabber, unset it
    
if( client_data[id][GRABBED] )
        
unset_grabbedid )
    else if( 
client_data[id][GRABBER] )
        
unset_grabbedclient_data[id][GRABBER] )
}

stock traceline( const Float:vStart[3], const Float:vEnd[3], const pIgnoreFloat:vHitPos[3] )
{
    
engfuncEngFunc_TraceLinevStartvEnd0pIgnore)
    
get_tr20TR_vecEndPosvHitPos )
    return 
get_tr20TR_pHit )
}

stock get_view_pos( const idFloat:vViewPos[3] )
{
    new 
Float:vOfs[3]
    
pevidpev_originvViewPos )
    
pevidpev_view_ofsvOfs )        
    
    
vViewPos[0] += vOfs[0]
    
vViewPos[1] += vOfs[1]
    
vViewPos[2] += vOfs[2]
}

stock Float:vel_by_aimidspeed )
{
    new 
Float:v1[3], Float:vBlah[3]
    
pevidpev_v_anglev1 )
    
engfuncEngFunc_AngleVectorsv1v1vBlahvBlah )
    
    
v1[0] *= speed
    v1
[1] *= speed
    v1
[2] *= speed
    
    
return v1
}
stock fm_give_item(index, const item[])
{
    if (!
equal(item"weapon_"7) && !equal(item"ammo_"5) && !equal(item"item_"5) && !equal(item"tf_weapon_"10))
        return 
0

    
new ent engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocStringitem))
    if (!
pev_valid(ent))
        return 
0

    
new Float:origin[3];
    
pev(indexpev_originorigin)
    
set_pev(entpev_originorigin)
    
set_pev(entpev_spawnflagspev(entpev_spawnflags) | SF_NORESPAWN)
    
dllfunc(DLLFunc_Spawnent)

    new 
save pev(entpev_solid)
    
dllfunc(DLLFunc_Touchentindex)
    if (
pev(entpev_solid) != save)
        return 
ent

    engfunc
(EngFunc_RemoveEntityent)

    return -
1
}

stock fm_strip_user_weapons(id)
{
        static 
ent
        ent 
engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"player_weaponstrip"))
        if (!
pev_valid(ent)) return;
       
        
dllfunc(DLLFunc_Spawnent)
        
dllfunc(DLLFunc_Useentid)
        
engfunc(EngFunc_RemoveEntityent)
}

stock ChatColor(const id, const input[], any:...)
{
    new 
count 1players[32]
    static 
msg[191]
    
vformat(msg190input3)
    
    
replace_all(msg190"!g""^4")
    
replace_all(msg190"!y""^1")
    
replace_all(msg190"!team""^3")
    
    if (
idplayers[0] = id; else get_players(playerscount"ch")
    {
        for (new 
0counti++)
        {
            if (
is_user_connected(players[i]))
            {
                
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _players[i]);
                
write_byte(players[i]);
                
write_string(msg);
                
message_end();
            }
        }
    }


Last edited by Mikaeel123; 04-26-2020 at 15:07.
Mikaeel123 is offline
Natsheh
Veteran Member
Join Date: Sep 2012
Old 06-12-2019 , 07:01   Re: [Help] admins cant grab owners
Reply With Quote #2

Check if user got the flag "a" before grabbing using access native or get_user_flags(id) & ADMIN_IMMUNITY
__________________
@Jailbreak Main Mod v2.7.0 100%
@User Tag Prefix 100% done !
@Mystery Box 100% done !
@VIP System 100% done !

Natsheh is offline
Send a message via MSN to Natsheh Send a message via Skype™ to Natsheh
Mikaeel123
Senior Member
Join Date: Oct 2018
Old 06-14-2019 , 06:30   Re: [Help] admins cant grab owners
Reply With Quote #3

Why this plugin not combile ??? i edit it and it not combile
Mikaeel123 is offline
OciXCrom
Veteran Member
Join Date: Oct 2013
Location: Macedonia
Old 06-14-2019 , 07:04   Re: [Help] admins cant grab owners
Reply With Quote #4

There's no such word "combile". If you're getting errors, POST THE ERRORS HERE. What do you think we are, psychics?
__________________
OciXCrom is offline
Send a message via Skype™ to OciXCrom
Natsheh
Veteran Member
Join Date: Sep 2012
Old 06-14-2019 , 07:04   Re: [Help] admins cant grab owners
Reply With Quote #5

Compile locally with dhudmessage include file existed in your includes folder.
__________________
@Jailbreak Main Mod v2.7.0 100%
@User Tag Prefix 100% done !
@Mystery Box 100% done !
@VIP System 100% done !

Natsheh is offline
Send a message via MSN to Natsheh Send a message via Skype™ to Natsheh
Fuck For Fun
Veteran Member
Join Date: Nov 2013
Old 06-14-2019 , 09:31   Re: [Help] admins cant grab owners
Reply With Quote #6

Quote:
Originally Posted by OciXCrom View Post
There's no such word "combile".
Fuck For Fun is offline
Send a message via Skype™ to Fuck For Fun
Mikaeel123
Senior Member
Join Date: Oct 2018
Old 06-15-2019 , 12:44   Re: [Help] admins cant grab owners
Reply With Quote #7

ok ty for help
Quote:
What do you think we are, psychics?
and i dont think so

Last edited by Mikaeel123; 06-15-2019 at 12:44.
Mikaeel123 is offline
BesTKiLLeR
Junior Member
Join Date: Jun 2019
Location: 127.0.0.1
Old 06-18-2019 , 10:24   Re: [Help] admins cant grab owners
Reply With Quote #8

Check this
PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
#include <dhudmessage>

#pragma tabsize 0

#define PLUGIN         "MG Grab"
#define VERSION        "1.0"
#define AUTHOR        "Nickron"

#define ADMIN         ADMIN_LEVEL_F 
#define RESON_KICK    "Kick [MG Grab] 4utau PravuLa"
#define GRAB_MENU

#define TSK_CHKE 50

#define SF_FADEOUT 0

new client_data[33][4]
#define GRABBED  0
#define GRABBER  1
#define GRAB_LEN 2
#define FLAGS    3

#define CDF_IN_PUSH   (1<<0)
#define CDF_IN_PULL   (1<<1)
#define CDF_NO_CHOKE  (1<<2)

enum
{
    
0.0,
    
255.0,
    
255.0,

    
200.0
};

new const 
Menu[][] = 
{
    
"",
    
"MENU_1",
    
"MENU_2",
    
"MENU_3",
    
"MENU_4",
    
"MENU_5",
    
"MENU_6"
};

new 
p_enabledp_players_only
new p_throw_forcep_min_distp_speedp_grab_force
new p_choke_timep_choke_dmgp_auto_choke
new p_glow
new speed_off[33]
new 
g_short
new model_gibs
new MAXPLAYERS
new SVC_SCREENSHAKESVC_SCREENFADEWTF_DAMAGE

public plugin_init( )
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
register_event("CurWeapon""CurrentWeapon""be""1=1")
    
RegisterHam(Ham_Spawn"player""SpawnPlayer")

    
p_enabled register_cvar"gp_enabled""1" )
    
p_players_only register_cvar"gp_players_only""0" )
    
    
p_min_dist register_cvar "gp_min_dist""90" )
    
p_throw_force register_cvar"gp_throw_force""1500" )
    
p_grab_force register_cvar"gp_grab_force""8" )
    
p_speed register_cvar"gp_speed""5" )
    
    
p_choke_time register_cvar"gp_choke_time""1.5" )
    
p_choke_dmg register_cvar"gp_choke_dmg""5" )
    
p_auto_choke register_cvar"gp_auto_choke""1" )
    
    
p_glow register_cvar"gp_glow""1" )
    
    
register_clcmd"amx_grab""force_grab"ADMIN"Grab client & teleport to you." )
    
register_clcmd"+grab""grab"ADMIN"bind a key to +grab" )
    
register_clcmd"-grab""unset_grabbed" )
    
    
register_clcmd"+push""push"ADMIN"bind a key to +push" )
    
register_clcmd"-push""push" )
    
register_clcmd"+pull""pull"ADMIN"bind a key to +pull" )
    
register_clcmd"-pull""pull" )
    
register_clcmd"push""push2" )
    
register_clcmd"pull""pull2" )
    
    
register_clcmd"drop" ,"throw" )
    
    
register_event"DeathMsg""DeathMsg""a" )
    
    
register_forwardFM_PlayerPreThink"fm_player_prethink" )
    
    
register_dictionary"grab_plus.txt" )
    
    
MAXPLAYERS get_maxplayers()
    
    
SVC_SCREENFADE get_user_msgid"ScreenFade" )
    
SVC_SCREENSHAKE get_user_msgid"ScreenShake" )
    
WTF_DAMAGE get_user_msgid"Damage" )

    
register_dictionary("mg_grab.txt");
}

public 
plugin_precache( )
{
    
precache_sound("player/PL_PAIN2.WAV")
    
precache_sound("MG_grab/grab_victim_xa.wav"
    
precache_sound("MG_grab/grab_id_mine.wav"
    
precache_sound("MG_grab/grab_weapon.wav"
    
precache_sound("MG_grab/grab_bury.wav"
    
g_short precache_model("sprites/MG_grab/energy_grab.spr");
    
model_gibs precache_model("models/rockgibs.mdl")
}

public 
fm_player_prethinkid )
{
    new 
target
    
//Search for a target
    
if ( client_data[id][GRABBED] == -)
    {
        new 
Float:orig[3], Float:ret[3]
        
get_view_posidorig )
        
ret vel_by_aimid9999 )
        
        
ret[0] += orig[0]
        
ret[1] += orig[1]
        
ret[2] += orig[2]
        
        
target tracelineorigretidret )
        
        if( 
target <= MAXPLAYERS )
        {
            if( 
is_grabbedtargetid ) ) return FMRES_IGNORED
            set_grabbed
idtarget )
        }
        else if( !
get_pcvar_nump_players_only ) )
        {
            new 
movetype
            
if( target && pev_validtarget ) )
            {
                
movetype pevtargetpev_movetype )
                if( !( 
movetype == MOVETYPE_WALK || movetype == MOVETYPE_STEP || movetype == MOVETYPE_TOSS ) )
                    return 
FMRES_IGNORED
            
}
            else
            {
                
target 0
                
new ent engfuncEngFunc_FindEntityInSphere, -1ret12.0 )
                while( !
target && ent )
                {
                    
movetype peventpev_movetype )
                    if( ( 
movetype == MOVETYPE_WALK || movetype == MOVETYPE_STEP || movetype == MOVETYPE_TOSS )
                            && 
ent != id  )
                        
target ent
                    ent 
engfuncEngFunc_FindEntityInSphereentret12.0 )
                }
            }
            if( 
target )
            {
                if( 
is_grabbedtargetid ) ) return FMRES_IGNORED
                set_grabbed
idtarget )
            }
        }
    }
    
    
target client_data[id][GRABBED]
    
//If they've grabbed something
    
if( target )
    {
        if( !
pev_validtarget ) || ( pevtargetpev_health ) < && pevtargetpev_max_health ) ) )
        {
            
unset_grabbedid )
            return 
FMRES_IGNORED
        
}
         
        
//Use key choke
        
if( pevidpev_button ) & IN_USE )
            
do_chokeid )
        
        
//Push and pull
        
new cdf client_data[id][FLAGS]
        if ( 
cdf CDF_IN_PULL )
            
do_pullid )
        else if ( 
cdf CDF_IN_PUSH )
            
do_pushid )
        
        if( 
target MAXPLAYERS grab_thinkid )
    }
    
    
//If they're grabbed
    
target client_data[id][GRABBER]
    if( 
target grab_thinktarget )
    
    return 
FMRES_IGNORED
}

public 
grab_thinkid //id of the grabber
{
    new 
target client_data[id][GRABBED]
    
    
//Keep grabbed clients from sticking to ladders
    
if( pevtargetpev_movetype ) == MOVETYPE_FLY && !(pevtargetpev_button ) & IN_JUMP ) ) client_cmdtarget"+jump;wait;-jump" )
    
    
//Move targeted client
    
new Float:tmpvec[3], Float:tmpvec2[3], Float:torig[3], Float:tvel[3]
    
    
get_view_posidtmpvec )
    
    
tmpvec2 vel_by_aimidclient_data[id][GRAB_LEN] )
    
    
torig get_target_origin_ftarget )
    
    new 
force get_pcvar_nump_grab_force )
    
    
tvel[0] = ( ( tmpvec[0] + tmpvec2[0] ) - torig[0] ) * force
    tvel
[1] = ( ( tmpvec[1] + tmpvec2[1] ) - torig[1] ) * force
    tvel
[2] = ( ( tmpvec[2] + tmpvec2[2] ) - torig[2] ) * force
    
    set_pev
targetpev_velocitytvel )
}

stock Float:get_target_origin_fid )
{
    new 
Float:orig[3]
    
pevidpev_originorig )
    
    
//If grabbed is not a player, move origin to center
    
if( id MAXPLAYERS )
    {
        new 
Float:mins[3], Float:maxs[3]
        
pevidpev_minsmins )
        
pevidpev_maxsmaxs )
        
        if( !
mins[2] ) orig[2] += maxs[2] / 2
    
}
    
    return 
orig
}

public 
grabidlevelcid )
{
    if( !
cmd_accessidlevelcid) || !get_pcvar_nump_enabled ) ) return PLUGIN_HANDLED
    
    
if ( !client_data[id][GRABBED] ) client_data[id][GRABBED] = -1
    
    
return PLUGIN_HANDLED
}

public 
SpawnPlayer(id)
    
speed_off[id] = false

public CurrentWeapon(id)
{
    if(
speed_off[id])
        
set_pev(idpev_maxspeed00000.0)
}

public 
grab_menu(id
{
    new 
name[32]
    new 
target client_data[id][GRABBED]
    if(
target && is_user_alive(target))
    {
        
get_user_name(targetnamecharsmax(name))
    }
    new 
Item[512], Str[10], menu;

    
formatex(Itemcharsmax(Item), "%L"id"MENU_NAME"name);
    
menu menu_create(Item"menu_handler")

    for(new 
1<= charsmax(Menu); i++)
    {
        
num_to_str(iStrcharsmax(Str));

        
formatex(Itemcharsmax(Item), "%L"idMenu[i]);
        
menu_additem(menuItemStr0);
    }
    
formatex(Itemcharsmax(Item), "%L"id"MENU_EXIT");
    
menu_setprop(menuMPROP_EXITNAMEItem);

    
menu_display(idmenu0);

    return 
PLUGIN_HANDLED;
}
     
public 
menu_handler(idmenuitem
{
    if(
item == MENU_EXIT
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED
    
}
         
    new 
data[6], iName[64], accesscallback
    menu_item_getinfo
(menuitemaccessdata5iName63callback)
         
    new 
key str_to_num(data)
    new 
target client_data[id][GRABBED]
         
    switch(
key
    {
        case 
1:
        {
            if(
target && is_user_alive(target))
            {
                
grab_eff_zd(idtarget)
                
server_cmd("kick #%d ^"%s^""get_user_userid(target), RESON_KICK)
            }
        }
        case 
2:
        {
            if(
target && is_user_alive(target))
            {
                
user_kill(target)
            }
        }
        case 
3:
        {
            if(
target && is_user_alive(target))
            {
                
fm_strip_user_weapons(target)
                
fm_give_item(target"weapon_knife")                
            }
        }
        case 
4:
        {
            if(
target && is_user_alive(target))
            {
                
Bury(idtarget)
            }
        }
        case 
5:
        {
            if(
target && is_user_alive(target))
            {
                
Bury_off(idtarget)
            }
        }
        case 
6:
        {
            if(
target && is_user_alive(target))
            {
                
pull(id)
            }
        }
        case 
7:
        {
            if(
target && is_user_alive(target))
            {
                
set_pev(targetpev_punchangle, { 400.0999.0400.0 })
            }
        }
    }
    return 
PLUGIN_HANDLED
}

public throw( 
id )
{
    new 
target client_data[id][GRABBED]
    if( 
target )
    {
        
set_pevtargetpev_velocityvel_by_aimidget_pcvar_num(p_throw_force) ) )
        
unset_grabbedid )
        return 
PLUGIN_HANDLED
    
}

    return 
PLUGIN_CONTINUE
}

public 
unset_grabbedid )
{
    new 
target client_data[id][GRABBED]
    if( 
target && pev_validtarget ) )
    {
        
set_pevtargetpev_renderfxkRenderFxNone )
        
set_pevtargetpev_rendercolor, {255.0255.0255.0} )
        
set_pevtargetpev_rendermodekRenderNormal )
        
set_pevtargetpev_renderamt16.0 )
        
        if( 
target <= MAXPLAYERS )
            
client_data[target][GRABBER] = 0
    
}
    
show_menu(id0"^n"1)
    
client_data[id][GRABBED] = 0
}

//Grabs onto someone
public set_grabbedidtarget )
{
    if(
get_user_flags(target) & ADMIN_IMMUNITY) return 1;
    if( 
get_pcvar_nump_glow ) )
    {
        
set_pevtargetpev_renderfxkRenderFxGlowShell )
        
set_pevtargetpev_rendercolor, {rgb})
        
set_pevtargetpev_rendermodekRenderTransColor )
        
set_pevtargetpev_renderamt)
    }
    
    if( 
target <= MAXPLAYERS )
        
client_data[target][GRABBER] = id
    client_data
[id][FLAGS] = 0
    client_data
[id][GRABBED] = target
    
new name[33], name2[33]
    
get_user_name(idname32
    
get_user_name(targetname232)
    if(
get_user_team(target)==|| get_user_team(target)==2)
    {        
        
client_cmd(target"spk MG_grab/grab_victim_xa.wav")
        
client_cmd(id"spk MG_grab/grab_id_mine.wav"
        
ChatColor(target"%L"target"CHAT_1"name)  
        
ChatColor(id"%L"id"CHAT_2"name2)
        
grab_eff(target)
        
#if defined GRAB_MENU
        
grab_menu(id)
        
#endif
    
}
    else
    {
        
ChatColor(id"%L"id"CHAT_3")
        
client_cmd(0"spk MG_grab/grab_weapon.wav"
    }
    new 
Float:torig[3], Float:orig[3]
    
pevtargetpev_origintorig )
    
pevidpev_originorig )
    
client_data[id][GRAB_LEN] = floatroundget_distance_ftorigorig ) )
    if( 
client_data[id][GRAB_LEN] < get_pcvar_nump_min_dist ) ) client_data[id][GRAB_LEN] = get_pcvar_nump_min_dist )
    return 
1;
}

public 
Bury(idtarget)
{
    
ChatColor(id"%L"id"CHAT_4")
    
set_dhudmessage(25500, -1.00.2000.13.00.12.0false)
    
show_dhudmessage(id"ذ—ذگذڑذ*ذںذگذ*")
    
client_cmd(id"spk MG_grab/grab_bury.wav")
    
grab_eff_zd(idtarget)
    if(
is_user_alive(target))
        {
        new 
origin[3]
        
get_user_origin(targetorigin)
        
origin[2] -= 30
        set_user_origin
(targetorigin)
    }
}

public 
Bury_off(idtarget)
{
    
ChatColor(id"%L"id"CHAT_5")
    
    
set_dhudmessage(25500, -1.00.2000.13.00.12.0false)
    
show_dhudmessage(target"ذ’ذگذ، ذ*ذ¢ذڑذ*ذںذگذ›ذک")
    
    if(
is_user_alive(target))
        {
        new 
origin[3]
        
get_user_origin(targetorigin)
        
origin[2] += 30
        set_user_origin
(targetorigin)
    }
}    

public 
grab_eff(target)
{
    new 
origin[3]
   
    
get_user_origin(target,origin)
   
    
message_begin(MSG_ALL,SVC_TEMPENTITY,{0,0,0},target)
    
write_byte(TE_SPRITETRAIL//ذ،ذ؟ر€ذ°ذ¹ر‚ ذ·ذ°ر…ذ²ذ°ر‚ذ°
    
write_coord(origin[0])
    
write_coord(origin[1])
    
write_coord(origin[2]+20)
    
write_coord(origin[0])
    
write_coord(origin[1])
    
write_coord(origin[2]+80)
    
write_short(g_short)
    
write_byte(20)
    
write_byte(20)
    
write_byte(4)
    
write_byte(20)
    
write_byte(10)
    
message_end()
}

public 
grab_eff_zd(idtarget)
{
    new 
origin[3]
    
get_user_origin(idorigin3)

    
message_begin(MSG_BROADCAST,SVC_TEMPENTITY); 
    
write_byte(TE_BREAKMODEL); // TE_
    
write_coord(origin[0]); // X
    
write_coord(origin[1]); // Y
    
write_coord(origin[2] + 24); // Z
    
write_coord(16); // size X
    
write_coord(16); // size Y
    
write_coord(16); // size Z
    
write_coord(random_num(-50,50)); // velocity X
    
write_coord(random_num(-50,50)); // velocity Y
    
write_coord(25); // velocity Z
    
write_byte(10); // random velocity
    
write_short(model_gibs); // sprite
    
write_byte(9); // count
    
write_byte(20); // life
    
write_byte(0x08); // flags
    
message_end();    
}
    
public 
push(id)
{
    
client_data[id][FLAGS] ^= CDF_IN_PUSH
    
return PLUGIN_HANDLED
}

public 
pull(id)
{
    
ChatColor(id"%L"id"CHAT_6")
    
client_data[id][FLAGS] ^= CDF_IN_PULL
    
return PLUGIN_HANDLED
}

public 
push2id )
{
    if( 
client_data[id][GRABBED] > )
    {
        
do_pushid )
        return 
PLUGIN_HANDLED
    
}
    return 
PLUGIN_CONTINUE
}

public 
pull2id )
{
    if( 
client_data[id][GRABBED] > )
    {
        
do_pullid )
        return 
PLUGIN_HANDLED
    
}
    return 
PLUGIN_CONTINUE
}

public 
do_pushid )
    if( 
client_data[id][GRAB_LEN] < 9999 )
        
client_data[id][GRAB_LEN] += get_pcvar_nump_speed )

public 
do_pullid )
{
    new 
mindist get_pcvar_nump_min_dist )
    new 
len client_data[id][GRAB_LEN]
    
    if( 
len mindist )
    {
        
len -= get_pcvar_nump_speed )
        if( 
len mindist len mindist
        client_data
[id][GRAB_LEN] = len
    
}
    else if( 
get_pcvar_nump_auto_choke ) )
        
do_chokeid )
}

public 
do_chokeid )
{
    new 
target client_data[id][GRABBED]
    if( 
client_data[id][FLAGS] & CDF_NO_CHOKE || id == target || target MAXPLAYERS) return
    
    new 
dmg get_pcvar_nump_choke_dmg )
    new 
vec[3]
    
FVecIVecget_target_origin_ftarget ), vec )
    
    
message_beginMSG_ONESVC_SCREENSHAKE_target )
    
write_short999999 //amount
    
write_short9999 //duration
    
write_short999 //frequency
    
message_end( )
    
    
message_beginMSG_ONESVC_SCREENFADE_target )
    
write_short9999 //duration
    
write_short100 //hold
    
write_shortSF_FADE_MODULATE //flags
    
write_byte200 //r
    
write_byte//g
    
write_byte//b
    
write_byte200 //a
    
message_end( )
    
    
message_beginMSG_ONEWTF_DAMAGE_target )
    
write_byte//damage armor
    
write_bytedmg //damage health
    
write_longDMG_CRUSH //damage type
    
write_coordvec[0] ) //origin[x]
    
write_coordvec[1] ) //origin[y]
    
write_coordvec[2] ) //origin[z]
    
message_end( )
        
    
message_beginMSG_BROADCASTSVC_TEMPENTITY )
    
write_byteTE_BLOODSTREAM )
    
write_coordvec[0] ) //pos.x
    
write_coordvec[1] ) //pos.y
    
write_coordvec[2] + 15 //pos.z
    
write_coordrandom_num0255 ) ) //vec.x
    
write_coordrandom_num0255 ) ) //vec.y
    
write_coordrandom_num0255 ) ) //vec.z
    
write_byte70 //col index
    
write_byterandom_num50250 ) ) //speed
    
message_end( )
    
    new 
health pevtargetpev_health ) - dmg
    set_pev
targetpev_healthfloathealth ) )
    if( 
health dllfuncDLLFunc_ClientKilltarget )
    
    
emit_soundtargetCHAN_BODY"player/PL_PAIN2.WAV"VOL_NORMATTN_NORM0PITCH_NORM )
    
    
client_data[id][FLAGS] ^= CDF_NO_CHOKE
    set_task
get_pcvar_floatp_choke_time ), "clear_no_choke"TSK_CHKE id )
}

public 
clear_no_choketskid )
{
    new 
id tskid TSK_CHKE
    client_data
[id][FLAGS] ^= CDF_NO_CHOKE
}

//Grabs the client and teleports them to the admin
public force_grab(idlevelcid)
{
    if( !
cmd_accessidlevelcid) || !get_pcvar_nump_enabled ) ) return PLUGIN_HANDLED

    
new arg[33]
    
read_argv1arg32 )

    new 
targetid cmd_targetidarg)
    
    if( 
is_grabbedtargetidid ) ) return PLUGIN_HANDLED
    
if( !is_user_alivetargetid ) )
    {
        return 
PLUGIN_HANDLED
    
}
    
    
//Safe to tp target to aim spot?
    
new Float:tmpvec[3], Float:orig[3], Float:torig[3], Float:trace_ret[3]
    new 
bool:safe falsei
    
    get_view_pos
idorig )
    
tmpvec vel_by_aimidget_pcvar_nump_min_dist ) )
    
    for( new 
111 && !safej++ )
    {
        
torig[0] = orig[0] + tmpvec[i] * j
        torig
[1] = orig[1] + tmpvec[i] * j
        torig
[2] = orig[2] + tmpvec[i] * j
        
        traceline
tmpvectorigidtrace_ret )
        
        if( 
get_distance_ftrace_rettorig ) ) break
        
        
engfuncEngFunc_TraceHulltorigtorig0HULL_HUMAN0)
        if ( !
get_tr20TR_StartSolid ) && !get_tr20TR_AllSolid ) && get_tr20TR_InOpen ) )
            
safe true
    
}
    
    
//Still not safe? Then find another safe spot somewhere around the grabber
    
pevidpev_originorig )
    new try[
3]
    
orig[2] += 2
    
while( try[2] < && !safe )
    {
        for( 
03i++ )
            switch( try[
i] )
            {
                case 
torig[i] = orig[i] + ( == 80 40 )
                case 
torig[i] = orig[i]
                case 
torig[i] = orig[i] - ( == 80 40 )
            }
        
        
tracelinetmpvectorigidtrace_ret )
        
        
engfuncEngFunc_TraceHulltorigtorig0HULL_HUMAN0)
        if ( !
get_tr20TR_StartSolid ) && !get_tr20TR_AllSolid ) && get_tr20TR_InOpen )
                && !
get_distance_ftrace_rettorig ) ) safe true
        
        
try[0]++
        if( try[
0] == )
        {
            try[
0] = 0
            
try[1]++
            if( try[
1] == )
            {
                try[
1] = 0
                
try[2]++
            }
        }
    }
    
    if( 
safe )
    {
        
set_pevtargetidpev_origintorig )
        
set_grabbedidtargetid )
    }

    return 
PLUGIN_HANDLED
}

public 
is_grabbedtargetgrabber )
{
    for( new 
1<= MAXPLAYERSi++ )
        if( 
client_data[i][GRABBED] == target )
        {
            
unset_grabbedgrabber )
            return 
true
        
}
    return 
false
}

public 
DeathMsg( )
    
kill_grabread_data) )

public 
client_disconnectid )
{
    
kill_grabid )
    
speed_off[id] = false
    
return PLUGIN_CONTINUE
}

public 
kill_grabid )
{
    
//If given client has grabbed, or has a grabber, unset it
    
if( client_data[id][GRABBED] )
        
unset_grabbedid )
    else if( 
client_data[id][GRABBER] )
        
unset_grabbedclient_data[id][GRABBER] )
}

stock traceline( const Float:vStart[3], const Float:vEnd[3], const pIgnoreFloat:vHitPos[3] )
{
    
engfuncEngFunc_TraceLinevStartvEnd0pIgnore)
    
get_tr20TR_vecEndPosvHitPos )
    return 
get_tr20TR_pHit )
}

stock get_view_pos( const idFloat:vViewPos[3] )
{
    new 
Float:vOfs[3]
    
pevidpev_originvViewPos )
    
pevidpev_view_ofsvOfs )        
    
    
vViewPos[0] += vOfs[0]
    
vViewPos[1] += vOfs[1]
    
vViewPos[2] += vOfs[2]
}

stock Float:vel_by_aimidspeed )
{
    new 
Float:v1[3], Float:vBlah[3]
    
pevidpev_v_anglev1 )
    
engfuncEngFunc_AngleVectorsv1v1vBlahvBlah )
    
    
v1[0] *= speed
    v1
[1] *= speed
    v1
[2] *= speed
    
    
return v1
}
stock fm_give_item(index, const item[])
{
    if (!
equal(item"weapon_"7) && !equal(item"ammo_"5) && !equal(item"item_"5) && !equal(item"tf_weapon_"10))
        return 
0

    
new ent engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocStringitem))
    if (!
pev_valid(ent))
        return 
0

    
new Float:origin[3];
    
pev(indexpev_originorigin)
    
set_pev(entpev_originorigin)
    
set_pev(entpev_spawnflagspev(entpev_spawnflags) | SF_NORESPAWN)
    
dllfunc(DLLFunc_Spawnent)

    new 
save pev(entpev_solid)
    
dllfunc(DLLFunc_Touchentindex)
    if (
pev(entpev_solid) != save)
        return 
ent

    engfunc
(EngFunc_RemoveEntityent)

    return -
1
}

stock fm_strip_user_weapons(id)
{
        static 
ent
        ent 
engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"player_weaponstrip"))
        if (!
pev_valid(ent)) return;
       
        
dllfunc(DLLFunc_Spawnent)
        
dllfunc(DLLFunc_Useentid)
        
engfunc(EngFunc_RemoveEntityent)
}

stock ChatColor(const id, const input[], any:...)
{
    new 
count 1players[32]
    static 
msg[191]
    
vformat(msg190input3)
    
    
replace_all(msg190"!g""^4")
    
replace_all(msg190"!y""^1")
    
replace_all(msg190"!team""^3")
    
    if (
idplayers[0] = id; else get_players(playerscount"ch")
    {
        for (new 
0counti++)
        {
            if (
is_user_connected(players[i]))
            {
                
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _players[i]);
                
write_byte(players[i]);
                
write_string(msg);
                
message_end();
            }
        }
    }


Last edited by BesTKiLLeR; 06-18-2019 at 10:24.
BesTKiLLeR is offline
Mikaeel123
Senior Member
Join Date: Oct 2018
Old 06-19-2019 , 09:13   Re: [Help] admins cant grab owners
Reply With Quote #9

Its Worked ! . ty so much !!!
Mikaeel123 is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 08:23.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode