PHP- Kodu:
/////////////////////////////////////////////////////////////////////////////
//==============================    
//=    Jailbreak Guards Menu   =
//==============================    
//
//---------------------
//-    Description    - 
//---------------------
//
//This menu include the features:
//** FriendlyFire Menu (Turn ON or OFF the FF)
//** Gravity Menu (Turn ON or OFF the GRAVITY [default: ON = 300 | OFF = 800])
//** CantPick Weapons Menu (Turn ON or OFF if Terrorists can pick weapons from the ground)
//** NadeWars (Strip all weapons from terrorist and give 300 (default value) HE's
//CTs HP has set 5000 (default value))
//** Open Cells (Open all the prisioners cells)
//** Divide Terrorist Team in two separate teams by glow color
//** Equation Games (Random Equation pop up and the first to type in the chat the right answer will be win)
//** Countdown System
//** ReAmmo System
//** FirstWrites System
//
//----------------------
//-    Requirements    - 
//----------------------
//
//** AMXX: Version 1.8.1
//** AMXX Modules: Cstrike, Fun, Engine, Fakemeta and Hamsandwich modules
//
//----------------------
//-    Installation    - 
//----------------------
//
//1- Download and compile the plugin from:
//2- Upload the amxx file to your server (cstrike>addons>amxmodx>plugins).
//3- Edit the config file and add the plugin (cstrike>addons>amxmodx>configs>plugins.ini).
//
//----------------------
//-     Suggestions    - 
//----------------------
//
//If you want suggest any new option for add to the menu visit:
//https://forums.alliedmods.net/showthread.php?t=190894
//
//----------------------
//-    Contact Info    - 
//----------------------
//
//For reporting bugs or post your feedback visit:
//https://forums.alliedmods.net/showthread.php?p=1756887
//
//If you want some private job pm me on alliedmodders forum's or send me and email to:
//[email protected]
//
//-----------------
//-    Credits    -
//-----------------
//
//** Freestyle
//- Main/Inicial Code
//
//** Pastout
//- Divide Terrorist team in two system
//
//** xDrugz
//- FirstWrite a Number System
//
//** fraglider91
//- Fix Bugs & Optimize Code
//
//------------------
//-  Updates Logs  -
//------------------
//
//** v1.0 [Jul 2012] 
//- Added Original Options.
//
//** v1.1 [Jul 2012] 
//- Added Divide in two system
//
//** v1.2 [Jul 2012] 
//- Added Equation System
//
//** v1.3 [Jul 2012] 
//- Added CountDown System
//- Optimize Code
//
//** v1.4 [Jul 2012] 
//- Added ReAmmo System
//- Added FirstWrites System
//- Optimize Code
//
//** v1.5 [Aug 2012] 
//- Clean code
//- Correct Bugs
//
//** v1.6 [Sep 2012] 
//- Optimize All code
//- Correct Small Bugs
//
////////////////////////////////////////////////////////////////////

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <hamsandwich>
#include <fun>
#include <fakemeta> 
//#include <fakemeta_util> 
#include <engine>


// PLUGIN INFO
#define PLUGIN "Jailbreak Guard Menu"
#define VERSION "1.6"
#define AUTHOR "Freestyle"

// PREFIX
#define PREFIX "Community Tag"

// Options Menu
new g_iGravity,
    
g_iCT_Health,
    
g_iHE_Amount;

new 
boolallow_gun[33],
    
boolg_FF[33],
    
boolg_Gravity[33],
    
boolg_bTeamDivided,
    
boolg_CantPick[33];

// Equation System
const gEquationAmount 5;
new 
gChosenEquation;

new 
bool:gEquationON;

new 
gRandomEquations[gEquationAmount][] = 
{
    
"1 + 1 = ?",
    
"2x + 6 = 0, what is x?",
    
"x^2 + 4x + 4 = 0, what is x?",
    
"52 + 35 = ?",
    
"38 + 12 = ?"
}

new 
gAnswers[gEquationAmount][] = 
{
    
"2""-3""2""87""50"
}

// Weapons Stuff
#define IsPrimaryWeapon(%1) ((1<<%1) & PRIMARY_WEAPONS_BIT)
#define IsSecondaryWeapon(%1) ((1<<%1) & PISTOL_WEAPONS_BIT)
#define MAX_WEAPON CSW_P90

