PHP- Kodu:
#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"
    
precache_sound("weapons/xbow_hit2.wav")
    
precache_sound("weapons/xbow_fire1.wav")


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 
    emit_sound
(id,CHAN_VOICE,"weapons/xbow_hit2.wav"1.0ATTN_NORM0PITCH_NORM)
            
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[i] = 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,
    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[i]) 
            { 
                new 
changedcount 
                 
                
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() 

Dene Bakıyım