Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Hook
#1
PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>

#define PLUGIN "ProKreedz Hook"
#define VERSION "v2.3"
#define AUTHOR "vato loco [GE-S] & p4ddY"

#define KZ_ACCESS  ADMIN_KICK
#define RANDOM_NUM random_num(0,255)
#define RED        255
#define GREEN      99
#define    BLUE       71

enum color {normal 1greenteam}
enum {HOOK_OFFHOOK_RELEASEHOOK_ON}

new 
is_plr_connected[33]
new 
bool:g_bCanUseHook[33]
new 
g_bIsHooked[33]
new 
g_iHookOrigin[33][3]
new 
g_bPlayerIsAdmin[33]
new 
g_SpriteBeam
new g_SpriteLaser
new g_SayText
new g_iMaxPlayers
new g_kz_tag

public plugin_init() 
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
register_forward(FM_Think"fw_ThinkEnt")
    
register_clcmd("+hook""HookOn"KZ_ACCESS)
    
register_clcmd("-hook""HookOff"KZ_ACCESS)
    
register_clcmd("kz_hook""cmd_give_hook"KZ_ACCESS ,"<name|#userid|steamid|@ALL> <on/off>")
     new 
map[32];
    
get_mapname(map,31);
    if((
containi(map,"jail") == -1) && (containi(map,"jb_") == -1)) return PLUGIN_CONTINUE 
    register_dictionary
("prokreedz_v2.3.txt")
    
g_kz_tag register_cvar("kz_tag""[ProKreedz]")
    
    new 
iEnt engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString "info_target"))
    
set_pev(iEntpev_classname"hook_think")
    
set_pev(iEntpev_nextthinkget_gametime() + 0.1)
    
    
g_SayText get_user_msgid("SayText")
    
g_iMaxPlayers get_maxplayers()
}

public 
plugin_precache() 
{
    
g_SpriteBeam engfunc(EngFunc_PrecacheModel"sprites/lgtning.spr")
    
g_SpriteLaser engfunc(EngFunc_PrecacheModel,"sprites/zbeam4.spr")
}