new const g_iMaxBPAmmo[MAX_WEAPON 1] =
{
    
0520901320100901,
    
12010010090909010012030120,
    
20032901209023590900100
}

new 
g_iPrimaryWeapon[33],
    
g_iSecondaryWeapon[33];

// CountDown System
new g_iSyncHud,
    
g_CDSAY[33],
    
g_TaskCountdown;

// FirstWrite System
new g_FWCount,
    
g_fwActive false,
    
g_fwAllowMove false,
    
g_CountVoice[21],
    
g_MixChars[6],
    
g_LastChars[6];
    
new const 
TASKID 2502502;
new 
boolg_FW[33];

public 
plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR);

    
// Commands //
    
register_clcmd("say /ctmenu""menu_jailbreakguard");
    
register_clcmd("say""cmdSay");

    
// Events & Ham //
    
RegisterHam(Ham_TraceAttack"func_button""useButton");
    
RegisterHam(Ham_Spawn"player""Event_Playerspawn"1);
    
    
register_event("CurWeapon""Event_CurWeapon""be""1=1");
    
register_logevent("Event_Round"3"1=RoundStart""2=RoundEnd");
    
    
// ** CVARS ** //
    
    // Gravity //
    
g_iGravity register_cvar("amount_of_gravity""300");
    
    
// NadeWars //
    
g_iCT_Health register_cvar("amount_of_hp""5000");
    
g_iHE_Amount register_cvar("amount_of_he""300");
}

public 
Event_Playerspawn(id)
{
    if(
is_user_alive(id))
    {
        
set_user_gravity(id);
    }
}

//////////////////////////////////////////////
//------------WEAPON BLOCKER----------------//
//////////////////////////////////////////////
public Event_CurWeapon(id)
{
    if(
allow_gun[id])
    {
        return 
PLUGIN_CONTINUE;
    }
    
    return 
PLUGIN_CONTINUE;
}

//////////////////////////////////////////////
//            Equation System               //
//////////////////////////////////////////////
public equation_game_start()
{
    
gEquationON true;
    
    
gChosenEquation random_num(0gEquationAmount 1);
    
    
set_hudmessage(255255255, -1.00.3506.010.00.10.24);
    
show_hudmessage(0"[%s]^nFirst one to answer the equation correctly wins that Game:^n%s"PREFIXgRandomEquations[gChosenEquation]);
    
    return 
PLUGIN_CONTINUE;
}

public 
Event_Round()
{
    
gEquationON false;
}

public 
cmdSay(idplayer)
{
    if(!
gEquationON)
    {
        return 
PLUGIN_CONTINUE;
    }
    
    new 
args[256];
    
read_args(args255);
    
    if(
equal(argsgAnswers[gChosenEquation]))
    {
        new 
szName[32];
        
get_user_name(idszNamecharsmax(szName));
        
        
client_print(idprint_chat"%s correctly answered the equation first. He wins!"szName);
    }
    
    new 
szMessage[32];
    
read_args(szMessagecharsmax(szMessage));
    
remove_quotes(szMessage);
    
    if(
g_fwAllowMove && get_user_team(player) != 1)
    {
        
ColorChat(player"Only^4 Prisoners^1 May Participate !");
        return 
PLUGIN_HANDLED;
    }
    
    if(
equali(szMessageg_LastChars))
    {
        if(
g_fwAllowMove)
        {
            if(!
is_user_connected(player) || !is_user_alive(player))
            {
                
ColorChat(player"You Must Be^4 Alive^1 !");
                return 
PLUGIN_HANDLED;
            }
            
            new 
szWinner[32];
            
get_user_name(playerszWinnercharsmax(szWinner));
            
            
set_hudmessage(255255255, -1.00.3004.04.0);
            
show_hudmessage(0"%s, is the Winner !"szWinner);
            
            
client_cmd(player"spk holo/tr_holo_nicejob");
            
g_fwAllowMove false;
            
g_fwActive false;
        }
    }
    else
    {
        if(
g_fwAllowMove)
        {
            
client_cmd(player"spk scientist/completelywrong");
        }
    }
    
    return 
PLUGIN_CONTINUE;
}

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

