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_iMsgSayText, 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:Variable = true,
bool:knife_duel[33] ,bool:deagle_duel[33], bool:grenade_duel[33], bool:scout_duel[33]
new tag[] = "[www.osmanlijailcs.tk]"
/*================================================================================
Init n' precache        
=================================================================================*/
public plugin_precache() 
{    
    beacon_sprite = precache_model("sprites/shockwave.spr")
    precache_sound("oslr/of2.wav")
    precache_sound("oslr/of3.wav")
    precache_sound("oslr/of4.wav")
    precache_sound("oslr/of5.wav")
    precache_sound("oslr/of5.wav")
    precache_sound("oslr/of6.wav")
    precache_sound("oslr/of7.wav")
}
public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    register_logevent("eRoundStart",2,"1=Round_Start")
    
    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")    
    RegisterHam(Ham_TakeDamage,"player","fw_TakeDamage")
    register_forward(FM_CmdStart,"fw_cmdstart",1)
    
    // Comando de jugador - Client commands
    register_clcmd("say /lr", "duel_menu")
    register_clcmd("say !lr", "duel_menu")
    register_clcmd("say_team /lr", "duel_menu")
    register_clcmd("say_team !lr", "duel_menu")
    // Cvars
    cvar_granadas_bpammo = register_cvar("jb_grenade_bpammo","15") // amount bpammo grenade | cantidad de granadas
    cvar_scout_bpammo = register_cvar("jb_scout_bpammo", "15") // amount bpammo scout | cantidad de balas pa' la scout
    cvar_effect = register_cvar("jb_effect", "0") // 0 = glow , 1 = beacon, 2 = glow n' beacon
    
    g_maxPlayers = get_maxplayers()
    g_iMsgSayText = get_user_msgid("SayText") 
}
/*================================================================================
Round Start                
=================================================================================*/
public eRoundStart() {
    duel_active = false
    Variable = true
    set_cvar_num("bh_enabled",1);
    new rand = random_num(0,2)
    switch(rand)
    {
        case 0: client_cmd(0,"spk oslr/of2.wav")
        case 1: client_cmd(0,"spk oslr/of5.wav")
        case 2: client_cmd(0,"spk oslr/of6.wav")
    }
    
}  
public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
{
    if(get_user_team(victim) == 2 && get_user_team(attacker) == 1 && Variable)   {
        new rand = random_num(0,1)
        switch(rand)
        {
            case 0: client_cmd(0,"spk oslr/of4.wav")
            case 1: client_cmd(0,"spk oslr/of7.wav")
        }
        
        Variable = 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    
    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)
{
    
    if(! (1<=victim<=g_maxPlayers && 1<=attacker<=g_maxPlayers)) {
    return HAM_IGNORED
    }
    
    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
            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)
        }
    }
    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) 
            {  
                new rand = random_num(0,2)
                switch(rand)
                {
                    case 0: client_cmd(0,"spk oslr/of2.wav")
                    case 1: client_cmd(0,"spk oslr/of3.wav")
                    case 2: client_cmd(0,"spk oslr/of5.wav")
                }
                static opcion[64]
                formatex(opcion, charsmax(opcion),"\yDuello Turunu Sec %s",tag)
                new iMenu = menu_create(opcion, "sub_duel_menu")    
                
                formatex(opcion, charsmax(opcion),"\wYumruk Yumruga Duello")
                menu_additem(iMenu, opcion, "1")
                
                formatex(opcion, charsmax(opcion),"\wDeagle Duellosu")
                menu_additem(iMenu, opcion, "2")
                
                formatex(opcion, charsmax(opcion),"\wEl Bombasi Duellosu")
                menu_additem(iMenu, opcion, "3")    
                
                formatex(opcion, charsmax(opcion),"\wScout Duellosu")
                menu_additem(iMenu, opcion, "4")
                
                menu_setprop(iMenu, MPROP_EXIT, MEXIT_ALL)
                menu_display(id, iMenu, 0)
            }
        }
    }
    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)
        }
    }
    
    menu_destroy(menu)    
    return PLUGIN_HANDLED
}
/*================================================================================
Menu of challenges                
=================================================================================*/
public choose_enemy(id)
{
    static opcion[64]
    
    formatex(opcion, charsmax(opcion),"\yGARDIYAN SEC")
    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)
    
    if(!is_user_alive(tempid)) {
    client_print(id,print_chat,"Kullanici bulunamadi !")
    return PLUGIN_HANDLED
    }
    
    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
    server_cmd("amx_show_activity 0");
    server_cmd("amx_unammo @all 0");
    server_cmd("amx_godmode @all 0");
    server_cmd("amx_show_activity 2");
    set_cvar_num("bh_enabled",0);
    if(knife_duel[id])
    {
        give_item(id, "weapon_knife")
        give_item(tempid, "weapon_knife")
        set_user_health(id, 30)
        set_user_health(tempid, 30)
        
        if(equali(mapname,"some1s_jailbreak"))
        {
            ct_origin[0] = -759, ct_origin[1] = 1047, ct_origin[2] = 100
            te_origin[0] = -585, te_origin[1] = 867, te_origin[2] = 100
            set_user_origin(id,te_origin)
            set_user_origin(tempid,ct_origin)
        }
        ChatColor( 0,"^4%s ^1ile ^4%s ^1YUMRUK duellosu yapiyor.",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,"some1s_jailbreak"))
        {
            ct_origin[0] = -1352, ct_origin[1] = 271, ct_origin[2] = 38
            te_origin[0] = -1338, te_origin[1] = -782, te_origin[2] = 38
            set_user_origin(id,te_origin)
            set_user_origin(tempid,ct_origin)
        }
        ChatColor( 0,"^4%s ^1ile ^4%s ^1DEAGLE duellosu yapiyor.",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,"some1s_jailbreak"))
        {
            ct_origin[0] = -1756, ct_origin[1] = -2526, ct_origin[2] = 36
            te_origin[0] = -3020, te_origin[1] = -2529, te_origin[2] = 36
            set_user_origin(id,te_origin)
            set_user_origin(tempid,ct_origin)
        }
        ChatColor( 0,"^4%s ^1ile ^4%s ^1EL BOMBASI duellosu yapiyor.",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,"some1s_jailbreak"))
        {
            ct_origin[0] = -2898, ct_origin[1] = -2040, ct_origin[2] = 37
            te_origin[0] = -2908, te_origin[1] = 905, te_origin[2] = 37
            set_user_origin(id,te_origin)
            set_user_origin(tempid,ct_origin)
        }
        ChatColor( 0,"^4%s ^1ile ^4%s ^1SCOUT duellosu yapiyor.",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_iMsgSayText, _, players[i])  
                write_byte(players[i]);
                write_string(msg);
                message_end();
            }
        }
    }
}