PHP- Kodu:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>
#include <fun>

#define PLUGIN "Jailbreak Last Request"
#define VERSION "1.6"
#define AUTHOR "rube"

/*================================================================================
Variables | bools | Cvars        
=================================================================================*/

new g_maxPlayersg_msgSayTextbeacon_sprite

new cvar_granadas_bpammocvar_scout_bpammocvar_effect

new bool:touch_weapons[33], bool:once[33], bool:player_challenged[33], bool:duel_active,
bool:knife_duel[33] ,bool:deagle_duel[33], bool:grenade_duel[33], bool:scout_duel[33], bool:ak47_duel[33], bool:m3_duel[33]

new 
tag[] = "[JailBreak]"

/*================================================================================
Init n' precache        
=================================================================================*/

public plugin_precache() 
{    
    
beacon_sprite precache_model("sprites/shockwave.spr")
}

public 
plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
register_event("HLTV""event_round_start""a""1=0""2=0")
    
    
RegisterHam(Ham_Touch"weaponbox""fw_touch_weapon")
    
RegisterHam(Ham_Touch"armoury_entity""fw_touch_weapon")
    
RegisterHam(Ham_Touch"weapon_shield""fw_touch_weapon")
    
RegisterHam(Ham_Spawn"player""fw_player_respawn"1)
    
RegisterHam(Ham_Killed"player""fw_player_killed")    
    
    
register_forward(FM_CmdStart,"fw_cmdstart",1)
    
    
// Comando de jugador - Client commands
    
register_clcmd("say /vs""duel_menu")
    
register_clcmd("say !vs""duel_menu")
    
register_clcmd("say_team /vs""duel_menu")
    
register_clcmd("say_team !vs""duel_menu")
    
    
// Cvars
    