public menu_jailbreakguard(id)
{
    if(!
is_user_alive(id))
    {
        return;
    }
    
    if(
cs_get_user_team(id) == CS_TEAM_CT)
    {
        static 
Item[64];
        
formatex(Itemcharsmax(Item), "\yGuards Menu"); 
        new 
Menu menu_create(Item"menu_jailbreakguard_main");
        
        
formatex(Itemcharsmax(Item), "\wFriendlyFire \y(\r%s\y)"g_FF[id] == true "ON" "OFF");
        
menu_additem(MenuItem"1");
        
        
formatex(Itemcharsmax(Item), "\wGravity \y(\r%s\y)"g_Gravity[id] == true "ON" "OFF");
        
menu_additem(MenuItem"2");
        
        
formatex(Itemcharsmax(Item), "\wCantPick \y(\r%s\y)"g_CantPick[id] == true "Actived" "Desactived");
        
menu_additem(MenuItem"3");
        
        
formatex(Itemcharsmax(Item), "\wNadeWars \dSpecial Day");
        
menu_additem(MenuItem"4");
        
        
formatex(Itemcharsmax(Item), "\wDivide Prisioners in 2");
        
menu_additem(MenuItem"5");
        
        
formatex(Itemcharsmax(Item), "\wEquation Game");
        
menu_additem(MenuItem"6");
        
        
formatex(Itemcharsmax(Item), "\wOpen Cells");
        
menu_additem(MenuItem"7");
        
        
formatex(Itemcharsmax(Item), "\wRe-Ammo");
        
menu_additem(MenuItem"8");
        
        
formatex(Itemcharsmax(Item), "\wFirstWrite \y(\r%s\y)"g_FW[id] == true "Started" "Stopped");
        
menu_additem(MenuItem"9");
        
        
menu_setprop(MenuMPROP_EXITMEXIT_ALL);
        
menu_display(idMenu0);
    }
    else
    {
        
client_print(idprint_chat"[%s] You are not a Guard."PREFIX);
    }
}

public 
menu_jailbreakguard_main(idmenuitem)
{
    if(
item == MENU_EXIT)
    {
        
menu_destroy(menu);
        return 
PLUGIN_HANDLED;
    }
    
    new 
data[6], iName[64];
    new 
accesscallback;
    
menu_item_getinfo(menuitemaccessdata,5iName63callback);
    
    new 
key str_to_num(data);
    switch(
key)
    {
        case 
1:
        {
            if(!
g_FF[id])
            {
                
g_FF[id] = true;
                
                if(
g_FF[id])
                {
                    
server_cmd("mp_friendlyfire 1");
                    
                    
set_hudmessage(random_num(1255), random_num(1255), random_num(1255), -1.0, -1.006.012.0);
                    
show_hudmessage(0"[%s]^n= FriendlyFire Online ="PREFIX);
                }
            }
            else
            {
                
g_FF[id] = false;
                
server_cmd("mp_friendlyfire 0");
                
                
set_hudmessage(random_num(1255), random_num(1255), random_num(1255), -1.0, -1.006.012.0);
                
show_hudmessage(0"[%s]^n= FriendlyFire Offline ="PREFIX);
            }
        }
        case 
2:
        {
            if(!
g_Gravity[id])
            {
                
g_Gravity[id] = true;
                
                if(
g_Gravity[id])
                {
                    
server_cmd("sv_gravity %s"get_pcvar_num(g_iGravity));
                    
                    
set_hudmessage(random_num(1255), random_num(1255), random_num(1255), -1.0, -1.006.012.0);
                    
show_hudmessage(0"[%s]^n= Gravity Online ="PREFIX);
                }
            }
            else
            {
                
g_Gravity[id] = false;
                
server_cmd("sv_gravity 800");
                
                
set_hudmessage(random_num(1255), random_num(1255), random_num(1255), -1.0, -1.006.012.0);
                
show_hudmessage(0"[%s]^n= Gravity Offline ="PREFIX);
            }
        }
        case 
3:
        {
            if(!
g_CantPick[id])
            {
                
g_CantPick[id] = true;
                
                if(
g_CantPick[id])
                {
                    
cant_pick_on(id);
                }
            }
            else
            {
                
g_CantPick[id] = false;
                
cant_pick_off(id);
            }
        }
        case 
4nadewars(id);
        case 
5dividein2(id);
        case 
6equation_game_start();
        case 
7open_cells(id);
        case 
8reammo(id);
        case 
9:
        {
            if(!
g_FW[id])
            {
                
g_FW[id] = true;
                
                if(
g_FW[id])
                {
                    
set_task(0.1"fnFwStart");
                }
            }
            else
            {
                
g_FW[id] = false;
                
set_task(0.1"fnFwStop");
            }
        }
    }
    
    return 
PLUGIN_HANDLED;
}

