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_maxPlayers, g_msgSayText, beacon_sprite
 
new cvar_granadas_bpammo, cvar_scout_bpammo, cvar_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(PLUGIN, VERSION, AUTHOR)
    
    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(weapon, id)
{
    if (!is_user_connected(id))
        return HAM_IGNORED;
    
    new players[32], pnum, tempid;
    get_players(players, pnum, "a");
    for( new i; i<pnum; i++ )
    {        
        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(player, CSW_DEAGLE, 1)
    }
}
 
public fw_player_killed(victim, attacker, shouldgib)
{
    new name[32]
    get_user_name(attacker, name, 31)
    
    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_hudmessage( 0, 255, 0, -1.0, 0.40, 2, 5.0, 8.0, 0.0, 0.0, 10)
            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], ctsnum, tsnum 
            
            for (new id=1; id <= g_maxPlayers; id++)
            {
                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 == 1 && ctsnum >= 1) 
            {  
                
                static opcion[64]
                
                formatex(opcion, charsmax(opcion),"\y%L:", id, "CHOOSE_DUEL")
                new iMenu = menu_create(opcion, "sub_duel_menu")
                
                formatex(opcion, charsmax(opcion),"\w%L", id, "DUEL_1")
                menu_additem(iMenu, opcion, "1")    
                
                formatex(opcion, charsmax(opcion),"\w%L", id, "DUEL_2")
                menu_additem(iMenu, opcion, "2")
                
                formatex(opcion, charsmax(opcion),"\w%L", id, "DUEL_3")
                menu_additem(iMenu, opcion, "3")    
                
                formatex(opcion, charsmax(opcion),"\w%L", id, "DUEL_4")
                menu_additem(iMenu, opcion, "4")
                
                formatex(opcion, charsmax(opcion),"\w%L", id, "DUEL_5")
                menu_additem(iMenu, opcion, "5")
                
                formatex(opcion, charsmax(opcion),"\w%L", id, "DUEL_6")
                menu_additem(iMenu, opcion, "6")
                
                menu_setprop(iMenu, MPROP_EXIT, MEXIT_ALL)
                menu_display(id, iMenu, 0)
                
            }
            else if    (tsnum == 1 && 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(id, menu, item)
{
    
    if (item == MENU_EXIT)
    {
        menu_destroy(menu)
        return PLUGIN_HANDLED
    }
    
    new Data[6], Name[64]
    new Access, Callback
    
    menu_item_getinfo(menu, item, Access, Data,5, Name, 63, Callback)
    
    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(opcion, charsmax(opcion),"\y%L:", id, "CHOOSE_ENEMY")
    new iMenu = menu_create(opcion, "sub_choose_enemy")
    
    new players[32], pnum, tempid
    new szName[32], szTempid[10]
    
    get_players(players, pnum, "a")
    
    for( new i; i<pnum; i++ )
    {
        tempid = players[i]
        
        if (cs_get_user_team(tempid) != CS_TEAM_CT)
        {
            continue
        }
        
        get_user_name(tempid, szName, 31)
        num_to_str(tempid, szTempid, 9)
        menu_additem(iMenu, szName, szTempid, 0)
    }
    
    menu_display(id, iMenu)
    return PLUGIN_HANDLED
}
 
public sub_choose_enemy(id, menu, item)
{
    if( item == MENU_EXIT )
    {
        menu_destroy(menu)
        return PLUGIN_HANDLED
    }
    
    new Data[6], Name[64]
    new Access, Callback
    menu_item_getinfo(menu, item, Access, Data,5, Name, 63, Callback)
    
    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(id, challenger, 31)
    get_user_name(tempid, challenged, 31)
    
    // strip weapons
    strip_user_weapons(id)
    strip_user_weapons(tempid)
    
    // health
    set_user_health(id, 100)
    set_user_health(tempid, 100)
    
    // effects
    switch (get_pcvar_num(cvar_effect))
    {
        case 0: // glow
        {
            set_user_rendering(id, kRenderFxGlowShell, 250, 0, 0, kRenderNormal, 20)    
            set_user_rendering(tempid, kRenderFxGlowShell, 0, 0, 250, kRenderNormal, 20)
        }
        case 1: // beacon
        {
            set_task(1.0, "beacon", id)
            set_task(1.0, "beacon", tempid)
        }
        case 2: // glow n' beacon
        {
            set_user_rendering(id, kRenderFxGlowShell, 250, 0, 0, kRenderNormal, 20)    
            set_task(1.0, "beacon", id)
            set_user_rendering(tempid, kRenderFxGlowShell, 0, 0, 250, kRenderNormal, 20)
            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] = 1545, ct_origin[1] = 2122, ct_origin[2] = -169
            te_origin[0] = 1803, te_origin[1] = 1866, te_origin[2] = -169
            set_user_origin(id,te_origin)
            set_user_origin(tempid,ct_origin)
        }
        
        set_hudmessage( 0, 255, 0, -1.0, 0.40, 2, 5.0, 8.0, 0.0, 0.0, 10)
        show_hudmessage(0, "%L",LANG_PLAYER,"KNIFE_DUEL", challenger, challenged)
        
    }
    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] = -2293, ct_origin[1] = 1287, ct_origin[2] = -85
            te_origin[0] = -2309, te_origin[1] = 1829, te_origin[2] = -85
            set_user_origin(id,te_origin)
            set_user_origin(tempid,ct_origin)
        }
        
        set_hudmessage( 0, 255, 0, -1.0, 0.40, 2, 5.0, 8.0, 0.0, 0.0, 10)
        show_hudmessage(0, "%L", LANG_PLAYER,"DEAGLE_DUEL", challenger, challenged)
    }
    else if(grenade_duel[id])
    {
        give_item(id, "weapon_hegrenade")
        give_item(tempid, "weapon_hegrenade")
        cs_set_user_bpammo(id, CSW_HEGRENADE,get_pcvar_num(cvar_granadas_bpammo))        
        cs_set_user_bpammo(tempid, CSW_HEGRENADE,get_pcvar_num(cvar_granadas_bpammo))
        
        if(equali(mapname,"jail_buyukisyan_gerenimo"))
        {
            ct_origin[0] = 494, ct_origin[1] = 791, ct_origin[2] = -246
            te_origin[0] = 1557, te_origin[1] = 825, te_origin[2] = -246
            set_user_origin(id,te_origin)
            set_user_origin(tempid,ct_origin)
        }
        
        set_hudmessage( 0, 255, 0, -1.0, 0.40, 2, 5.0, 8.0, 0.0, 0.0, 10)
        show_hudmessage(0, "%L", LANG_PLAYER,"GRENADE_DUEL", challenger, challenged)
    }
    else if(scout_duel[id])
    {
        give_item(id, "weapon_scout")
        give_item(tempid, "weapon_scout")
        cs_set_user_bpammo(id, CSW_SCOUT, get_pcvar_num(cvar_scout_bpammo))
        cs_set_user_bpammo(tempid, CSW_SCOUT, get_pcvar_num(cvar_scout_bpammo))
        
        if(equali(mapname,"jail_buyukisyan_gerenimo"))
        {
            ct_origin[0] = 1774, ct_origin[1] = 1594, ct_origin[2] = -354
            te_origin[0] = -391, te_origin[1] = 1573, te_origin[2] = -354
            set_user_origin(id,te_origin)
            set_user_origin(tempid,ct_origin)
        }
        
        set_hudmessage( 0, 255, 0, -1.0, 0.40, 2, 5.0, 8.0, 0.0, 0.0, 10)
        show_hudmessage(0, "%L", LANG_PLAYER,"SCOUT_DUEL", challenger, challenged)
    }
    else if(ak47_duel[id])
    {
        give_item(id, "weapon_ak47")
        give_item(tempid, "weapon_ak47")
        
        if(equali(mapname,"jail_buyukisyan_gerenimo"))
        {
            ct_origin[0] = 1623, ct_origin[1] = 1106, ct_origin[2] = -354
            te_origin[0] = 390, te_origin[1] = 492, te_origin[2] = -354
            set_user_origin(id,te_origin)
            set_user_origin(tempid,ct_origin)
        }
        
        set_hudmessage( 0, 255, 0, -1.0, 0.40, 2, 5.0, 8.0, 0.0, 0.0, 10)
        show_hudmessage(0, "%L", LANG_PLAYER,"AK47_DUEL", challenger, challenged)
    }
    else if(m3_duel[id])
    {
        give_item(id, "weapon_m3")
        give_item(tempid, "weapon_m3")
        
        if(equali(mapname,"jail_buyukisyan_gerenimo"))
        {
            ct_origin[0] = 2321, ct_origin[1] = 437, ct_origin[2] = -497
            te_origin[0] = 2276, te_origin[1] = 1293, te_origin[2] = -497
            set_user_origin(id,te_origin)
            set_user_origin(tempid,ct_origin)
        }
        
        set_hudmessage( 0, 255, 0, -1.0, 0.40, 2, 5.0, 8.0, 0.0, 0.0, 10)
        show_hudmessage(0, "%L",LANG_PLAYER,"M3_DUEL", challenger, challenged)
        
        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(id, origin)
            message_begin(MSG_BROADCAST, SVC_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(id, origin)
            message_begin(MSG_BROADCAST, SVC_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 = 1, players[32]
        static msg[191]
        vformat(msg, 190, input, 3)
        
        replace_all(msg, 190, "!g", "^4") // Green Color
        replace_all(msg, 190, "!y", "^1") // Default Color
        replace_all(msg, 190, "!team", "^3") // Team Color
        
        if (id) players[0] = id
        else get_players(players, count, "ch")
        for (new i = 0; i < count; i++)
        {
            if (is_user_connected(players[i]))
            {
                message_begin(MSG_ONE_UNRELIABLE, g_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 ?