cvar_granadas_bpammo register_cvar("jb_grenade_bpammo","10"// amount bpammo grenade | cantidad de granadas
    
cvar_scout_bpammo register_cvar("jb_scout_bpammo""10"// amount bpammo scout | cantidad de balas pa' la scout
    
cvar_effect register_cvar("jb_effect""2"// 0 = glow , 1 = beacon, 2 = glow n' beacon
    
    
g_maxPlayers get_maxplayers()
    
    
g_msgSayText get_user_msgid("SayText")
    
    
register_dictionary("jailbreak_last_request.txt")
}

/*================================================================================
Round Start                
=================================================================================*/

public event_round_start()
{
    
duel_active false
}

/*================================================================================
forwards                
=================================================================================*/

public fw_player_respawn(id)
{
    if(!
is_user_alive(id) || !cs_get_user_team(id))
        return
    
    
set_user_rendering(id)
    
remove_task(id)
    
touch_weapons[id] = false 
    once
[id] = false 
    knife_duel
[id] = false
    deagle_duel
[id] = false
    grenade_duel
[id] = false
    scout_duel
[id] = false    
    ak47_duel
[id] = false
    m3_duel
[id] = false
    player_challenged
[id] = false
}

public 
fw_touch_weapon(weaponid)
{
    if (!
is_user_connected(id))
        return 
HAM_IGNORED;
    
    new 
players[32], pnumtempid;
    
get_players(playerspnum"a");
    for( new 
ii<pnumi++ )
    {        
        
tempid players[i];
    }
    
    if (
touch_weapons[id] || touch_weapons[tempid])
        return 
HAM_SUPERCEDE;
    
    return 
HAM_IGNORED;
}


public 
fw_cmdstart(player,uc_handle,random_seed)
{
    if(
deagle_duel[player])
    {
        
cs_set_user_bpammo(playerCSW_DEAGLE1)
    }
}

public 
fw_player_killed(victimattackershouldgib)
{
    new 
name[32]
    
get_user_name(attackername31)
    
    if(
duel_active)
    {
        if(
cs_get_user_team(victim) == CS_TEAM_CT && player_challenged[victim])
        {
            
knife_duel[attacker] = false
            deagle_duel
[attacker] = false
            grenade_duel
[attacker] = false
            scout_duel
[attacker] = false
            ak47_duel
[attacker] = false
            m3_duel
[attacker] = false
            once
[attacker] = false
            strip_user_weapons
(attacker)
            
give_item(attacker"weapon_knife")
            
set_user_rendering(attacker)
            
duel_menu(attacker)
        }
        else if(
cs_get_user_team(victim) == CS_TEAM_CT && !player_challenged[victim])
        {
            
set_task(0.4"kill_player"attacker)
            
set_hudmessage02550, -1.00.4025.08.00.00.010)
            
show_hudmessage(0"%L"LANG_PLAYER,"DUEL_DOWN"name)
            
        }
    }
    
remove_task(attacker)
    
remove_task(victim)
}

public 
kill_player(id)
{
    
user_kill(id)
}

/*================================================================================
Main Menu                
=================================================================================*/

public duel_menu(id)
{    
    if(!
is_user_alive(id))
        return 
PLUGIN_HANDLED
    
    
if (!once[id])
    {
        if(
cs_get_user_team(id) == CS_TEAM_T)
        {
            new 
cts[32], ts[32], ctsnumtsnum 
            
            
for (new id=1id <= g_maxPlayersid++)
            {
                if (!
is_user_connected(id) || !is_user_alive(id)) 
                { 
                    continue 
                } 
                
                if (
cs_get_user_team(id) == CS_TEAM_T
                { 
                    
ts[tsnum++] = id
                

                else if (
cs_get_user_team(id) == CS_TEAM_CT
                { 
                    
cts[ctsnum++] = id
                

            } 
            if (
tsnum == && ctsnum >= 1
            {  
                
                static 
opcion[64]
                
                
formatex(opcioncharsmax(opcion),"\y%L:"id"CHOOSE_DUEL")
                new 
iMenu menu_create(opcion"sub_duel_menu")
                
                
formatex(opcioncharsmax(opcion),"\w%L"id"DUEL_1")
                
menu_additem(iMenuopcion"1")    
                
                
formatex(opcioncharsmax(opcion),"\w%L"id"DUEL_2")
                
menu_additem(iMenuopcion"2")
                
                
formatex(opcioncharsmax(opcion),"\w%L"id"DUEL_3")
                
menu_additem(iMenuopcion"3")    
                
                
formatex(opcioncharsmax(opcion),"\w%L"id"DUEL_4")
                
menu_additem(iMenuopcion"4")
                
                
formatex(opcioncharsmax(opcion),"\w%L"id"DUEL_5")
                
menu_additem(iMenuopcion"5")
                
                
formatex(opcioncharsmax(opcion),"\w%L"id"DUEL_6")
                
menu_additem(iMenuopcion"6")
                
                
menu_setprop(iMenuMPROP_EXITMEXIT_ALL)
                
menu_display(idiMenu0)
                
            }
            else if    (
tsnum == && ctsnum 1)
            {
                
ChatColor(id"%L"LANG_PLAYER,"NOT_CTS"tag
            }
            else if    (
tsnum 1)
            {
                
ChatColor(id"%L"LANG_PLAYER,"ONLY_LAST"tag)
            }
        }
        else
        {
            
ChatColor(id"%L"LANG_PLAYER,"ONLY_TTS"tag
        }
    }
    else
    {
        
ChatColor(id"%L"LANG_PLAYER,"KILL_CHALLENGED"tag
    }
    return 
PLUGIN_HANDLED
}

public 
sub_duel_menu(idmenuitem)
{
    
    if (
item == MENU_EXIT)
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED
    
}
    
    new 
Data[6], Name[64]
    new 
AccessCallback
    
    menu_item_getinfo
(menuitemAccessData,5Name63Callback)
    
    new 
Key str_to_num(Data)
    
    switch (
Key)
    {
        case 
1:
        {    
            
knife_duel[id] = true
            choose_enemy
(id)
        }
        case 
2
        {
            
deagle_duel[id] = true
            choose_enemy
(id)
        }
        case 
3
        {
            
grenade_duel[id] = true
            choose_enemy
(id)
        }
        case 
4
        {
            
scout_duel[id] = true
            choose_enemy
(id)
        }
        case 
5:
        {
            
ak47_duel[id] = true
            choose_enemy
(id)
        }
        case 
6:
        {
            
m3_duel[id] = true
            choose_enemy
(id)
        }
    }
    
    
menu_destroy(menu)    
    return 
PLUGIN_HANDLED
}

/*================================================================================
Menu of challenges                
=================================================================================*/

public choose_enemy(id)
{
    static 
opcion[64]
    
    
formatex(opcioncharsmax(opcion),"\y%L:"id"CHOOSE_ENEMY")
    new 
iMenu menu_create(opcion"sub_choose_enemy")
    
    new 
players[32], pnumtempid
    
new szName[32], szTempid[10]
    
    
get_players(playerspnum"a")
    
    for( new 
ii<pnumi++ )
    {
        
tempid players[i]
        
        if (
cs_get_user_team(tempid) != CS_TEAM_CT)
        {
            continue
        }
        
        
get_user_name(tempidszName31)
        
num_to_str(tempidszTempid9)
        
menu_additem(iMenuszNameszTempid0)
    }
    
    
menu_display(idiMenu)
    return 
PLUGIN_HANDLED
}

public 
sub_choose_enemy(idmenuitem)
{
    if( 
item == MENU_EXIT )
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED
    
}
    
    new 
Data[6], Name[64]
    new 
AccessCallback
    menu_item_getinfo
(menuitemAccessData,5Name63Callback)
    
    new 
tempid str_to_num(Data)
    
    new 
mapname[32], challenger[32], challenged[32], ct_origin[3], te_origin[3]
    
    
get_mapname(mapname,31)
    
get_user_name(idchallenger31)
    
get_user_name(tempidchallenged31)
    
    
// strip weapons
    
strip_user_weapons(id)
    
strip_user_weapons(tempid)
    
    
// health
    
set_user_health(id100)
    
set_user_health(tempid100)
    
    
// effects
    
switch (get_pcvar_num(cvar_effect))
    {
        case 
0// glow
        
{
            
set_user_rendering(idkRenderFxGlowShell25000kRenderNormal20)    
            
set_user_rendering(tempidkRenderFxGlowShell00250kRenderNormal20)
        }
        case 
1// beacon
        
{
            
set_task(1.0"beacon"id)
            
set_task(1.0"beacon"tempid)
        }
        case 
2// glow n' beacon
        
{
            
set_user_rendering(idkRenderFxGlowShell25000kRenderNormal20)    
            
set_task(1.0"beacon"id)
            
set_user_rendering(tempidkRenderFxGlowShell00250kRenderNormal20)
            
set_task(1.0"beacon"tempid)
        }
    }
    
    
// player challenged
    
player_challenged[tempid] = true
    
    
// lr menu once until he kills the player challenged
    
once[id] = true 
    
    
// unable pick up weapon (only the 2 players on duel)
    
touch_weapons[id] = true
    touch_weapons
[tempid] = true
    
    
if(knife_duel[id])
    {
        
give_item(id"weapon_knife")
        
give_item(tempid"weapon_knife")
        
        if(
equali(mapname,"jail_buyukisyan_gerenimo"))
        {
            
ct_origin[0] = 1545ct_origin[1] = 2122ct_origin[2] = -169
            te_origin
[0] = 1803te_origin[1] = 1866te_origin[2] = -169
            set_user_origin
(id,te_origin)
            
set_user_origin(tempid,ct_origin)
        }
        
        
set_hudmessage02550, -1.00.4025.08.00.00.010)
        
show_hudmessage(0"%L",LANG_PLAYER,"KNIFE_DUEL"challengerchallenged)
        
    }
    else if(
deagle_duel[id])
    {
        
deagle_duel[tempid] = true
        
        cs_set_weapon_ammo
(give_item(id"weapon_deagle"), 1)
        
cs_set_weapon_ammo(give_item(tempid"weapon_deagle"), 1)
        
        if(
equali(mapname,"jail_buyukisyan_gerenimo"))
        {
            
ct_origin[0] = -2293ct_origin[1] = 1287ct_origin[2] = -85
            te_origin
[0] = -2309te_origin[1] = 1829te_origin[2] = -85
            set_user_origin
(id,te_origin)
            
set_user_origin(tempid,ct_origin)
        }
        
        
set_hudmessage02550, -1.00.4025.08.00.00.010)
        
show_hudmessage(0"%L"LANG_PLAYER,"DEAGLE_DUEL"challengerchallenged)
    }
    else if(
grenade_duel[id])
    {
        
give_item(id"weapon_hegrenade")
        
give_item(tempid"weapon_hegrenade")
        
cs_set_user_bpammo(idCSW_HEGRENADE,get_pcvar_num(cvar_granadas_bpammo))        
        
cs_set_user_bpammo(tempidCSW_HEGRENADE,get_pcvar_num(cvar_granadas_bpammo))
        
        if(
equali(mapname,"jail_buyukisyan_gerenimo"))
        {
            
ct_origin[0] = 494ct_origin[1] = 791ct_origin[2] = -246
            te_origin
[0] = 1557te_origin[1] = 825te_origin[2] = -246
            set_user_origin
(id,te_origin)
            
set_user_origin(tempid,ct_origin)
        }
        
        
set_hudmessage02550, -1.00.4025.08.00.00.010)
        
show_hudmessage(0"%L"LANG_PLAYER,"GRENADE_DUEL"challengerchallenged)
    }
    else if(
scout_duel[id])
    {
        
give_item(id"weapon_scout")
        
give_item(tempid"weapon_scout")
        
cs_set_user_bpammo(idCSW_SCOUTget_pcvar_num(cvar_scout_bpammo))
        
cs_set_user_bpammo(tempidCSW_SCOUTget_pcvar_num(cvar_scout_bpammo))
        
        if(
equali(mapname,"jail_buyukisyan_gerenimo"))
        {
            
ct_origin[0] = 1774ct_origin[1] = 1594ct_origin[2] = -354
            te_origin
[0] = -391te_origin[1] = 1573te_origin[2] = -354
            set_user_origin
(id,te_origin)
            
set_user_origin(tempid,ct_origin)
        }
        
        
set_hudmessage02550, -1.00.4025.08.00.00.010)
        
show_hudmessage(0"%L"LANG_PLAYER,"SCOUT_DUEL"challengerchallenged)
    }
    else if(
ak47_duel[id])
    {
        
give_item(id"weapon_ak47")
        
give_item(tempid"weapon_ak47")
        
        if(
equali(mapname,"jail_buyukisyan_gerenimo"))
        {
            
ct_origin[0] = 1623ct_origin[1] = 1106ct_origin[2] = -354
            te_origin
[0] = 390te_origin[1] = 492te_origin[2] = -354
            set_user_origin
(id,te_origin)
            
set_user_origin(tempid,ct_origin)
        }
        
        
set_hudmessage02550, -1.00.4025.08.00.00.010)
        
show_hudmessage(0"%L"LANG_PLAYER,"AK47_DUEL"challengerchallenged)
    }
    else if(
m3_duel[id])
    {
        
give_item(id"weapon_m3")
        
give_item(tempid"weapon_m3")
        
        if(
equali(mapname,"jail_buyukisyan_gerenimo"))
        {
            
ct_origin[0] = 2321ct_origin[1] = 437ct_origin[2] = -497
            te_origin
[0] = 2276te_origin[1] = 1293te_origin[2] = -497
            set_user_origin
(id,te_origin)
            
set_user_origin(tempid,ct_origin)
        }
        
        
set_hudmessage02550, -1.00.4025.08.00.00.010)
        
show_hudmessage(0"%L",LANG_PLAYER,"M3_DUEL"challengerchallenged)
        
        
duel_active true
        
        menu_destroy
(menu)
        return 
PLUGIN_HANDLED
    
}
    
    public 
beacon(id)
    {
        if(
cs_get_user_team(id) == CS_TEAM_CT)
        {
            static 
origin[3]
            
get_user_origin(idorigin)
            
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
            
write_byte(TE_BEAMCYLINDER)    // TE id
            
write_coord(origin[0])         // x
            
write_coord(origin[1])        // y
            
write_coord(origin[2]-20)    // z
            
write_coord(origin[0])        // x axis
            
write_coord(origin[1])        // y axis
            
write_coord(origin[2]+200)    // z axis
            
write_short(beacon_sprite)    // sprite
            
write_byte(0)            // startframe   
            
write_byte(1)            // framerate   
            
write_byte(6)            // life
            
write_byte(2)              // width
            
write_byte(1)               // noise    
            
write_byte(0)              // red  
            
write_byte(0)               // green 
            
write_byte(250)         // blue
            
write_byte(200)            // brightness
            
write_byte(0)            // speed
            
message_end()
        }
        else
        {
            static 
origin[3]
            
get_user_origin(idorigin)
            
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
            
write_byte(TE_BEAMCYLINDER)    // TE id
            
write_coord(origin[0])         // x
            
write_coord(origin[1])        // y
            
write_coord(origin[2]-20)    // z
            
write_coord(origin[0])        // x axis
            
write_coord(origin[1])        // y axis
            
write_coord(origin[2]+200)    // z axis
            
write_short(beacon_sprite)    // sprite
            
write_byte(0)            // startframe   
            
write_byte(1)            // framerate   
            
write_byte(6)            // life
            
write_byte(2)              // width
            
write_byte(1)               // noise    
            
write_byte(250)            // red  
            
write_byte(0)               // green 
            
write_byte(0)             // blue
            
write_byte(200)            // brightness
            
write_byte(0)            // speed
            
message_end()
        }
        
set_task(1.0"beacon"id)
        
    }
    
    
/*================================================================================
    Stocks                    
    =================================================================================*/
    
    
stock ChatColor(const id, const input[], any:...)
    {
        new 
count 1players[32]
        static 
msg[191]
        
vformat(msg190input3)
        
        
replace_all(msg190"!g""^4"// Green Color
        
replace_all(msg190"!y""^1"// Default Color
        
replace_all(msg190"!team""^3"// Team Color
        
        
if (idplayers[0] = id
        
else get_players(playerscount"ch")
        for (new 
0counti++)
        {
            if (
is_user_connected(players[i]))
            {
                
message_begin(MSG_ONE_UNRELIABLEg_msgSayText_players[i])
                
write_byte(players[i])
                
write_string(msg)
                
message_end()
            }
        }
    } 
Pluginde ak47 ekledim sorun çıkmadı . m3 vs si eklediğimde compile edemedim sorun nedir ? undefined symbol chatcolor filan diyor fakat colorchat.inc si mevcut ?