public 
client_putinserver(id
{
    
is_plr_connected[id] = true
    g_bIsHooked
[id] = HOOK_OFF
    
if(get_user_flags(id) & KZ_ACCESS
        
g_bPlayerIsAdmin[id] = true
}

public 
client_disconnect(id
{
    
is_plr_connected[id] = false
    g_bIsHooked
[id] = HOOK_OFF
    
if(g_bPlayerIsAdmin[id]) 
        
g_bPlayerIsAdmin[id] = false
}

public 
kz_prize_hook(idstatus[])
{
    switch(
status[0])
    {
        case 
'0'g_bCanUseHook[id] = false
            
        
case '1'
        {
            
g_bCanUseHook[id] = true
            kz_colorchat
(idgreen"%L"id"PKU_PRIZE_HOOK")
        }
    }
}

public 
cmd_give_hook(id,level,cid
{
    if(!
cmd_access(id,level,cid,3))
        return 
PLUGIN_HANDLED
    
    
new name[32]
    
get_user_name(id,name,31)
    
    new 
szarg1[32], szarg2[8], bool:mode
    read_argv
(1,szarg1,31)
    
read_argv(2,szarg2,7)
    if(
equal(szarg2,"on"))
        
mode true
    
    
if(equal(szarg1,"@ALL")) 
    {
        for(new 
1<= g_iMaxPlayersi++) 
        {
            if(
is_plr_connected[i] && is_user_alive(i)) 
            {
                
g_bCanUseHook mode
                
if(mode
                    
kz_colorchat(igreen"%L"i"PKU_HOOK_AT_ALL"name)
                else 
                    
kz_colorchat(igreen"%L"i"PKU_HOOK_TAKE_ALL"name)
            }
        }
    }
    else 
    {
        new 
pid cmd_target(id,szarg1,2)
        if(
pid 0
        {
            
g_bCanUseHook[pid] = mode
            
if(mode
                
kz_colorchat(pidgreen"%L"pid"PKU_HOOK_AT_TARGET"name)
            else 
                
kz_colorchat(pidgreen"%L"pid"PKU_HOOK_TAKE_TARGET"name)
        }
    }
    return 
PLUGIN_HANDLED
}

public 
HookOn(id)  
{
    if(!
g_bCanUseHook[id] && !g_bPlayerIsAdmin[id])
        return 
PLUGIN_HANDLED
    
    
if(is_plr_connected[id] && is_user_alive(id))
    {
        
get_user_origin(idg_iHookOrigin[id], 3)
        
        if(
callfunc_begin("DetectCheat","ProKreedz_v2.3.amxx") == 1
        {
            
callfunc_push_int(id)
            
callfunc_push_str("Hook")
            
callfunc_end()
        }
        
g_bIsHooked[id] = HOOK_ON
    
}
    return 
PLUGIN_HANDLED
}

public 
HookOff(id
{
    
g_bIsHooked[id] = HOOK_RELEASE
    
return PLUGIN_HANDLED
}

public 
fw_ThinkEnt(iEnt)
{
    if (
pev_valid(iEnt)) 
    { 
        static 
ClassName[33]
        
pev(iEntpev_classnameClassName32)
        
        if(
equal(ClassName"hook_think"))
        {
            
fw_HookThink()
            
set_pev(iEntpev_nextthinkget_gametime() + 0.1)
        }
    }
}

public 
fw_HookThink()
{
    static 
idorigin[3], Float:velocity[3], distance
    
for(id id <= g_iMaxPlayers id++) 
    {
        if(
g_bIsHooked[id] == HOOK_ON)
        {
            
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
            
write_byte(1)              // TE_BEAMENTPOINT
            
write_short(id)              // entid
            
write_coord(g_iHookOrigin[id][0]) // origin
            
write_coord(g_iHookOrigin[id][1]) // origin
            
write_coord(g_iHookOrigin[id][2]) // origin
            
if(g_bPlayerIsAdmin[id])
            {
                
write_short(g_SpriteBeam)      // sprite index
                
write_byte(0)              // start frame
                
write_byte(0)              // framerate
                
write_byte(2)              // life
                
write_byte(20)              // width
                
write_byte(0)
                
write_byte(RANDOM_NUM// r
                
write_byte(RANDOM_NUM// g
                
write_byte(RANDOM_NUM// b
            
}
            else 
            {
                
write_short(g_SpriteLaser)      // sprite index
                
write_byte(0)              // start frame
                
write_byte(0)              // framerate
                
write_byte(2)              // life
                
write_byte(10)              // width
                
write_byte(0)
                
write_byte(RED)           // r
                
write_byte(GREEN)      // g
                
write_byte(BLUE)       // b
            
}
            
write_byte(150)                   // brightness
            
write_byte(0)                   // speed
            
message_end()
            
            
get_user_origin(idorigin)
            
distance get_distance(g_iHookOrigin[id], origin)
            if(
distance 25)  
            { 
                
velocity[0] = (g_iHookOrigin[id][0] - origin[0]) * (2.0 350 distance)
                
velocity[1] = (g_iHookOrigin[id][1] - origin[1]) * (2.0 350 distance)
                
velocity[2] = (g_iHookOrigin[id][2] - origin[2]) * (2.0 350 distance)
                
set_pev(idpev_velocityvelocity)
            }
        }
        else if(
g_bIsHooked[id] == HOOK_RELEASE)
        {
            
g_bIsHooked[id] = HOOK_OFF
        
}
    }
}

kz_colorchat(idcolor:type, const msg[], {Float,Sql,Result,_}:...) {
    
    static 
message[256], pkmsg[180], changed[8], argscount,j
    argscount 
numargs()
    
    switch(
type
    {
        case 
normalmessage[0] = 0x01
            
        
case greenmessage[0] = 0x04
            
        
default: message[0] = 0x03
        
    
}
    new 
pktag[32]
    
get_pcvar_string(g_kz_tagpktag31)
    
    if(
id)
    {
        if(
is_plr_connected[id])
        {
            
vformat(pkmsg179msg4)
            
formatex(message[1], 255"%s %s"pktagpkmsg)
            
message[192] = '^0'
            
            
replace_all(message191"!g""^x04")
            
replace_all(message191"!n""^x01")
            
replace_all(message191"!t""^x03")
            
kz_print_msg(idmessage)
        }
    } 
    else 
    {
        for(new 
1<= g_iMaxPlayersi++)
        {
            if(
is_plr_connected)
            {
                new 
changedcount 0
                
                
for(2argscountj++)
                {
                    if(
getarg(j) == LANG_PLAYER)
                    {
                        
setarg(j0i);
                        
changed[changedcount++] = j;
                    }
                }
                
vformat(pkmsg179msg4)
                
formatex(message[1], 255"%s %s"pktagpkmsg)
                
message[192] = '^0'
                
                
replace_all(message191"!g""^x04")
                
replace_all(message191"!n""^x01")
                
replace_all(message191"!t""^x03")
                
kz_print_msg(imessage)
                
                for(
0changedcountj++)
                {
                    
setarg(changed[j], 0LANG_PLAYER)
                }
            }
        }
    }
}

stock kz_print_msg(id, const msg[])
{
    
message_begin(MSG_ONE_UNRELIABLEg_SayText_id)
    
write_byte(id)        
    
write_string(msg)
    
message_end()



Hook atınca ses çıkarmasını istiyorum , normal hook sesi olabilir.[/i][/i][/i]
Reply


Messages In This Thread
Hook - by mertcanen - 10-12-12, 22:11
Cevap: Hook - by aLiveLiamk - 11-12-12, 19:23
Cevap: Hook - by mertcanen - 11-12-12, 23:05
Cevap: Hook - by DeaTReX - 12-12-12, 20:29
Cevap: Hook - by akcaliberkk - 12-12-12, 20:30
Cevap: Hook - by mertcanen - 16-12-12, 03:50
Cevap: Hook - by Shadow04 - 16-12-12, 14:25

Possibly Related Threads…
Thread Author Replies Views Last Post
  Ct hook t hook EnbuyukBjk 5 4,175 14-09-17, 05:01
Last Post: mertmatin
  [JB] CT Özel Hook Grab Rope Plugini Nobb 21 10,742 03-09-17, 18:03
Last Post: tahayasin
  sadece ct de hook grab rope basabılme aprdk 7 10,431 08-11-16, 21:30
Last Post: nameofahmet
  İSTEK ! Sadece Ct de hook basabilmek playman01 17 7,543 28-08-16, 14:42
Last Post: QuarsS
  CT'ye Özel Hook Grab Rope skc0011 9 9,399 28-05-16, 16:03
Last Post: azza12345
  Sadece Adminlerin Atabileceği Kırmızı Renkli Hook. canplugin 6 9,262 26-05-15, 20:23
Last Post: beko1053
  Hook Grab Sorunu kayademir 8 3,227 14-01-15, 01:13
Last Post: Neith
  Farklı Bir Hook Plugini reset44 6 6,282 21-08-14, 00:28
Last Post: recep2
  HOOK COMPİLE HATASI [Unknown directive] tarlacixx 5 2,934 30-07-14, 21:19
Last Post: cropss
  Ct Hook plugini [EDIT] bloody123 4 5,816 30-07-14, 20:17
Last Post: cropss

Foruma Atla:


Users browsing this thread: 1 Guest(s)