//====================================================
//NadeWars System
//====================================================
public nadewars(id)
{    
    if(
is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_T)
    {
        
strip_user_weapons(id);
        
        
give_item(id"weapon_hegrenade");
        
cs_set_user_bpammo(idCSW_HEGRENADEget_pcvar_num(g_iHE_Amount));
        
        
set_hudmessage(random_num(1255), random_num(1255), random_num(1255), -1.0, -1.006.012.0);
        
show_hudmessage(0"[%s]^n= Nadewars start! The last Prisoner will be win! ="PREFIX);
    }
    else
    {
        
set_user_health(idget_pcvar_num(g_iCT_Health));
    }
}

//====================================================
//Open Cells System
//====================================================
public open_cells(id)
{
    new 
szGuardName[32];
    
get_user_name(idszGuardNamecharsmax(szGuardName));
    
    
set_hudmessage(random_num(1255), random_num(1255), random_num(1255), -1.0, -1.006.012.0);
    
show_hudmessage(0"[%s]^n= Guard %s open the cells ="PREFIXszGuardName);
    
    while(
engfunc(EngFunc_FindEntityByString, -1"classname""func_door"))
    { 
        
dllfunc(DLLFunc_Use, -10);
    }
}

public 
client_PreThink(client)
{
    if(
entity_get_int(clientEV_INT_button) & IN_ATTACK && entity_get_int(clientEV_INT_button) & IN_USE)
    {
        
user_silentkill(client);
        
client_print(clientprint_center"You Died Due to Using Game Bug!");
    }
}

public 
useButton(iEntiAttackerFloat:fDamageFloat:vDirection[3], TraceHandleiDamageBits)
{
    if(
cs_get_user_team(iAttacker) != CS_TEAM_CT)
    {
        return 
HAM_IGNORED;
    }
    
    
dllfunc(DLLFunc_UseiEntiAttacker);
    return 
HAM_IGNORED;
}

//====================================================
//CantPick System
//====================================================
public cant_pick_off(id)
{
    new 
iNum;
    for(new 
0iNumi++)
    {
        if(
cs_get_user_team(id) == CS_TEAM_T)
        {
            
allow_gun[i] = true;
            
            
set_hudmessage(random_num(1255), random_num(1255), random_num(1255), -1.0, -1.006.012.0);
            
show_hudmessage(0"[%s]^n= Cant Pick Weapons Offline ="PREFIX);
        }
    }
}

public 
cant_pick_on(id)
{
    new 
iNum;
    for(new 
0iNumi++)
    {
        if(
cs_get_user_team(id) == CS_TEAM_T)
        {
            
allow_gun[i] = false;
            
            
set_hudmessage(random_num(1255), random_num(1255), random_num(1255), -1.0, -1.006.012.0);
            
show_hudmessage(0"[%s]^n= Cant Pick Weapons Online ="PREFIX);
        }
    }
}

