AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Solved [Help] admins cant grab owners (https://forums.alliedmods.net/showthread.php?t=316826)

Mikaeel123 06-12-2019 03:27

[Help] admins cant grab owners
 
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();
            }
        }
    }



Natsheh 06-12-2019 07:01

Re: [Help] admins cant grab owners
 
Check if user got the flag "a" before grabbing using access native or get_user_flags(id) & ADMIN_IMMUNITY

Mikaeel123 06-14-2019 06:30

Re: [Help] admins cant grab owners
 
Why this plugin not combile ??? i edit it and it not combile

OciXCrom 06-14-2019 07:04

Re: [Help] admins cant grab owners
 
There's no such word "combile". If you're getting errors, POST THE ERRORS HERE. What do you think we are, psychics?

Natsheh 06-14-2019 07:04

Re: [Help] admins cant grab owners
 
Compile locally with dhudmessage include file existed in your includes folder.

Fuck For Fun 06-14-2019 09:31

Re: [Help] admins cant grab owners
 
Quote:

Originally Posted by OciXCrom (Post 2655505)
There's no such word "combile".

:stupid::stupid::nono:

Mikaeel123 06-15-2019 12:44

Re: [Help] admins cant grab owners
 
ok ty for help :|
Quote:

What do you think we are, psychics?
and i dont think so

BesTKiLLeR 06-18-2019 10:24

Re: [Help] admins cant grab owners
 
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();
            }
        }
    }



Mikaeel123 06-19-2019 09:13

Re: [Help] admins cant grab owners
 
Its Worked ! . ty so much !!!


All times are GMT -4. The time now is 17:15.

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