PHP Code:
/*
*
* JailBreak Mod
* Copyright (C) 2008-2009 by Eriks 'The-No0n3' Brions
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* In addition, as a special exception, the author gives permission to
* link the code of this program with the Half-Life Game Engine ("HL
* Engine") and Modified Game Libraries ("MODs") developed by Valve,
* L.L.C ("Valve"). You must obey the GNU General Public License in all
* respects for all of the code used other than the HL Engine and MODs
* from Valve. If you modify this file, you may extend this exception
* to your version of the file, but you are not obligated to do so. If
* you do not wish to do so, delete this exception statement from your
* version.
*
* Features:
* - Rebel System
* - Freeday System
* - Voice Blocking for Terrorists and dead CT's
* - Voteban
*
* - Last Request:
* - Knife Battle
* - Shot 4 Shot
* - Shotty Madness
* - Scout Battle
* - Grenade Battle
* - The Hidden
* - Crazy Terrorist
*/
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <hamsandwich>
#include <cstrike>
#include <fun>
#include <nvault>
#define PLUGIN "JailBreak"
#define VERSION "0.4"
#define AUTHOR "Eriks 'The-No0n3' Brions"
#define MENU_KEYS (1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<5 | 1<<6 | 1<<7 | 1<<8 | 1<<9)
#define MENU_SLOTS 8
#define TASK_TRAIL 1000
#define TASK_SETAMMO 1500
enum
{
CS_TEAM_UNASSIGNED = 0,
CS_TEAM_T,
CS_TEAM_CT,
CS_TEAM_SPECTATOR
}
enum
{
MENU_LR = 0,
MENU_GUARD,
MENU_EQUIP,
MENU_CLASSCT,
MENU_SHOP
}
enum
{
LR_GAME_NONE = 0,
LR_GAME_KNIFE_BATTLE,
LR_GAME_S4S,
LR_GAME_SHOTTY,
LR_GAME_SCOUTZ,
LR_GAME_GRENADE,
LR_GAME_HIDDEN,
LR_GAME_CRAZY
}
enum
{
CT_CLASS_REGULAR = 0,
CT_CLASS_FAT,
CT_CLASS_SNIPER,
CT_CLASS_RUSSIAN,
CT_CLASS_SWAT,
CT_CLASS_GUNNER
}
enum ePlayerData {
PlayerName[33] = 0,
bool:PlayerIsRebel,
bool:PlayerHasFreeday,
bool:PlayerIsInLr,
bool:GivingItem,
bool:SeenWelcomeMsg,
bool:LrCanShootDeagle,
iFreedayCount,
ClassCT
}
#define SHOP_ITEMS_NUM 3
enum SHOP_DATA {
ITEM_NONE = 0,
ITEM_PISTOL,
ITEM_PILL,
ITEM_ARMOR
}
/*new SHOP_ITEM_PRICE[SHOP_DATA][] =
{ 0,
15,
5,
10 }
*/
new SHOP_ITEM_NAME[SHOP_DATA][] = { "",
"Pistol Gamble",
"Pill",
"Armor" }
// Max BP ammo for weapons
new const MAXBPAMMO[] = { -1, 52, -1, 90, 1, 32, 1, 100, 90, 1, 120, 100, 100, 90, 90, 90, 100, 120, 30, 120, 200, 32, 90, 120, 90, 2, 35, 90, 90, -1, 100 }
// Max Clip for weapons
//new const MAXCLIP[] = { -1, 13, -1, 10, -1, 7, -1, 30, 30, -1, 30, 20, 25, 30, 35, 25, 12, 20, 10, 30, 100, 8, 30, 30, 20, -1, 7, 30, 30, -1, 50 }
// Amount of ammo to give when buying additional clips for weapons
//new const BUYAMMO[] = { -1, 13, -1, 30, -1, 8, -1, 12, 30, -1, 30, 50, 12, 30, 30, 30, 12, 30, 10, 30, 30, 8, 30, 30, 30, -1, 7, 30, 30, -1, 50 }
// Ammo IDs for weapons
//new const AMMOID[] = { -1, 9, -1, 2, 12, 5, 14, 6, 4, 13, 10, 7, 6, 4, 4, 4, 6, 10, 1, 10, 3, 5, 4, 10, 2, 11, 8, 4, 2, -1, 7 }
// Ammo Type Names for weapons
new const AMMOTYPE[][] = { "", "357sig", "", "762nato", "", "buckshot", "", "45acp", "556nato", "", "9mm", "57mm", "45acp", "556nato", "556nato", "556nato", "45acp", "9mm", "338magnum", "9mm", "556natobox", "buckshot", "556nato", "9mm", "762nato", "", "50ae", "556nato", "762nato", "", "57mm" }
// Weapon IDs for ammo types
//new const AMMOWEAPON[] = { 0, CSW_AWP, CSW_SCOUT, CSW_M249, CSW_AUG, CSW_XM1014, CSW_MAC10, CSW_FIVESEVEN, CSW_DEAGLE, CSW_P228, CSW_ELITE, CSW_FLASHBANG, CSW_HEGRENADE, CSW_SMOKEGRENADE, CSW_C4 }
// Primary and Secondary Weapon Names
//new const WEAPONNAMES[][] = { "", "P228 Compact", "", "Schmidt Scout", "", "XM1014 M4", "", "Ingram MAC-10", "Steyr AUG A1", "", "Dual Elite Berettas", "FiveseveN", "UMP 45", "SG-550 Auto-Sniper", "IMI Galil", "Famas", "USP .45 ACP Tactical", "Glock 18C", "AWP Magnum Sniper", "MP5 Navy", "M249 Para Machinegun", "M3 Super 90", "M4A1 Carbine", "Schmidt TMP", "G3SG1 Auto-Sniper", "", "Desert Eagle .50 AE", "SG-552 Commando", "AK-47 Kalashnikov", "", "ES P90" }
// Weapon entity names
/*
new const WEAPONENTNAMES[][] = { "", "weapon_p228", "", "weapon_scout", "weapon_hegrenade", "weapon_xm1014",
"weapon_c4", "weapon_mac10", "weapon_aug", "weapon_smokegrenade", "weapon_elite", "weapon_fiveseven",
"weapon_ump45", "weapon_sg550", "weapon_galil", "weapon_famas", "weapon_usp", "weapon_glock18",
"weapon_awp", "weapon_mp5navy", "weapon_m249", "weapon_m3", "weapon_m4a1", "weapon_tmp", "weapon_g3sg1",
"weapon_flashbang", "weapon_deagle", "weapon_sg552", "weapon_ak47", "weapon_knife", "weapon_p90" }
*/
new g_PlayerData[33][ePlayerData]
new g_vault;
new bool:g_loadedvault[33];
new g_msgSayText;
new g_msgCurWeapon;
new g_msgScoreInfo;
new g_rebels = 0;
new g_aGuardCount = 0;
new g_aPrisionerCount = 0;
new g_day = 0;
new g_lrG = 0;
new bool:g_lrG_activated = false;
new g_iHiddenTimeleft
//CVARS
new cvar_KnifeBattleHP
new cvar_Shot4ShotHP
new cvar_SoutBattleHP
new cvar_GrenadeBattleHP
new cvar_ShottyMadnessHP
new cvar_TheHiddenTime
new cvar_TheHiddenTrans
new cvar_CrazyTime;
new cvar_AnnounceRebels;
new cvar_GlowRebels;
new cvar_HideRebelVictims;
new cvar_CtClasses;
new cvar_rebelaward;
new cvar_savestats;
new cvar_lrtrail;
new gBeam;
new g_iCrazyTimeleft;
new g_voteban_votes[3];
new g_voteban_caller;
new g_voteban_target;
new bool:g_voteban_running = false;
new g_iPlayers[32];
new g_iGuards[32];
new g_iNum;
new g_iGuardNum;
new g_iBanMenuPage[33];
new g_iLrMenuPage[33];
//new g_attackers[33][33];
//static model_knife_ct[] = "models/v_knife.mdl";
#define KNIFE_MODELS 2
static model_knife_t[] = "models/v_knife.mdl";
//static model_knife_pencil[] = "models/EG_JailBreak/v_knife_pencil.mdl";
//new KNIFE_MODEL[33] = -1;
new knife_sounds_original[9][] =
{
"weapons/knife_deploy1.wav",
"weapons/knife_hit1.wav",
"weapons/knife_hit2.wav",
"weapons/knife_hit3.wav",
"weapons/knife_hit4.wav",
"weapons/knife_hitwall1.wav",
"weapons/knife_slash1.wav",
"weapons/knife_slash2.wav",
"weapons/knife_stab.wav"
}
new knife_sounds_new[9][] =
{
"weapons/knife_deploy1.wav",
"weapons/knife_hit1.wav",
"weapons/knife_hit2.wav",
"weapons/knife_hit3.wav",
"weapons/knife_hit4.wav",
"weapons/knife_hitwall1.wav",
"weapons/knife_slash1.wav",
"weapons/knife_slash2.wav",
"weapons/knife_stab.wav"
}
public plugin_precache()
{
gBeam = precache_model("sprites/dot.spr");
//precache_model(model_knife_ct)
precache_model(model_knife_t)
//precache_model(model_knife_pencil)
for(new i = 0; i < 9; i++)
{
precache_sound(knife_sounds_new[i]);
}
}
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
//Ham forwards
RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn", 1)
//RegisterHam(Ham_CS_RoundRespawn, "player", "fw_PlayerSpawn", 1);
RegisterHam(Ham_Killed, "player", "fw_PlayerKilled")
RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_deagle", "fw_primary_attack")
RegisterHam(Ham_Touch, "weaponbox", "fw_TouchWeapon")
RegisterHam(Ham_Touch, "armoury_entity", "fw_TouchWeapon")
RegisterHam(Ham_AddPlayerItem, "player", "fw_AddPlayerItem")
//RegisterHam(Ham_Use, "item_healthcharger", "fw_UseEntity")
//FM Forwards
register_forward(FM_ClientKill, "fw_ClientKill")
register_forward(FM_Voice_SetClientListening, "filter_voice");
register_forward(FM_GetGameDescription, "fw_GetGameDescription")
register_forward(FM_EmitSound , "fw_EmitSound");
//Commands
register_cvar("jb_version",VERSION,FCVAR_SERVER|FCVAR_EXTDLL|FCVAR_UNLOGGED|FCVAR_SPONLY)
register_cvar("jb_author", AUTHOR,FCVAR_SERVER|FCVAR_EXTDLL|FCVAR_UNLOGGED|FCVAR_SPONLY)
cvar_KnifeBattleHP = register_cvar("jb_lr_knife_battle_hp", "100");
cvar_Shot4ShotHP = register_cvar("jb_lr_s4s_hp", "150");
cvar_SoutBattleHP = register_cvar("jb_lr_scout_battle_hp", "250");
cvar_GrenadeBattleHP = register_cvar("jb_lr_nade_battle_hp", "250");
cvar_ShottyMadnessHP = register_cvar("jb_lr_shotty_madness_hp", "500");
cvar_TheHiddenTime = register_cvar("jb_lr_hidden_time", "60");
cvar_TheHiddenTrans = register_cvar("jb_lr_hidden_alpha", "15");
cvar_CrazyTime = register_cvar("jb_lr_crazy_time", "30");
cvar_GlowRebels = register_cvar("jb_rebel_glow", "0");
cvar_AnnounceRebels = register_cvar("jb_rebel_announce", "0");
cvar_HideRebelVictims = register_cvar("jb_rebel_hidekills", "1");
cvar_CtClasses = register_cvar("jb_guard_classes", "1");
cvar_rebelaward = register_cvar("jb_rebel_award", "4");
cvar_savestats = register_cvar("jb_stats_save", "1");
cvar_lrtrail = register_cvar("jb_lr_trail", "0");
register_concmd("jb_freeday", "cmd_freeday", _, "<terrorist> - Gives freeday", 0)
register_concmd("amx_freeday", "cmd_freeday", _, "<terrorist> - Gives freeday", 0)
register_concmd("jb_rebel", "cmd_rebel", _, "<terrorist> - Makes terrorist rebel", 0)
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
register_event("CurWeapon","event_curweapon","be","1=1");
register_event("TextMsg", "event_restart", "a", "2=#Game_Commencing")
register_event("TextMsg", "event_restart", "a", "2=#Game_will_restart_in")
register_menucmd(register_menuid("\yLast request?"), MENU_KEYS, "lr_menu");
register_menucmd(register_menuid("\ySelect Class:"), MENU_KEYS, "class_handle");
register_menucmd(register_menuid("\ySelect player to voteban:^n^n"), MENU_KEYS, "voteban_menu");
register_menucmd(register_menuid("\yBan"), MENU_KEYS, "voteban_vote");
register_menucmd(register_menuid("\ySelect guard:"), MENU_KEYS, "guard_menu");
register_menucmd(register_menuid("\yJail Break Shop:^n"), MENU_KEYS, "shop_handler");
//Last request
register_clcmd("say /lr", "cmd_lr")
register_clcmd("say !lr", "cmd_lr")
register_clcmd("say_team !lr", "cmd_lr")
register_clcmd("say_team /lr", "cmd_lr")
//JB Rules
register_clcmd("say /rules", "cmd_rules")
register_clcmd("say_team /rules", "cmd_rules")
//Voteban
register_clcmd("say /voteban", "cmd_voteban")
register_clcmd("say_team /voteban", "cmd_voteban")
//Shop
register_clcmd("say /shop", "cmd_shop")
register_clcmd("say_team /shop", "cmd_shop")
//Get some msg ids
g_msgSayText = get_user_msgid("SayText");
g_msgCurWeapon = get_user_msgid("CurWeapon");
g_msgScoreInfo = get_user_msgid("ScoreInfo");
//set_task(3.0, "task_showRebelsLeft", _, _, _, "b")
//set_task(2.0, "task_checkLr", _, _, _, "b")
g_vault = nvault_open("jailbreak_tn");
}
public plugin_end()
{
nvault_close(g_vault);
}
public client_connect(id)
{
g_PlayerData[id][PlayerIsRebel] = false;
g_PlayerData[id][PlayerHasFreeday] = false;
g_PlayerData[id][PlayerIsInLr] = false;
g_PlayerData[id][SeenWelcomeMsg] = false;
g_PlayerData[id][iFreedayCount] = 0;
g_loadedvault[id] = false;
}
public client_disconnect(id)
{
g_PlayerData[id][PlayerIsRebel] = false;
g_PlayerData[id][PlayerHasFreeday] = false;
g_PlayerData[id][PlayerIsInLr] = false;
g_PlayerData[id][SeenWelcomeMsg] = false;
g_PlayerData[id][iFreedayCount] = 0;
stats_save(id)
g_loadedvault[id] = false;
if(g_lrG_activated)
{
check_lr_deaths(id, 999);
}
}
public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type)
{
if (victim == attacker || attacker == 0)
return HAM_IGNORED;
new tAttacker = get_user_team(attacker);
new tVictim = get_user_team(victim);
/*
if(tAttacker != tVictim)
g_attackers[victim][attacker] += floatround(damage);
*/
switch(tAttacker)
{
//If prisioner attacked guard
case CS_TEAM_T :
{
//And isn't rebel yet
if(!g_PlayerData[attacker][PlayerIsRebel] && !g_PlayerData[attacker][PlayerIsInLr] && tVictim == CS_TEAM_CT)
{
//Mark it as rebel
set_rebel(attacker);
}
}
case CS_TEAM_CT :
{
if(g_PlayerData[victim][PlayerHasFreeday] && tVictim == CS_TEAM_T)
{
get_user_name(victim, g_PlayerData[victim][PlayerName], 31);
colored_print(attacker, "^x04[JailBreak]^x03 %s^01 has freeday! ", g_PlayerData[victim][PlayerName]);
}
}
}
if(!g_PlayerData[attacker][PlayerIsInLr] && g_PlayerData[victim][PlayerIsInLr])
{
//fm_set_user_health(attacker, 0);
//user_kill(attacker);
user_slap(attacker, floatround(damage))
return HAM_SUPERCEDE;
}
else if(g_PlayerData[attacker][PlayerIsInLr] && !g_PlayerData[victim][PlayerIsInLr])
{
return HAM_SUPERCEDE;
}
return HAM_IGNORED;
}
public set_rebel(id)
{
if(!is_user_alive(id) || get_user_team(id) == CS_TEAM_CT)
return;
//Mark player as rebel
g_PlayerData[id][PlayerIsRebel] = true;
//Freeday's over for him
g_PlayerData[id][PlayerHasFreeday] = false;
//Incrase rebel count
//g_rebels++;
if(get_pcvar_num(cvar_GlowRebels))
{
//Make it glow red
fm_set_rendering(id, kRenderFxGlowShell, 255, 0, 0, kRenderNormal, 16);
}
if(get_pcvar_num(cvar_AnnounceRebels))
{
//Get his name
get_user_name(id, g_PlayerData[id][PlayerName], 31)
//Show everyone that he's rebel now
colored_print(1337, "^x04[eG | Jail Break]^x03 %s^01 is now rebel!", g_PlayerData[id][PlayerName]);
}
}
public fw_PlayerSpawn(id)
{
if (!is_user_alive(id) || !get_user_team(id))
return;
//Reset stuff
g_PlayerData[id][PlayerIsRebel] = false;
g_PlayerData[id][PlayerIsInLr] = false;
g_PlayerData[id][LrCanShootDeagle] = false;
g_PlayerData[id][GivingItem] = false;
remove_task(id+TASK_TRAIL);
//Get his team
new team = get_user_team(id);
//Remove any glow
fm_set_rendering(id);
//Strip all weapons
fm_strip_user_weapons(id);
//Show welcome message
if(!g_PlayerData[id][SeenWelcomeMsg] && id != 0)
{
colored_print(id, "^04[Prsion Break]^01 Welcome to ^03[eG] Prison Break^01!");
colored_print(id, "^04[Prsion Break]^01 Visit ^03http://electronicGaming.tk^01!");
//*******************************************************
//* PLEASE DON'T REMOVE OR EDIT LINE BELOW THIS COMMENT *
//*******************************************************
colored_print(id, "");
//*******************************************************
g_PlayerData[id][SeenWelcomeMsg] = true;
}
if(!g_loadedvault[id])
{
stats_load(id);
g_loadedvault[id] = true;
}
/*
for(new i = 1; i <= 33; i++)
{
g_attackers[id][i] = 0;
}
*/
switch(team)
{
//If he's terrorist
case CS_TEAM_T:
{
/*
if(g_PlayerData[id][PlayerHasFreeday] && g_PlayerData[id][iFreedayCount] >= 1)
{
set_freeday(id);
}
*/
//If it's terrorist (prisoner) give only knife
cs_set_user_armor(id, 0, CS_ARMOR_NONE);
fm_give_item(id, "weapon_knife")
//KNIFE_MODEL[id] = random_num(1, KNIFE_MODELS);
//Incrase alive prisioner count
//g_aPrisionerCount++;
}
case CS_TEAM_CT:
{
g_PlayerData[id][ClassCT] = CT_CLASS_REGULAR;
giveWeapons(id);
if(get_pcvar_num(cvar_CtClasses) > 0)
menu_show(id, MENU_CLASSCT);
}
}
}
public colored_print(target, const message[], any:...)
{
static buffer[512]
// Format message for player
vformat(buffer, charsmax(buffer), message, 3)
if(target == 1337)
{
new iIndex
for(iIndex = 1; iIndex <=32; iIndex++)
{
new iPlayer = iIndex;
if(is_user_connected(iPlayer) && !is_user_bot(iPlayer))
{
message_begin(MSG_ONE_UNRELIABLE, g_msgSayText, _, iPlayer)
write_byte(iPlayer)
write_string(buffer)
message_end()
}
}
}
else
{
if(is_user_connected(target) && !is_user_bot(target))
{
// Send it
message_begin(MSG_ONE_UNRELIABLE, g_msgSayText, _, target)
write_byte(target)
write_string(buffer)
message_end()
}
}
}
public fw_PlayerKilled(victim, attacker, shouldgib)
{
if(g_lrG_activated)
{
check_lr_deaths(attacker, victim);
}
if(get_pcvar_num(cvar_HideRebelVictims) > 0)
{
if((attacker >= 1 && attacker <= 33) && attacker != victim && get_user_team(attacker) == CS_TEAM_T)
{
new frags;
frags = get_user_frags(attacker);
//Give then extra frag
frags += get_pcvar_num(cvar_rebelaward);
set_stats(attacker, frags);
/*
for(new i = 1; i <= 33; i++)
{
if(g_attackers[victim][i] > 0)
{
frags = get_user_frags(i);
frags += 1;
set_frags(i, frags)
}
}
*/
//Kill guard with worldspawn, so they can't see who did it.
ExecuteHamB(Ham_Killed, victim, 0, 0)
//Return and block anything else.
return HAM_SUPERCEDE;
}
}
return HAM_IGNORED;
}
public task_showRebelsLeft()
{
//Update counter
update_alive_count()
//Set hud message (red text, fades after 2 seconds
set_hudmessage(255, 0, 0, -1.0, 0.01, 0, 0.0, 3.0, 0.1, 0.1, -1)
//Show it
show_hudmessage(0,"Prisoners: %i (Rebels: %i)^nGuards: %i", g_aPrisionerCount, g_rebels, g_aGuardCount)
}
public event_round_start()
{
//Incrase day count
g_day++
set_task(1.0, "task_ShowDayCount");
//Reset rebel count at each round
g_rebels = 0;
//Reset alive prisoner and guard count
g_aGuardCount = 0;
g_aPrisionerCount = 0;
//g_lr = false;
g_lrG = LR_GAME_NONE;
g_lrG_activated = false;
}
public fw_ClientKill(id)
{
//new team = get_user_team(id);
//It can't be rebel anymore
g_PlayerData[id][PlayerIsRebel] = false;
/*
switch(team)
{
case CS_TEAM_T:
{
g_aPrisionerCount--;
}
case CS_TEAM_CT:
{
g_aGuardCount--;
}
}
*/
if(g_PlayerData[id][PlayerIsInLr])
{
check_lr_deaths(id, 999);
}
}
/*
public task_checkLr()
{
update_alive_count()
//If it isn't lr yet
if(!g_lr)
{
//If there is one prisoner left and at least 1 guard we can enable lr, yay
if(g_aPrisionerCount == 1 && g_aGuardCount >= 1)
{
//Enable last request
g_lr = true;
//Show to everyone that lr is now enabled
colored_print(1337, "^04[eG | Jail Break]^01 There is^03 1 prisoner^01 remaining,^04 Last Request is enabled^01. Type^04 !lr^01 or^04 /lr^01 to activate.");
//colored_print(1337, "^04[eG | Jail Break]^01 If last prisioner is rebel guards can kill him and he will get^04 unrestricted freeday^01.");
for(new i; i <=32; i++)
{
if(is_user_alive(i) && get_user_team(i) == CS_TEAM_T)
{
cmd_lr(i);
}
}
}
}
//Else if there are more that 1 prisoner
else if(g_aPrisionerCount > 1 && g_aGuardCount >= 1)
{
//Disable lr :(
g_lr = false;
}
}
*/
public cmd_lr(id)
{
update_alive_count();
new team = get_user_team(id);
//Only prisoners can use this command
if(team == CS_TEAM_T && is_user_alive(id))
{
//If last request is aviable
if(!g_PlayerData[id][PlayerIsInLr] && g_aPrisionerCount == 1 && g_aGuardCount >= 1)
{
menu_show(id, MENU_LR);
}
/*
//If prisoner is rebel
else if(g_lr && g_PlayerData[id][PlayerIsRebel])
{
colored_print(id, "^04[eG | Jail Break]^01 You can't use last request now, because you're rebel. Next round you will have freeday.");
//user_kill(id, 1);
g_PlayerData[id][PlayerHasFreeday] = true;
g_PlayerData[id][iFreedayCount]++;
}
*/
//If lr isn't aviable
else
{
//Too much prisoners to allow lr :(
colored_print(id, "^04[eG | Jail Break]^01 You can't use last request now.");
}
}
else
{
colored_print(id, "^04[eG | Jail Break]^01 Only last alive prisoner can have last request.");
}
}
stock menu_show(id, menu, iPage = 0)
{
switch(menu)
{
case MENU_LR:
{
new menu[250];
formatex(menu, 249, "\yLast request?^n^n\r1.\w Knife Battle^n\r2.\w Shot 4 Shot^n\r3.\w Shotty Madness^n\r4.\w Scout Battle^n\r5.\w Grenade Battle^n\r6\w. The Hidden^n\r7.\w Crazy Terrorist");
show_menu(id, MENU_KEYS, menu);
return PLUGIN_HANDLED;
}
case MENU_GUARD:
{
static i, iPlayer, szName[32];
static szMenu[512], iCurrPos; iCurrPos = 0;
static iStart, iEnd; iStart = iPage * MENU_SLOTS;
static iKeys;
get_players(g_iGuards, g_iGuardNum, "aeh", "CT");
if(iStart >= g_iGuardNum)
{
iStart = iPage = g_iBanMenuPage[id] = 0;
}
static iLen;
iLen = formatex(szMenu, charsmax(szMenu), "\ySelect guard:^n^n");
iEnd = iStart + MENU_SLOTS;
iKeys = MENU_KEY_0;
if(iEnd > g_iGuardNum)
{
iEnd = g_iGuardNum;
}
for(i = iStart ; i < iEnd ; i++)
{
iPlayer = g_iGuards[i];
//if(is_user_alive(iPlayer) && get_user_team(iPlayer) == CS_TEAM_CT)
//{
get_user_name(iPlayer, szName, charsmax(szName));
iKeys |= (1 << iCurrPos++);
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r%d\w. %s \d^n", iCurrPos, szName);
//}
}
if(iEnd != g_iGuardNum)
{
formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n\r9\w. Next ^n\r0\w.%s", iPage ? "Back" : "Exit");
iKeys |= MENU_KEY_9;
}
else
{
formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n\r0\w. %s", iPage ? "Back" : "Exit");
}
show_menu(id, iKeys, szMenu, -1);
return PLUGIN_HANDLED;
}
case MENU_CLASSCT:
{
new menu[250];
formatex(menu, 249, "\ySelect Class:^n^n\r1.\w Guard^n\r2.\w Fat Cop^n\r3.\w Sniper^n\r4.\w Russian Guard^n\r5.\w SWAT^n\r6\w. Gunner");
show_menu(id, MENU_KEYS, menu);
return PLUGIN_HANDLED;
}
case MENU_SHOP:
{
new menu[500];
static iLen;
iLen = formatex(menu, charsmax(menu), "\yJail Break Shop:^n\wYour Points:\r %i^n^n", get_user_frags(id));
for(new i= 1; i <= SHOP_ITEMS_NUM; i++)
{
//iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r%i.\w%s [\y%i points\w]^n", i, SHOP_ITEM_NAME[i], SHOP_ITEM_PRICE[i]);
}
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r0.\w Exit")
show_menu(id, MENU_KEYS, menu);
return PLUGIN_HANDLED;
}
}
return PLUGIN_CONTINUE;
}
//public lr_menu(id, menu, item)
public lr_menu(id, item)
{
/*
// Get item info
new cmd[3];
new access, callback;
menu_item_getinfo(menu, item, access, cmd,2,_,_, callback);
new game = str_to_num(cmd);
menu_destroy(menu);
*/
if(g_PlayerData[id][PlayerIsInLr] && g_aPrisionerCount != 1 && g_aGuardCount < 1 || !is_user_alive(id))
{
return PLUGIN_CONTINUE;
}
new selection = item;
selection += 1;
switch(selection)
{
//Knife Battle
case LR_GAME_KNIFE_BATTLE:
{
g_lrG = LR_GAME_KNIFE_BATTLE;
menu_show(id, MENU_GUARD);
return PLUGIN_HANDLED;
}
//Shot 4 shot
case LR_GAME_S4S:
{
g_lrG = LR_GAME_S4S;
menu_show(id, MENU_GUARD);
return PLUGIN_HANDLED;
}
case LR_GAME_SHOTTY:
{
g_lrG = LR_GAME_SHOTTY;
menu_show(id, MENU_GUARD);
return PLUGIN_HANDLED;
}
case LR_GAME_SCOUTZ:
{
g_lrG = LR_GAME_SCOUTZ;
menu_show(id, MENU_GUARD);
return PLUGIN_HANDLED;
}
case LR_GAME_GRENADE:
{
g_lrG = LR_GAME_GRENADE;
menu_show(id, MENU_GUARD);
return PLUGIN_HANDLED;
}
case LR_GAME_HIDDEN:
{
g_lrG = LR_GAME_HIDDEN;
lr_thehidden(id);
return PLUGIN_HANDLED;
}
case LR_GAME_CRAZY:
{
g_lrG = LR_GAME_CRAZY;
lr_crazy(id);
return PLUGIN_HANDLED;
}
}
return PLUGIN_CONTINUE;
}
public guard_menu(id, key)
{
if( key < 0 )
return PLUGIN_CONTINUE;
switch(key)
{
case 8:
{
menu_show(id, MENU_GUARD, ++g_iLrMenuPage[id]);
return PLUGIN_HANDLED;
}
case 9:
{
if(!g_iLrMenuPage[id])
return PLUGIN_CONTINUE;
menu_show(id, MENU_GUARD, --g_iLrMenuPage[id]);
return PLUGIN_HANDLED;
}
default:
{
static iPlayer;
iPlayer = g_iGuards[g_iLrMenuPage[id] * MENU_SLOTS + key];
get_user_name(id, g_PlayerData[id][PlayerName], 31);
get_user_name(iPlayer, g_PlayerData[iPlayer][PlayerName], 31);
if(!is_user_connected(iPlayer))
{
client_print(id, print_center, "*ERROR: NOT CONNECTED PLAYER; CALLER = %i TARGET = %i*", id, iPlayer);
menu_show(id, MENU_GUARD, g_iLrMenuPage[id]);
return PLUGIN_HANDLED;
} else if(iPlayer == id)
{
client_print(id, print_center, "*ERROR: SELECTED HIMSELF; CALLER = %i TARGET = %i*", id, iPlayer);
menu_show(id, MENU_GUARD, g_iLrMenuPage[id]);
return PLUGIN_HANDLED;
}
else
{
if(!is_user_alive(id) || !is_user_alive(iPlayer) || g_lrG == LR_GAME_NONE)
return PLUGIN_CONTINUE;
fm_set_rendering(id, kRenderFxGlowShell, 0, 255, 0, kRenderNormal, 16);
fm_strip_user_weapons(id);
g_PlayerData[id][PlayerIsInLr] = true;
fm_set_rendering(iPlayer, kRenderFxGlowShell, 0, 255, 0, kRenderNormal, 16);
fm_strip_user_weapons(iPlayer);
g_PlayerData[iPlayer][PlayerIsInLr] = true;
if(get_pcvar_num(cvar_lrtrail) >= 1)
{
//set_task(2, "set_trail", TASK_TRAIL+id, _, 0, "b");
//set_task(2, "set_trail", TASK_TRAIL+iPlayer, _, 0, "b");
}
switch(g_lrG)
{
case LR_GAME_KNIFE_BATTLE:
{
g_lrG_activated = true;
if(!is_user_alive(id) || !is_user_alive(iPlayer))
return PLUGIN_CONTINUE;
colored_print(1337, "^04[eG | Jail Break]^01 Knife Battle has started!^04 %s^01 vs ^04 %s^01", g_PlayerData[id][PlayerName], g_PlayerData[iPlayer][PlayerName]);
new health = get_pcvar_num(cvar_KnifeBattleHP);
fm_set_user_health(id, health);
fm_set_user_health(iPlayer, health);
g_PlayerData[id][GivingItem] = true;
g_PlayerData[iPlayer][GivingItem] = true;
fm_give_item(id, "weapon_knife");
fm_give_item(iPlayer, "weapon_knife");
g_PlayerData[id][GivingItem] = false;
g_PlayerData[iPlayer][GivingItem] = false;
return PLUGIN_HANDLED;
}
case LR_GAME_S4S:
{
g_lrG_activated = true;
if(!is_user_alive(id) || !is_user_alive(iPlayer))
return PLUGIN_CONTINUE;
colored_print(1337, "^04[eG | Jail Break]^01 Shot 4 Shot has started!^04 %s^01 vs ^04 %s^01", g_PlayerData[id][PlayerName], g_PlayerData[iPlayer][PlayerName]);
new health = get_pcvar_num(cvar_Shot4ShotHP);
fm_set_user_health(id, health);
fm_set_user_health(iPlayer, health);
g_PlayerData[id][LrCanShootDeagle] = true;
g_PlayerData[iPlayer][LrCanShootDeagle] = false;
g_PlayerData[id][GivingItem] = true;
fm_give_item(id, "weapon_deagle");
g_PlayerData[id][GivingItem] = false;
return PLUGIN_HANDLED;
}
case LR_GAME_SHOTTY:
{
g_lrG_activated = true;
//Both of them should be alive
if(!is_user_alive(id) || !is_user_alive(iPlayer))
return PLUGIN_CONTINUE;
colored_print(1337, "^04[eG | Jail Break]^01 Shotty Madness has started!^04 %s^01 vs ^04 %s^01", g_PlayerData[id][PlayerName], g_PlayerData[iPlayer][PlayerName]);
fm_set_user_health(id, get_pcvar_num(cvar_ShottyMadnessHP));
fm_set_user_health(iPlayer, get_pcvar_num(cvar_ShottyMadnessHP));
g_PlayerData[id][GivingItem] = true;
g_PlayerData[iPlayer][GivingItem] = true;
fm_give_item(id, "weapon_m3");
fm_give_item(iPlayer, "weapon_m3");
g_PlayerData[id][GivingItem] = false;
g_PlayerData[iPlayer][GivingItem] = false;
return PLUGIN_HANDLED;
}
case LR_GAME_SCOUTZ:
{
g_lrG_activated = true;
//Both of them should be alive
if(!is_user_alive(id) || !is_user_alive(iPlayer))
return PLUGIN_CONTINUE;
colored_print(1337, "^04[eG | Jail Break]^01 Scout Battle has started!^04 %s^01 vs ^04 %s^01", g_PlayerData[id][PlayerName], g_PlayerData[iPlayer][PlayerName]);
//fm_set_rendering(id, kRenderFxGlowShell, 0, 255, 0, kRenderNormal, 16);
//fm_set_rendering(enemy, kRenderFxGlowShell, 0, 255, 0, kRenderNormal, 16);
new health = get_pcvar_num(cvar_SoutBattleHP);
fm_set_user_health(id, health);
fm_set_user_health(iPlayer, health);
g_PlayerData[id][GivingItem] = true;
g_PlayerData[iPlayer][GivingItem] = true;
fm_give_item(id, "weapon_scout");
fm_give_item(iPlayer, "weapon_scout");
g_PlayerData[id][GivingItem] = false;
g_PlayerData[iPlayer][GivingItem] = false;
return PLUGIN_HANDLED;
}
case LR_GAME_GRENADE:
{
g_lrG_activated = true;
//Both of them should be alive
if(!is_user_alive(id) || !is_user_alive(iPlayer))
return PLUGIN_CONTINUE;
colored_print(1337, "^04[eG | Jail Break]^01 Grenade Battle has started!^04 %s^01 vs ^04 %s^01", g_PlayerData[id][PlayerName], g_PlayerData[iPlayer][PlayerName]);
new health = get_pcvar_num(cvar_GrenadeBattleHP);
fm_set_user_health(id, health);
fm_set_user_health(iPlayer, health);
g_PlayerData[id][GivingItem] = true;
g_PlayerData[iPlayer][GivingItem] = true;
fm_give_item(id, "weapon_hegrenade");
fm_give_item(iPlayer, "weapon_hegrenade");
g_PlayerData[id][GivingItem] = false;
g_PlayerData[iPlayer][GivingItem] = false;
set_task(1.0, "task_nadeBattleGiveHE")
return PLUGIN_HANDLED;
}
}
}
}
}
return PLUGIN_CONTINUE;
}
public filter_voice(receiver, sender, bool:listen)
{
if( !(1 <= receiver <= 32)
|| !is_user_connected(receiver)
|| !(1 <= sender <= 32)
|| !is_user_connected(sender) ) return FMRES_IGNORED;
new team = get_user_team(sender);
if( (team == CS_TEAM_T || team == CS_TEAM_CT && !is_user_alive(sender)) && !access(sender, ADMIN_MENU) ) {
engfunc(EngFunc_SetClientListening, receiver, sender, 0);
return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}
stock fm_strip_user_weapons(id)
{
static ent
ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "player_weaponstrip"))
if (!pev_valid(ent))
return;
dllfunc(DLLFunc_Spawn, ent)
dllfunc(DLLFunc_Use, ent, id)
engfunc(EngFunc_RemoveEntity, ent)
//Next round user can get gun again, yay [bugfix]
set_pdata_int(id, 116, 0)
}
stock fm_give_item(id, const item[])
{
static ent
ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, item))
if (!pev_valid(ent))
return PLUGIN_CONTINUE;
static Float:originF[3]
pev(id, pev_origin, originF)
set_pev(ent, pev_origin, originF)
set_pev(ent, pev_spawnflags, pev(ent, pev_spawnflags) | SF_NORESPAWN)
dllfunc(DLLFunc_Spawn, ent)
static save
save = pev(ent, pev_solid)
dllfunc(DLLFunc_Touch, ent, id);
if (pev(ent, pev_solid) != save)
return PLUGIN_CONTINUE;
engfunc(EngFunc_RemoveEntity, ent);
return PLUGIN_HANDLED;
}
// Set entity's rendering type (from fakemeta_util)
stock fm_set_rendering(entity, fx = kRenderFxNone, r = 255, g = 255, b = 255, render = kRenderNormal, amount = 16)
{
static Float:color[3]
color[0] = float(r)
color[1] = float(g)
color[2] = float(b)
set_pev(entity, pev_renderfx, fx)
set_pev(entity, pev_rendercolor, color)
set_pev(entity, pev_rendermode, render)
set_pev(entity, pev_renderamt, float(amount))
return PLUGIN_HANDLED;
}
// Set player's health (from fakemeta_util)
stock fm_set_user_health(id, health)
{
(health > 0) ? set_pev(id, pev_health, float(health)) : dllfunc(DLLFunc_ClientKill, id);
return PLUGIN_HANDLED;
}
public task_ShowDayCount()
{
//White, centered, 5 seconds
set_hudmessage(255, 255, 255, -1.0, -1.0, 0, 0.1, 5.0, 0.1, 0.1, -1)
//Show it
show_hudmessage(0,"Day %i", g_day);
return PLUGIN_HANDLED;
}
public lr_thehidden(id)
{
//He should be alive.
if(!is_user_alive(id))
return PLUGIN_CONTINUE;
if(get_alive_guards() < 3)
{
colored_print(id, "^04[eG | Jail Break]^01 You can't use this option, because there must be at least 3 alive guards.");
return PLUGIN_CONTINUE;
}
get_user_name(id, g_PlayerData[id][PlayerName], 31);
colored_print(1337, "^04[eG | Jail Break]^03 %s^01 is^04 The Hidden^01, cath him before time runs out!", g_PlayerData[id][PlayerName]);
fm_set_rendering(id, kRenderFxNone, 16, 16, 16, kRenderTransAlpha, get_pcvar_num(cvar_TheHiddenTrans));
g_lrG_activated = true;
g_iHiddenTimeleft = get_pcvar_num(cvar_TheHiddenTime);
//Strip everyone
for(new i; i <= 33; i++)
{
if(is_user_alive(i))
{
g_PlayerData[i][PlayerIsInLr] = true;
fm_strip_user_weapons(i);
g_PlayerData[i][GivingItem] = true;
fm_give_item(i, "weapon_knife");
g_PlayerData[i][GivingItem] = false;
fm_set_user_health(i, 100);
}
}
set_task(1.0, "task_thehidden_timer");
return PLUGIN_HANDLED;
}
stock check_lr_deaths(id, enemy = 0)
{
if(g_lrG_activated)
{
if(is_user_alive(id) && !is_user_alive(enemy) && g_lrG != LR_GAME_HIDDEN && g_lrG != LR_GAME_CRAZY)
{
colored_print(1337, "^04[eG | Jail Break]^03 %s^01 has won!", g_PlayerData[id][PlayerName]);
g_lrG = LR_GAME_NONE;
g_lrG_activated = false;
g_PlayerData[id][PlayerIsInLr] = false;
fm_set_rendering(id);
giveWeapons(id)
remove_task(id+TASK_TRAIL)
remove_task(enemy+TASK_TRAIL)
//giveWeapons(enemy)
//gPlayerXP[id] += 10;
return PLUGIN_HANDLED;
}
else if(is_user_alive(enemy) && !is_user_alive(id) && g_lrG != LR_GAME_HIDDEN && g_lrG != LR_GAME_CRAZY)
{
colored_print(1337, "^04[eG | Jail Break]^03 %s^01 has won!", g_PlayerData[enemy][PlayerName]);
g_lrG = LR_GAME_NONE;
g_lrG_activated = false;
fm_set_rendering(enemy);
g_PlayerData[enemy][PlayerIsInLr] = false;
giveWeapons(enemy)
remove_task(id+TASK_TRAIL)
remove_task(enemy+TASK_TRAIL)
//gPlayerXP[enemy] += 10;
return PLUGIN_HANDLED;
}
else if(is_user_alive(id) && g_lrG == LR_GAME_HIDDEN)
{
new CtCount = get_alive_guards();
new TCount = get_alive_prisoners();
if(CtCount <= 0 && TCount >= 1)
{
colored_print(1337, "^04[eG | Jail Break]^01 Guards failed to catch^04 The Hidden^01!");
g_PlayerData[id][PlayerIsInLr] = false
g_lrG = LR_GAME_NONE;
g_lrG_activated = false;
return PLUGIN_HANDLED;
}
else if(TCount <= 0 && CtCount >= 1)
{
colored_print(1337, "^04[eG | Jail Break]^01 Guards have catched^04 The Hidden^01!");
g_PlayerData[id][PlayerIsInLr] = false
g_lrG = LR_GAME_NONE;
g_lrG_activated = false;
return PLUGIN_HANDLED;
}
}
else if(is_user_alive(id) && g_lrG == LR_GAME_CRAZY)
{
new CtCount = get_alive_guards();
new TCount = get_alive_prisoners();
if(CtCount <= 0 && TCount >= 1)
{
colored_print(1337, "^04[eG | Jail Break]^01 Guards failed to catch^04 CRAZY TERRORIST^01!");
g_PlayerData[id][PlayerIsInLr] = false
g_lrG = LR_GAME_NONE;
g_lrG_activated = false;
return PLUGIN_HANDLED;
}
else if(TCount <= 0 && CtCount >= 1)
{
colored_print(1337, "^04[eG | Jail Break]^01 Guards have catched^04 CRAZY TERRORIST^01!");
g_PlayerData[id][PlayerIsInLr] = false
g_lrG = LR_GAME_NONE;
g_lrG_activated = false;
return PLUGIN_HANDLED;
}
}
else if(id == enemy && g_PlayerData[id][PlayerIsInLr])
{
colored_print(1337, "^04[eG | Jail Break]^03 %s^01 died!", g_PlayerData[enemy][PlayerName]);
g_lrG = LR_GAME_NONE;
g_lrG_activated = false;
g_PlayerData[id][PlayerIsInLr] = false;
return PLUGIN_HANDLED;
}
}
return PLUGIN_CONTINUE;
}
public event_curweapon(id)
{
new weapon, ammo;
weapon = read_data(2);
ammo = read_data(3)
if(weapon != CSW_KNIFE && weapon != CSW_HEGRENADE && weapon != CSW_FLASHBANG && weapon != CSW_SMOKEGRENADE && weapon != CSW_C4)
{
if(ammo < MAXBPAMMO[weapon])
{
static args[1]
args[0] = weapon
set_task(0.1, "task_setammo", id+TASK_SETAMMO, args, sizeof args)
}
}
switch(weapon)
{
case CSW_DEAGLE:
{
if(read_data(3) > 1 && g_lrG == LR_GAME_S4S && g_PlayerData[id][PlayerIsInLr])
{
new wEnt = get_weapon_ent(id, CSW_DEAGLE);
if(pev_valid(wEnt))
cs_set_weapon_ammo(wEnt, 1);
message_begin(MSG_ONE,g_msgCurWeapon,_,id);
write_byte(1); // current?
write_byte(CSW_DEAGLE); // weapon
write_byte(1); // clip
message_end();
return PLUGIN_HANDLED;
}
}
case CSW_KNIFE:
{
new team = get_user_team(id);
switch(team)
{
case CS_TEAM_T:
{
set_pev(id, pev_viewmodel2, model_knife_t)
set_pev(id, pev_weaponmodel2, "")
}
}
}
}
return PLUGIN_CONTINUE;
}
public fw_TouchWeapon(weapon, id)
{
if (!is_user_alive(id))
return HAM_IGNORED;
if (g_PlayerData[id][PlayerIsInLr])
return HAM_SUPERCEDE;
return HAM_IGNORED;
}
public fw_AddPlayerItem(id, weapon_ent)
{
//Player must be alive
if (!is_user_alive(id))
return HAM_IGNORED;
//If player is in lr and nothing from game gives weapon
if (g_PlayerData[id][PlayerIsInLr] && !g_PlayerData[id][GivingItem])
{
//Block it
return HAM_SUPERCEDE;
}
//else if player's in lr and lr gives something
else if(g_PlayerData[id][PlayerIsInLr] && g_PlayerData[id][GivingItem])
{
//Cintinue
return HAM_IGNORED;
}
return HAM_IGNORED;
}
stock get_weapon_ent(id,wpnid=0,wpnName[]="")
{
// who knows what wpnName will be
static newName[24];
// need to find the name
if(wpnid) get_weaponname(wpnid,newName,23);
// go with what we were told
else formatex(newName,23,"%s",wpnName);
// prefix it if we need to
if(!equal(newName,"weapon_",7))
format(newName,23,"weapon_%s",newName);
return fm_find_ent_by_owner(32,newName,id);
}
stock fm_find_ent_by_owner(entity, const classname[], owner)
{
while ((entity = engfunc(EngFunc_FindEntityByString, entity, "classname", classname)) && pev(entity, pev_owner) != owner) { /* keep looping */ }
return entity;
}
public fw_primary_attack(ent)
{
if(!g_lrG_activated && g_lrG != LR_GAME_S4S)
return HAM_IGNORED;
//Get owner of entity
new id = pev(ent,pev_owner)
//if he's not alive
if(!is_user_alive(id))
return HAM_IGNORED;
//If player is in lr and can shoot deagle
if(g_PlayerData[id][PlayerIsInLr] && g_PlayerData[id][LrCanShootDeagle])
{
//Search enemy
for(new iIndex = 1; iIndex <= 32; iIndex++)
{
//if he's in lr and can't shoot deagle and is alive
if(g_PlayerData[iIndex][PlayerIsInLr] && !g_PlayerData[iIndex][LrCanShootDeagle] && is_user_alive(iIndex))
{
//Strip his weapons
fm_strip_user_weapons(id);
//Give deagle to enemy
g_PlayerData[iIndex][GivingItem] = true;
fm_give_item(iIndex, "weapon_deagle");
g_PlayerData[iIndex][GivingItem] = false;
//enemy can shoot
g_PlayerData[iIndex][LrCanShootDeagle] = true;
}
}
//Player can't shoot anymore
g_PlayerData[id][LrCanShootDeagle] = false
return HAM_HANDLED;
}
return HAM_IGNORED
}
public task_thehidden_timer()
{
if(g_lrG_activated && g_lrG == LR_GAME_HIDDEN)
{
g_iHiddenTimeleft--
if(g_iHiddenTimeleft <= 0)
{
colored_print(1337, "^04[eG | Jail Break]^01 Guards failed to catch^04 The Hidden^01!");
g_lrG = LR_GAME_NONE;
g_lrG_activated = false;
for(new i; i <= 33; i++)
{
if(is_user_alive(i) && get_user_team(i) == CS_TEAM_CT)
{
user_kill(i);
}
}
return PLUGIN_HANDLED;
}
//White, centered, 1 seconds
set_hudmessage(255, 255, 255, -1.0, -1.0, 0, 0.1, 1.0, 0.1, 0.1, -1)
//Show it
show_hudmessage(0,"%i", g_iHiddenTimeleft);
set_task(1.0, "task_thehidden_timer");
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}
public task_nadeBattleGiveHE()
{
if(g_lrG_activated && g_lrG == LR_GAME_GRENADE)
{
for(new i; i <= 33; i++)
{
if(is_user_alive(i) && g_PlayerData[i][PlayerIsInLr])
{
g_PlayerData[i][GivingItem] = true;
fm_give_item(i, "weapon_hegrenade")
g_PlayerData[i][GivingItem] = false;
}
}
set_task(1.0, "task_nadeBattleGiveHE");
}
}
public fw_GetGameDescription()
{
forward_return(FMV_STRING, "[eG] Jail Break")
return FMRES_SUPERCEDE;
}
public cmd_freeday(id, level, cid)
{
if (!cmd_access(id, ADMIN_BAN, cid, 2))
return PLUGIN_HANDLED;
// Retrieve arguments
static arg[32], player
read_argv(1, arg, charsmax(arg))
player = cmd_target(id, arg, (CMDTARGET_ONLY_ALIVE | CMDTARGET_ALLOW_SELF))
// Invalid target
if (!player) return PLUGIN_HANDLED;
g_PlayerData[id][iFreedayCount]++
set_freeday(player)
return PLUGIN_HANDLED;
}
public cmd_rebel(id, level, cid)
{
if (!cmd_access(id, ADMIN_BAN, cid, 2))
return PLUGIN_HANDLED;
// Retrieve arguments
static arg[32], player
read_argv(1, arg, charsmax(arg))
player = cmd_target(id, arg, (CMDTARGET_ONLY_ALIVE | CMDTARGET_ALLOW_SELF))
// Invalid target
if (!player) return PLUGIN_HANDLED;
set_rebel(player);
return PLUGIN_HANDLED;
}
public set_freeday(id)
{
if(!is_user_alive(id) || get_user_team(id) == CS_TEAM_CT)
return;
get_user_name(id, g_PlayerData[id][PlayerName], 31);
colored_print(1337, "^04[eG | Jail Break]^03 %s now has freeday!", g_PlayerData[id][PlayerName]);
g_PlayerData[id][PlayerHasFreeday] = true;
g_PlayerData[id][iFreedayCount]--;
fm_set_rendering(id, kRenderFxGlowShell, 255, 255, 255, kRenderNormal, 16);
}
stock update_alive_count()
{
g_aPrisionerCount = 0;
g_aGuardCount = 0;
for(new i = 1; i <= 33; i++)
{
new id = i;
if(is_user_alive(id) && get_user_team(id) == CS_TEAM_CT)
{
g_aGuardCount++;
}
else if(is_user_alive(id) && get_user_team(id) == CS_TEAM_T)
{
g_aPrisionerCount++;
}
}
}
stock get_alive_prisoners()
{
new count = 0;
for(new i = 1; i <= 33; i++)
{
new id = i;
if(is_user_alive(id) && get_user_team(id) == CS_TEAM_T)
{
count++;
}
}
return count;
}
stock get_alive_guards()
{
new count = 0;
for(new i = 1; i <= 33; i++)
{
new id = i;
if(is_user_alive(id) && get_user_team(id) == CS_TEAM_CT)
{
count++;
}
}
return count;
}
stock get_last_prisoner()
{
new prisoner;
if(!(get_alive_prisoners() == 1))
return;
for(new i = 1; i <= 32; i++)
{
static id = i;
if(is_user_alive(id) && get_user_team(id) == CS_TEAM_T)
{
prisoner = id;
}
}
return prisoner;
}
public set_trail(task)
{
if(g_lrG_activated && g_lrG != LR_GAME_NONE)
{
new rgbT[3] = { 255, 0, 0 }
new rgbCT[3] = { 0, 0, 255 }
new id = task - TASK_TRAIL;
if(g_PlayerData[id][PlayerIsInLr] && is_user_alive(id))
{
new team = get_user_team(id);
switch(team)
{
case CS_TEAM_CT:
{
create_trail(id, 1, 10, rgbCT)
}
case CS_TEAM_T:
{
create_trail(id, 1, 10, rgbT)
}
}
}
}
}
public create_trail(id, life, width, rgb[3])
{
// And a colored trail
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_BEAMFOLLOW) // TE id
write_short(id) // entity
write_short(gBeam) // sprite
//write_byte(life * 10) // life
write_byte(life * 10) // life
write_byte(width) // width
write_byte(rgb[0]) // r
write_byte(rgb[1]) // g
write_byte(rgb[2]) // b
write_byte(200) // brightness
message_end()
}
public class_handle(id, item)
{
if( item < 0)
return PLUGIN_CONTINUE;
//new selection = item;
//selection += 1;
switch(item)
{
case CT_CLASS_REGULAR:
{
g_PlayerData[id][ClassCT] = CT_CLASS_REGULAR;
}
case CT_CLASS_FAT:
{
g_PlayerData[id][ClassCT] = CT_CLASS_FAT;
}
case CT_CLASS_SNIPER:
{
g_PlayerData[id][ClassCT] = CT_CLASS_SNIPER;
}
case CT_CLASS_RUSSIAN:
{
g_PlayerData[id][ClassCT] = CT_CLASS_RUSSIAN;
}
case CT_CLASS_SWAT:
{
g_PlayerData[id][ClassCT] = CT_CLASS_SWAT;
}
case CT_CLASS_GUNNER:
{
g_PlayerData[id][ClassCT] = CT_CLASS_GUNNER;
}
}
giveWeapons(id);
return PLUGIN_HANDLED;
}
public giveWeapons(id)
{
if(g_PlayerData[id][PlayerIsInLr] || !is_user_alive(id))
return;
if(is_user_alive(id) && get_user_team(id) == CS_TEAM_T)
{
fm_strip_user_weapons(id);
fm_give_item(id,"weapon_knife");
fm_set_user_health(id, 100)
}
else if(is_user_alive(id) && get_user_team(id) == CS_TEAM_CT)
{
fm_strip_user_weapons(id);
switch(g_PlayerData[id][ClassCT])
{
case CT_CLASS_REGULAR:
{
fm_give_item(id,"weapon_m4a1");
//cs_set_user_bpammo(id, CSW_M4A1, 200)
fm_give_item(id,"weapon_deagle");
//cs_set_user_bpammo(id, CSW_USP, 200)
//fm_give_item(id, "weapon_flashbang");
//cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
fm_give_item(id, "weapon_hegrenade");
fm_give_item(id, "weapon_knife");
fm_set_user_health(id, 100)
}
case CT_CLASS_FAT:
{
fm_give_item(id,"weapon_m3");
//cs_set_user_bpammo(id, CSW_M3, 200)
fm_give_item(id,"weapon_deagle");
//cs_set_user_bpammo(id, CSW_USP, 200)
//fm_give_item(id, "weapon_flashbang");
//cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
fm_give_item(id, "weapon_hegrenade");
fm_give_item(id, "weapon_knife");
fm_set_user_health(id, 200)
}
case CT_CLASS_SNIPER:
{
fm_give_item(id,"weapon_awp");
//cs_set_user_bpammo(id, CSW_AWP, 200)
fm_give_item(id,"weapon_deagle");
//cs_set_user_bpammo(id, CSW_DEAGLE, 200)
//fm_give_item(id, "weapon_flashbang");
//cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
fm_give_item(id, "weapon_hegrenade");
fm_give_item(id, "weapon_knife");
fm_set_user_health(id, 150)
}
case CT_CLASS_RUSSIAN:
{
fm_give_item(id,"weapon_ak47");
//cs_set_user_bpammo(id, CSW_AK47, 200)
fm_give_item(id,"weapon_deagle");
//cs_set_user_bpammo(id, CSW_GLOCK18, 200)
//fm_give_item(id, "weapon_flashbang");
//cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
fm_give_item(id, "weapon_hegrenade");
fm_give_item(id, "weapon_knife");
fm_set_user_health(id, 100)
}
case CT_CLASS_SWAT:
{
fm_give_item(id,"weapon_mp5navy");
//cs_set_user_bpammo(id, CSW_MP5NAVY, 200)
fm_give_item(id,"weapon_deagle");
//cs_set_user_bpammo(id, CSW_USP, 200)
//fm_give_item(id, "weapon_flashbang");
//cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
fm_give_item(id, "weapon_hegrenade");
fm_give_item(id, "weapon_knife");
fm_set_user_health(id, 150)
}
case CT_CLASS_GUNNER:
{
fm_give_item(id,"weapon_m249");
//cs_set_user_bpammo(id, CSW_M249, 200)
fm_give_item(id,"weapon_deagle");
//cs_set_user_bpammo(id, CSW_ELITE, 200)
//fm_give_item(id, "weapon_flashbang");
//cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
fm_give_item(id, "weapon_hegrenade");
fm_give_item(id, "weapon_knife");
fm_set_user_health(id, 50)
}
}
}
}
public lr_crazy(id)
{
//He should be alive.
if(!is_user_alive(id))
return PLUGIN_CONTINUE;
if(get_alive_guards() < 4)
{
colored_print(id, "^04[eG | Jail Break]^01 You can't use this option, because there must be at least 4 alive guards.");
return PLUGIN_CONTINUE;
}
get_user_name(id, g_PlayerData[id][PlayerName], 31);
colored_print(1337, "^04[eG | Jail Break]^03 %s^01 is^04 CRAZY TERRORIST^01, kill him before time runs out!", g_PlayerData[id][PlayerName]);
fm_set_rendering(id, kRenderFxNone, 255, 0, 0);
g_lrG_activated = true;
g_iCrazyTimeleft = get_pcvar_num(cvar_CrazyTime);
//Strip everyone
for(new i; i <= 32; i++)
{
if(is_user_alive(i) && get_user_team(i) == CS_TEAM_CT)
{
g_PlayerData[i][PlayerIsInLr] = true;
fm_strip_user_weapons(i);
g_PlayerData[i][GivingItem] = true;
fm_give_item(i, "weapon_knife");
fm_give_item(i, "weapon_flashbang");
cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
g_PlayerData[i][GivingItem] = false;
fm_set_user_health(i, 200);
}
}
g_PlayerData[id][PlayerIsInLr] = true;
fm_strip_user_weapons(id);
g_PlayerData[id][GivingItem] = true;
fm_give_item(id,"weapon_elite");
cs_set_user_bpammo(id, CSW_ELITE, 200)
g_PlayerData[id][GivingItem] = false;
fm_set_user_health(id, 1);
set_task(1.0, "task_crazy_timer");
return PLUGIN_HANDLED;
}
public task_crazy_timer()
{
if(g_lrG_activated && g_lrG == LR_GAME_CRAZY)
{
g_iCrazyTimeleft--
if(g_iCrazyTimeleft <= 0)
{
colored_print(1337, "^04[eG | Jail Break]^01 Guards failed to kill^04 CRAZY TERRORIST^01!");
g_lrG = LR_GAME_NONE;
g_lrG_activated = false;
for(new i; i <= 32; i++)
{
if(is_user_alive(i) && get_user_team(i) == CS_TEAM_CT)
{
user_kill(i);
}
}
return PLUGIN_HANDLED;
}
//White, centered, 1 seconds
set_hudmessage(255, 255, 255, -1.0, -1.0, 0, 0.1, 1.0, 0.1, 0.1, -1)
//Show it
show_hudmessage(0,"%i", g_iCrazyTimeleft);
set_task(1.0, "task_crazy_timer");
}
return PLUGIN_HANDLED;
}
public cmd_rules(id)
{
show_motd(id, "motd.txt","[eG] JailBreak Rules");
return PLUGIN_HANDLED;
}
public cmd_voteban(id)
{
if(g_voteban_running)
{
colored_print(1337, "^04[eG | Jail Break]^01 Another voteban is already running!");
return PLUGIN_CONTINUE;
}
show_voteban_menu(id, g_iBanMenuPage[id] = 0);
return PLUGIN_HANDLED;
/*
new votebanMenu = menu_create("Select player to voteban", "voteban_menu");
new pId[2];
new players = 0;
for(new iIndex = 1; iIndex <= 33; iIndex++)
{
if(is_user_connected(iIndex) && !is_user_bot(iIndex) && id != iIndex)
{
num_to_str(iIndex, pId, 2);
get_user_name(iIndex, g_PlayerData[iIndex][PlayerName], 31);
menu_additem(votebanMenu, g_PlayerData[iIndex][PlayerName], pId);
players++;
}
}
if(players >= 1)
{
//Display menu
menu_display(id, votebanMenu);
}
else
{
colored_print(1337, "^04[eG | Jail Break]^01 There are no players to vote for!");
}
*/
}
public show_voteban_menu(id, iPage)
{
static i, iPlayer, szName[32];
static szMenu[512], iCurrPos; iCurrPos = 0;
static iStart, iEnd; iStart = iPage * MENU_SLOTS;
static iKeys;
get_players(g_iPlayers, g_iNum, "h");
if(iStart >= g_iNum)
{
iStart = iPage = g_iBanMenuPage[id] = 0;
}
static iLen;
iLen = formatex(szMenu, charsmax(szMenu), "\ySelect player to voteban:^n^n");
iEnd = iStart + MENU_SLOTS;
iKeys = MENU_KEY_0;
if(iEnd > g_iNum)
{
iEnd = g_iNum;
}
for(i = iStart ; i < iEnd ; i++)
{
iPlayer = g_iPlayers[i];
get_user_name(iPlayer, szName, charsmax(szName));
iKeys |= (1 << iCurrPos++);
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r%d\w. %s \d^n", iCurrPos, szName);
}
if(iEnd != g_iNum)
{
formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n\r9\w. Next ^n\r0\w.%s", iPage ? "Back" : "Exit");
iKeys |= MENU_KEY_9;
}
else
{
formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n\r0\w. %s", iPage ? "Back" : "Exit");
}
show_menu(id, iKeys, szMenu, -1, "");
return PLUGIN_HANDLED;
}
//
// VOTEBAN
//
public voteban_menu(id, key)
{
if( key < 0 )
return PLUGIN_CONTINUE;
switch(key)
{
case 8:
{
show_voteban_menu(id, ++g_iBanMenuPage[id]);
}
case 9:
{
if(!g_iBanMenuPage[id])
return PLUGIN_HANDLED;
show_voteban_menu(id, --g_iBanMenuPage[id]);
}
default: {
static iPlayer;
iPlayer = g_iPlayers[g_iBanMenuPage[id] * MENU_SLOTS + key];
g_voteban_votes[0] = 0;
g_voteban_votes[1] = 0;
g_voteban_votes[2] = 0;
g_voteban_caller = id;
g_voteban_target = iPlayer;
get_user_name(id, g_PlayerData[id][PlayerName], 31);
get_user_name(iPlayer, g_PlayerData[iPlayer][PlayerName], 31);
if(!is_user_connected(iPlayer))
{
show_voteban_menu(id, g_iBanMenuPage[id]);
return PLUGIN_HANDLED;
}
if(iPlayer == id)
{
client_print(id, print_center, "*You cannot voteban yourself!*");
show_voteban_menu(id, g_iBanMenuPage[id]);
return PLUGIN_HANDLED;
}
//Log little chat message
colored_print(1337, "^04[eG | Jail Break]^01 Voteban started by ^03%s ^01for ^03%s^01.", g_PlayerData[id][PlayerName], g_PlayerData[iPlayer][PlayerName]);
new menu[250];
formatex(menu, 249, "\yBan %s for 60 minutes ?^n^n\r1.\w Yes^n\r2.\w No^n\r3.\w DURRRRRR", g_PlayerData[iPlayer][PlayerName]);
show_menu(0, MENU_KEYS, menu);
g_voteban_running = true;
//Take action after 15 seconds
set_task(15.0, "voteban_action");
}
}
return PLUGIN_HANDLED;
}
public voteban_vote(id, item)
{
if(!g_voteban_running)
{
return PLUGIN_CONTINUE;
}
get_user_name(id, g_PlayerData[id][PlayerName], 31);
switch(item)
{
case 0:
{
colored_print(1337, "^04[eG | Jail Break] ^03%s^01 voted ^04for^01!", g_PlayerData[id][PlayerName]);
g_voteban_votes[0]++;
return PLUGIN_HANDLED;
}
case 1:
{
colored_print(1337, "^04[eG | Jail Break] ^03%s^01 voted ^04against^01!", g_PlayerData[id][PlayerName]);
g_voteban_votes[1]++;
return PLUGIN_HANDLED;
}
case 2:
{
colored_print(1337, "^04[eG | Jail Break] ^03%s^01 is ^03retarded :(", g_PlayerData[id][PlayerName]);
g_voteban_votes[2]++;
return PLUGIN_HANDLED;
}
}
return PLUGIN_CONTINUE;
}
public voteban_action()
{
new totalvotes = g_voteban_votes[0] + g_voteban_votes[1] + g_voteban_votes[2];
new Float:result = (float(g_voteban_votes[0]) / float(totalvotes));
get_user_name(g_voteban_caller, g_PlayerData[g_voteban_caller][PlayerName], 31);
get_user_name(g_voteban_target, g_PlayerData[g_voteban_target][PlayerName], 31);
if(totalvotes > 2)
{
if( result < 0.50 )
{
colored_print(1337,"^04[eG | Jail Break]^01 The vote back-fired at ^03%s,^01 he is banned for^04 10^01 minutes.", g_PlayerData[g_voteban_caller][PlayerName])
colored_print(1337, "^04[eG | Jail Break]^01 For:^04 %i^01 Against:^04 %i^01 Retarded:^04 %i^01", g_voteban_votes[0], g_voteban_votes[1], g_voteban_votes[2]);
new steamid[35];
get_user_authid(g_voteban_caller, steamid, 34);
new cmd[250];
formatex(cmd, 250, "amx_ban ^"%s^" 10 ^"Voteban by %s^"", steamid, g_PlayerData[g_voteban_caller][PlayerName]);
server_cmd(cmd);
}
else if( result >= 0.50 )
{
colored_print(1337, "^04[eG | Jail Break]^01 The vote succeeded, ^03%s^01 is banned for^04 30^01 minutes.", g_PlayerData[g_voteban_target][PlayerName])
colored_print(1337, "^04[eG | Jail Break]^01 For:^04 %i^01 Against:^04 %i^01 Retarded:^04 %i^01", g_voteban_votes[0], g_voteban_votes[1], g_voteban_votes[2]);
new steamid[35];
get_user_authid(g_voteban_target, steamid, 34);
new cmd[250];
formatex(cmd, 250, "amx_ban ^"%s^" 30 ^"Voteban by %s^"", steamid, g_PlayerData[g_voteban_caller][PlayerName]);
server_cmd(cmd);
}
else
{
colored_print(1337, "^04[eG | Jail Break]^01 The vote failed.")
}
} else
{
colored_print(1337, "^04[eG | Jail Break]^01 The vote failed.")
}
g_voteban_running = false;
g_voteban_caller = 0;
g_voteban_target = 0;
g_voteban_votes[0] = 0;
g_voteban_votes[1] = 0;
g_voteban_votes[2] = 0;
return;
}
public fw_EmitSound(id, channel, const sound[])
{
if(pev_valid(id) && is_user_alive(id))
{
if(get_user_team(id) == CS_TEAM_T)
{
/*
if(KNIFE_MODEL[id] == 2)
return FMRES_IGNORED;
*/
for(new i = 0; i < 9; i++)
{
if(equal(sound , knife_sounds_original[i]))
{
emit_sound(id, channel, knife_sounds_new[i], 1.0, ATTN_NORM, 0, PITCH_NORM);
return FMRES_SUPERCEDE;
}
}
}
}
return FMRES_IGNORED;
}
stock set_stats(id, frags, newdeaths = -1)
{
if(!is_user_connected(id))
return PLUGIN_CONTINUE;
new deaths
if(newdeaths < 0)
{
deaths = get_user_deaths(id);
}
else
{
deaths = newdeaths;
}
//Set new frags
set_user_frags(id, frags)
cs_set_user_deaths(id, deaths);
new team = get_user_team(id);
//new deaths = get_user_deaths(id);
//Update score instantly
message_begin(MSG_ALL, g_msgScoreInfo)
write_byte(id)
write_short(frags)
write_short(deaths)
write_short(0)
write_short(team)
message_end()
return PLUGIN_HANDLED;
}
public task_setammo(const args[], task)
{
new id = task - TASK_SETAMMO;
if(!is_user_alive(id))
return PLUGIN_CONTINUE;
ExecuteHamB(Ham_GiveAmmo, id, MAXBPAMMO[args[0]], AMMOTYPE[args[0]], MAXBPAMMO[args[0]])
return PLUGIN_HANDLED;
}
public stats_load(id)
{
if(get_pcvar_num(cvar_savestats) > 0)
{
new steamid[32];
get_user_authid(id, steamid, sizeof steamid);
new ts;
new data[20]
nvault_lookup(g_vault, steamid, data, sizeof data, ts);
//formatex(data, sizeof data, "%s", data2);
new frags[10]
new deaths[10]
split(data, frags, sizeof frags, deaths, sizeof deaths, ":")
//colored_print(1337, "Loaded: %s Frags: %i Deaths: %i", data, frags, deaths);
set_stats(id, str_to_num(frags), str_to_num(deaths));
}
return PLUGIN_HANDLED;
}
public stats_save(id)
{
if(get_pcvar_num(cvar_savestats) > 0)
{
if(is_user_bot(id) || !is_user_connected(id))
return PLUGIN_CONTINUE;
new steamid[32];
get_user_authid(id, steamid, sizeof steamid);
new data[20];
new frags = get_user_frags(id);
new deaths = get_user_deaths(id);
formatex(data, sizeof data, "%i:%i", frags, deaths);
nvault_set(g_vault, steamid, data);
}
return PLUGIN_HANDLED;
}
public event_restart()
{
if(get_pcvar_num(cvar_savestats) > 0)
{
for(new i = 1; i < 33; i++)
{
if(is_user_connected(i))
{
stats_save(i)
g_loadedvault[i] = false;
}
}
}
}
public cmd_shop(id)
{
//colored_print(id, "^04[eG | Jail Break] ^01 We are currently working on shop and you will be able to use kills as money.");
if(g_lrG != LR_GAME_NONE)
{
colored_print(id, "^04[eG | Jail Break] ^01You can't use shop while last request is activated!");
return PLUGIN_CONTINUE;
}
if(get_user_team(id) == CS_TEAM_T)
{
menu_show(id, MENU_SHOP);
return PLUGIN_HANDLED;
}
else if(get_user_team(id) == CS_TEAM_CT)
{
colored_print(id, "^04[eG | Jail Break] ^01Only prisoners can use shop!");
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}
public shop_handler(id, key)
{
if(!is_user_alive(id) || key == MENU_KEY_0)
return PLUGIN_CONTINUE;
new item = key + 1
new price[2]
//formatex(price, charsmax(price), "%i", SHOP_ITEM_PRICE[item])
new newfrags = get_user_frags(id) - str_to_num(price)
if (newfrags < 0)
{
colored_print(id, "^04[eG | Jail Break] ^01 You do not have enough points!");
return PLUGIN_CONTINUE;
}
switch(item)
{
case ITEM_PISTOL:
{
set_stats(id, newfrags);
if(random_num(1, 3) == 1)
{
colored_print(id, "^04[eG | Jail Break] ^01 You gambled for pistol and you got it!");
give_item(id, "weapon_deagle");
return PLUGIN_HANDLED;
}
else
{
user_kill(id);
colored_print(id, "^04[eG | Jail Break] ^01 You gambled for pistol and died.");
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}
case ITEM_PILL:
{
set_stats(id, newfrags);
new health = get_user_health(id) + 100
if(health > 200)
health = 200;
set_user_health(id, health)
colored_print(id, "^04[eG | Jail Break] ^01 You bought %s.", SHOP_ITEM_NAME[SHOP_DATA:item]);
return PLUGIN_HANDLED;
}
case ITEM_ARMOR:
{
set_stats(id, newfrags);
new armor = get_user_armor(id) + 100
if(armor > 200)
armor = 200;
set_user_armor(id, armor);
colored_print(id, "^04[eG | Jail Break] ^01 You bought %s.", SHOP_ITEM_NAME[SHOP_DATA:item]);
return PLUGIN_HANDLED;
}
}
return PLUGIN_CONTINUE;
}
public fw_UseEntiy(entity, caller, activator, use_type)
{
// Prevent players from using items while in lr
if (use_type == 2 && is_user_alive(caller) && g_PlayerData[caller][PlayerIsInLr])
return HAM_SUPERCEDE;
return HAM_IGNORED;
}