//====================================================
//DivideIn2 System (Credits to Pastout)
//====================================================
public dividein2(id)
{
    static 
iNum,
        
iPlayers[32],
        
iPlayer,
        
i,
        
Count;
        
    
Count 0;
    
get_players(iPlayersiNum"ae""TERRORIST");  
    
    new 
szName[32];
    
get_user_name(idszNamecharsmax(szName));
    
    for(
0iNumi++) 
    {
        
iPlayer iPlayers[i];
        
Count++;
    }
    
    new 
iExtraPlayers Count 2;
    
    if(
iExtraPlayers)
    {
        
client_print(idprint_chat"[%s] Cannot Divide the Team due to odd number of Prisoners"PREFIX);
    }
    else if(
g_bTeamDivided)
    {
        for(
0iNumi++)
        {
            
iPlayer iPlayers[i];
            
set_user_rendering(iPlayer_000_0);
        }
        
        
g_bTeamDivided false;
        
client_print(idprint_chat"[%s] The Teams have been unglowed!"PREFIX);
    }
    else
    {
        for(new 
maxPerTeam = (iNum 2), g_iTeams[2], g_iTeamiPlayer0iNumi++)
        {
            
iPlayer iPlayers[i];
            
            
g_iTeam random_num(01);
            
            if(
g_iTeams[g_iTeam] >= maxPerTeam)
            {
                
g_iTeam = !g_iTeam;
            }
            else
            {
                
g_iTeams[g_iTeam]++
            }
            
            if(
g_iTeam == 1)
            {
                
set_user_rendering(iPlayerkRenderFxGlowShell25500kRenderNormal16);
            }
            if(
g_iTeam == 0)
            {
                
set_user_rendering(iPlayerkRenderFxGlowShell00255kRenderNormal16);
            }
        }
        
        
client_print(0print_chat"[%s] Guard %s has Divided Prisoners into two Teams"PREFIXszName);
        
g_bTeamDivided true;
    }
}

//=====================================================
//Count Down System
//=====================================================
public Countdown(id)
{
    if(
task_exists(g_TaskCountdown))
    {
        
client_print(idprint_chat"[%s] Already have one countdown in progress."PREFIX);
    }
    else
    {
        
g_CDSAY[id] = true;
        
        
client_cmd(id"messagemode _countdown_");
        
client_print(idprint_chat"[%s] Write how many seconds you want for the countdown."PREFIX);
    }
    
    return 
PLUGIN_HANDLED;
}

public 
MessageModeCountdown(id)
{
    if(!
g_CDSAY[id])
    {
        return 
PLUGIN_HANDLED;
    }
    
    
g_CDSAY[id] = false;
    
    new 
szArg[5];
    
read_args(szArgcharsmax(szArg));
    
remove_quotes(szArg);
    
    if(!
szArg[0])
    {
        return 
PLUGIN_HANDLED;
    }
    
    new 
Count;
    
Count str_to_num(szArg);
    
    
TaskCountdown(Count 1);
    
    
set_task(1.0"TaskCountdown"g_TaskCountdown__"a"Count);
    
    new 
szName[32];
    
get_user_name(idszNamecharsmax(szName));
    
    
set_hudmessage(2552551000.010.352);
    
show_hudmessage(0"[%s] Guard %s start the countdown!"PREFIXszName);
    
    return 
PLUGIN_HANDLED;
}

public 
TaskCountdown(iStartCount)
{
    static 
Count;
    
    if(!
Count && !task_exists(g_TaskCountdown))
    {
        
Count iStartCount;
    }
    
    switch(
Count--)
    {
        case 
1:
        {
            
ClearSyncHud(0g_iSyncHud);
            
client_cmd(0"spk ^"radio/com_go.wav^"");
        }
        case 
2..21:
        {
            new 
szTime[20];
            
num_to_word(CountszTimecharsmax(szTime));
            
            
client_cmd(0"spk ^"fvox/%s.wav^""szTime);
            
            
set_hudmessage(2552552550.50.351);    
            
ShowSyncHudMsg(0g_iSyncHud"%i"Count)
        }
        default:
        {
            
set_hudmessage(2552552550.50.351);
            
ShowSyncHudMsg(0g_iSyncHud"%i"Count);
        }
    }
}

//=====================================================
//ReAmmo System
//=====================================================
public reammo(id)
{
    new 
iPrimary g_iPrimaryWeapon[id];
    new 
iSecondary g_iSecondaryWeapon[id];
    
    if(
user_has_weapon(idiPrimary))
    {
        if(
cs_set_user_bpammo(idiPrimaryg_iMaxBPAmmo[iPrimary] == 0))
        {
            
cs_set_user_bpammoidiPrimaryg_iMaxBPAmmo[iPrimary]);
        }
        else
        {
            
set_hudmessage(random_num(1255), random_num(1255), random_num(1255), -1.00.0106.012.0);
            
show_hudmessage(id"[%s]^n= You dont have 0 bullets into your Weapon ="PREFIX);
        }
    }
    
    if(
user_has_weapon(idiSecondary))
    {
        if(
cs_set_user_bpammo(idiPrimaryg_iMaxBPAmmo[iSecondary] == 0))
        {
            
cs_set_user_bpammo(idiPrimaryg_iMaxBPAmmo[iSecondary]);
        }
        else
        {
            
set_hudmessage(random_num(1255), random_num(1255), random_num(1255), -1.00.0106.012.0);
            
show_hudmessage(id"[%s]^n= You dont have 0 bullets into your Weapon ="PREFIX);
        }
    }
}

//=====================================================
//FirstWrite a Number System (Credits to xDrugz)
//=====================================================
public fnFwStart(player
{
    if(!
g_fwActive)
    {
        
g_FWCount 5;
        
ActionTimer();
        
g_fwActive true;
    }
    else
    {
        
ColorChat(player"^"^4First Writes^1^" Activity Already Started !");
    }
    
    return 
PLUGIN_CONTINUE;
}

public 
fnFwStop(player
{
    if(
g_fwActive)
    {
        
remove_task(TASKID);
        
g_fwActive false;
        
g_fwAllowMove false;
        
ColorChat(0"^"^4First Writes^1^" Activity Stopped !");
    }
    
    return 
PLUGIN_CONTINUE;
}

public 
ActionTimer() 
{
    switch(
g_FWCount)
    {
        case 
0:
        {
            
g_fwAllowMove true;
            
            
formatex(g_MixChars4"%i"random_num(099999));
            
g_LastChars g_MixChars;
            
            
set_hudmessage(255255255, -1.00.3004.04.0);
            
show_hudmessage(0"[%s]"g_LastChars);
            
            
ColorChat(0"Agreed Number is^4 %s^1 Hurry up !"g_LastChars);
            
            
remove_task(TASKID);
            
set_task(15.0"ActionFailed"TASKID);
        }
        case 
1..5:
        {
            
set_task(1.0"ActionTimer"TASKID);
        }
    }
    
    if(
g_FWCount != 0)
    {
        
num_to_word(g_FWCountg_CountVoice20);
        
        
client_cmd(0"spk ^"vox/%s seconds^""g_CountVoice);
        
        
set_hudmessage(255255255, -1.00.3000.50.5);
        
show_hudmessage(0"Start in %d Seconds !"g_FWCount);
        
        --
g_FWCount;
    }
}

public 
ActionFailed() 
{
    if(
g_fwAllowMove)
    {
        
set_hudmessage(255255255, -1.00.3004.04.0);
        
show_hudmessage(0"First Writes Activity Failed !");
        
        
ColorChat(0"^"^4First Writes^1^" Activity Failed !");
        
client_cmd(0"spk holo/tr_holo_tryagain");
        
        
g_fwAllowMove false;
        
g_fwActive false;
    } 
    else
    {
        
remove_task(TASKID);
    }
}

stock ColorChat(index, const Msg[], {FloatSqlResult,_}:...)
{
    new 
Buffer[190],
        
Buffer2[192];
        
    
formatex(Buffer2sizeof(Buffer2)-1"^3[^1%s^3]^1 %s"PREFIXMsg);
    
vformat(Buffersizeof(Buffer)-1Buffer23);
    
    if(!
index)
    {
        for(new 
1<= get_maxplayers(); i++)
        {
            if(!
is_user_connected(i))
            {
                continue;
            }
            
            
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _i);
            
write_byte(i);
            
write_string(Buffer);
            
message_end();
        }
    }
    else
    {
        if(!
is_user_connected(index))
        {
            return;
        }
        
        
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _index);
        
write_byte(index);
        
write_string(Buffer);
        
message_end();
    }
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang2070\\ f0\\ fs16 \n\\ par }
*/ 
Bayadır bende duruyor yabancı bir siteden aldım hiç çevirmeden orjinal haliyle buraya koydum