#include <amxmodx>
#include <amxmisc>
#include <colorchat>
#include <fun>
#include <fakemeta>
#include <hamsandwich>
#include <cstrike>
#pragma semicolon 1
const gLRAmount = 12;
const gS4SWeapAmount = 5;
new gCount = 5;
new gLRType;
new gFinalCT;
new gFinalT;
new gMainMenu;
new gPlayerMenu;
new gShotForShotMenu;
new gShotForShotWeap;
new bool:gLREnabled;
new gWeaponID[33];
new const gLastRequestNames[gLRAmount][ ] =
{
"Shot 4 Shot",
"Global War",
"Knife Battle",
"Deagle Toss",
"Shotgun Battle",
"Scout Battle",
"Cowboy Showdown",
"Grenade Battle",
"Showdown",
"Grenade Toss",
"Race",
"Spray Contest"
};
new const gLastRequestObjectives[gLRAmount][ ] =
{
"Take turns shooting each other. The gun will automatically be switched.",
"Kill everyone else. It's a free-for-all.",
"Knife to the death!",
"Throw the deagle as far as you can.",
"Battle it out with shotguns. Kill who you chose, and nobody else.",
"Battle it out with scouts. Kill who you chose, and nobody else.",
"Kill your enemy with dual-elites.",
"Kill everybody else with grenades. It's a free-for-all. Good Luck!",
"Follow the instructions on the screen.",
"See who can throw the Smoke Grenade the farthest. The terrorist calls the rules.",
"Race from one end of the soccer field to the other. The terrorist calls the rules.",
"Either highest spray or lowest spray. Terrorist chooses. No cuts."
};
new const gShotForShotWeaponNames[gS4SWeapAmount][ ] =
{
"Deagle",
"Shotgun",
"Scout",
"M4a1",
"AK-47"
};
/* Enum for Last Request Names */
enum
{
SHOTFORSHOT = 1,
GLOBAL_WAR,
KNIFE_BATTLE,
DEAGLE_TOSS,
SHOTGUN_BATTLE,
SCOUT_BATTLE,
COWBOY_SHOWDOWN,
GRENADE_BATTLE,
SHOWDOWN,
GRENADE_TOSS,
RACE,
SPRAY_CONTEST
}
/* Enum for Shot 4 Shot weapons */
enum
{
DEAGLE,
SHOTGUN,
SCOUT,
MAVERICK,
AK
}
public plugin_init()
{
register_plugin( "Jailbreak Last Request", "1.0", "nikhilgupta345" );
register_event( "DeathMsg", "Event_DeathMsg", "a" );
register_logevent( "Event_RoundStart", 2, "1=Round_Start" );
register_logevent( "Event_RoundEnd", 2, "1=Round_End" );
register_forward( FM_Think, "Forward_Entity_Think" );
RegisterHam( Ham_TakeDamage, "player", "Event_TakeDamage" );
/* Register Weapon Attacks for Shot for Shot */
RegisterHam( Ham_Weapon_PrimaryAttack, "weapon_deagle", "Event_Primary_Attack_Deagle", 1 );
RegisterHam( Ham_Weapon_PrimaryAttack, "weapon_m3", "Event_Primary_Attack_M3", 1 );
RegisterHam( Ham_Weapon_PrimaryAttack, "weapon_scout", "Event_Primary_Attack_Scout", 1 );
RegisterHam( Ham_Weapon_PrimaryAttack, "weapon_m4a1", "Event_Primary_Attack_M4a1", 1 );
RegisterHam( Ham_Weapon_PrimaryAttack, "weapon_ak47", "Event_Primary_Attack_Ak47", 1 );
register_clcmd( "say /lr", "cmdLastRequest" );
register_clcmd( "say /start", "cmdStart" );
register_dictionary( "jb_lastrequest.txt" );
createMenus();
}
/* Grenade Toss Prevent Explosion and set glow */
public Forward_Entity_Think( ent )
{
if( gLREnabled || gLRType != GRENADE_TOSS )
return FMRES_IGNORED;
if ( !pev_valid( ent ) )
return FMRES_IGNORED;
static model[256];
pev( ent, pev_model, model, 255 );
static owner;
owner = pev( ent, pev_owner );
if( equal( model, "models/w_smokegrenade.mdl" ) && ( owner == gFinalCT || owner == gFinalT ) )
{
//This is to set glow on nade
set_pev( ent, pev_renderfx, kRenderFxGlowShell );
set_pev( ent, pev_renderamt, 125.0 );
set_pev( ent, pev_rendermode, kRenderTransAlpha );
if( owner == gFinalT ) set_pev( ent, pev_rendercolor, { 0.0, 255.0, 0.0 } );
else set_pev( ent, pev_rendercolor, { 255.0, 0.0, 0.0 } );
return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}
public Event_RoundStart()
{
new players[32], num;
get_players( players, num, "ae", "TERRORIST" );
if( num == 1 )
{
ColorChat( 0, NORMAL, "[Jailbreak] %L", LANG_PLAYER, "LR_ENABLED" );
gLREnabled = true;
}
}
public Event_RoundEnd()
{
if( gFinalT )
set_user_rendering( gFinalT, kRenderFxGlowShell, 0, 0, 0, kRenderNormal, 255 );
if( gFinalCT )
set_user_rendering( gFinalCT, kRenderFxGlowShell, 0, 0, 0, kRenderNormal, 255 );
gFinalCT = -1;
gFinalT = -1;
gLRType = -1;
gLREnabled = false;
gShotForShotWeap = -1;
if( get_cvar_num( "mp_friendlyfire" ) )
server_cmd( "mp_friendlyfire 0" );
remove_task( 1 );
new players[32], num;
get_players( players, num );
for( new i; i < num; i++ )
{
strip_user_weapons( players[i] );
}
menu_destroy( gMainMenu );
menu_destroy( gShotForShotMenu );
menu_destroy( gPlayerMenu );
return PLUGIN_HANDLED;
}
public Event_TakeDamage( victim, inflictor, attacker, Float:damage, dmgbits )
{
if( gLREnabled )
return HAM_IGNORED;
if( gLRType == -1 || gLRType == GLOBAL_WAR || gLRType == GRENADE_BATTLE )
return HAM_IGNORED;
if( ( ( victim != gFinalCT ) && ( attacker != gFinalT ) ) && ( ( victim != gFinalT ) && ( attacker != gFinalCT ) ) )
return HAM_SUPERCEDE;
return HAM_HANDLED;
}
public Event_DeathMsg()
{
if( !gLREnabled )
{
set_user_rendering( gFinalT, kRenderFxGlowShell, 0, 0, 0, kRenderNormal, 255 );
set_user_rendering( gFinalCT, kRenderFxGlowShell, 0, 0, 0, kRenderNormal, 255 );
gFinalCT = 0;
gFinalT = 0;
gLRType = -1;
}
new players[32], num;
get_players( players, num, "ae", "TERRORIST" );
if( num == 1 )
{
ColorChat( 0, NORMAL, "[Jailbreak] %L", LANG_PLAYER, "LR_ENABLED" );
gLREnabled = true;
}
else gLREnabled = false;
return PLUGIN_HANDLED;
}
public createMenus()
{
new info[6];
gMainMenu = menu_create( "Last Request Menu:", "lrMenuHandler" );
for( new i = 1; i <= gLRAmount; i++ )
{
num_to_str( i, info, 5 );
menu_additem( gMainMenu, gLastRequestNames[i - 1], info );
}
menu_setprop( gMainMenu, MPROP_EXIT, MEXIT_ALL );
gShotForShotMenu= menu_create( "Choose Your Weapon:", "s4sWeaponMenuHandler" );
for( new i = 0; i < gS4SWeapAmount; i++ )
{
num_to_str( i, info, 5 );
menu_additem( gShotForShotMenu, gShotForShotWeaponNames[i], info );
}
menu_setprop( gShotForShotMenu, MPROP_EXIT, MEXIT_ALL );
}
public cmdLastRequest( id )
{
if( !is_user_alive( id ) )
{
ColorChat( id, NORMAL, "[Jailbreak] %L", id, "LR_NEEDS_TO_BE_ALIVE" );
return PLUGIN_HANDLED;
}
else if( !gLREnabled )
{
ColorChat( id, NORMAL, "[Jailbreak] %L", id, "LR_NOT_ALLOWED" );
return PLUGIN_HANDLED;
}
else if( cs_get_user_team( id ) == CS_TEAM_CT )
{
ColorChat( id, NORMAL, "[Jailbreak] %L", id, "LR_NOT_TERRORIST" );
return PLUGIN_HANDLED;
}
new players[32], num;
get_players( players, num, "ae", "CT" );
if( num == 0 )
{
ColorChat( id, NORMAL, "[Jailbreak] %L", id, "LR_NO_GUARDS" );
return PLUGIN_HANDLED;
}
for( new i = 0, tempid; i < num; i++ )
{
tempid = players[i];
set_user_rendering( tempid, kRenderFxGlowShell, 0, 0, 0, kRenderNormal, 255 );
set_user_gravity( tempid, 1.0 );
set_user_noclip( tempid, 0 );
set_user_maxspeed( tempid, 250.0 );
set_user_footsteps( tempid, 0 );
}
set_user_noclip( id, 0 );
set_user_maxspeed( id, 250.0 );
set_user_rendering( id, kRenderFxGlowShell, 0, 0, 0, kRenderNormal, 255 );
set_user_gravity( id, 1.0 );
set_user_footsteps( id, 0 );
menu_display( id, gMainMenu, 0 );
new name[32];
get_user_name( id, name, 31 );
ColorChat( 0, NORMAL, "[Jailbreak] %L", id, "LR_STARTED_REQUEST", name );
gFinalT = id;
gLREnabled = false;
return PLUGIN_HANDLED;
}
public lrMenuHandler( id, menu, item )
{
if( item == MENU_EXIT )
{
gLREnabled = true;
menu_destroy( menu );
return PLUGIN_HANDLED;
}
new access, callback;
new data[6], iName[64];
menu_item_getinfo( menu, item, access, data, 5, iName, 63, callback );
new key = str_to_num( data );
gLRType = key;
switch( gLRType )
{
case 1, 3..12: showPlayerMenu( id );
default:
{
handleLR();
}
}
new name[32];
get_user_name( id, name, 31 );
ColorChat( 0, NORMAL, "[Jailbreak] %L", LANG_PLAYER, "LR_CHOSEN_REQUEST", name, gLastRequestNames[gLRType - 1] );
return PLUGIN_HANDLED;
}
public showWeaponMenu( id )
{
menu_display( id, gShotForShotMenu, 0 );
}
public s4sWeaponMenuHandler( id, menu, item )
{
if( item == MENU_EXIT )
{
menu_destroy( menu );
return PLUGIN_HANDLED;
}
new access, callback;
new data[6], iName[64];
menu_item_getinfo( menu, item, access, data, 5, iName, 63, callback );
new key = str_to_num( data );
new name[32];
get_user_name( id, name, 31 );
switch( key )
{
case DEAGLE:
{
gWeaponID[id] = give_item( id, "weapon_deagle" );
cs_set_weapon_ammo( gWeaponID[id], 1 );
cs_set_user_bpammo( id, CSW_DEAGLE, 0 );
gShotForShotWeap = CSW_DEAGLE;
}
case SHOTGUN:
{
gWeaponID[id] = give_item( id, "weapon_m3" );
cs_set_weapon_ammo( gWeaponID[id], 1 );
cs_set_user_bpammo( id, CSW_M3, 0 );
gShotForShotWeap = CSW_M3;
}
case SCOUT:
{
gWeaponID[id] = give_item( id, "weapon_scout" );
cs_set_weapon_ammo( gWeaponID[id], 1 );
cs_set_user_bpammo( id, CSW_SCOUT, 0 );
gShotForShotWeap = CSW_SCOUT;
}
case MAVERICK:
{
gWeaponID[id] = give_item( id, "weapon_m4a1" );
cs_set_weapon_ammo( gWeaponID[id], 1 );
cs_set_user_bpammo( id, CSW_M4A1, 0 );
gShotForShotWeap = CSW_M4A1;
}
case AK:
{
gWeaponID[id] = give_item( id, "weapon_ak47" );
cs_set_weapon_ammo( gWeaponID[id], 1 );
cs_set_user_bpammo( id, CSW_AK47, 0 );
gShotForShotWeap = CSW_AK47;
}
}
ColorChat( 0, NORMAL, "[Jailbreak] %L", LANG_PLAYER, "LR_CHOSEN_WEAPON", name, gShotForShotWeaponNames[key]
);
handleLR();
return PLUGIN_HANDLED;
}
public showPlayerMenu( id )
{
gPlayerMenu = menu_create( "Choose Your Opponent:", "handlePlayerMenu" );
new players[32], name[32], num;
get_players( players, num );
new id2, szID[10];
for( new i; i < num; i++ )
{
id2 = players[i];
if( cs_get_user_team( id2 ) == CS_TEAM_CT && is_user_alive( id2 ) )
{
get_user_name( id2, name, 31 );
num_to_str( id2, szID, 9 );
menu_additem( gPlayerMenu, name, szID );
}
}
menu_setprop( gPlayerMenu, MPROP_EXIT, MEXIT_ALL );
menu_display( id, gPlayerMenu, 0 );
return PLUGIN_HANDLED;
}
public handlePlayerMenu( id, menu, item )
{
if( item == MENU_EXIT )
{
menu_destroy( menu );
showPlayerMenu( id );
return PLUGIN_HANDLED;
}
new access, callback;
new data[6], iName[64], szName[32];
menu_item_getinfo( menu, item, access, data, 5, iName, 63, callback );
gFinalCT = str_to_num( data );
get_user_name( id, szName, 31 );
ColorChat( 0, NORMAL, "[Jailbreak] %L", LANG_PLAYER, "LR_OPPONENT_CHOSEN", szName, iName );
set_user_rendering( gFinalT, kRenderFxGlowShell, 0, 255, 0, kRenderNormal, 80 );
set_user_rendering ( gFinalCT, kRenderFxGlowShell, 255, 0, 0, kRenderNormal, 80 );
if( gLRType == SHOTFORSHOT )
{
strip_user_weapons( gFinalCT );
strip_user_weapons( gFinalT );
give_item( gFinalCT, "weapon_knife" );
give_item( gFinalT, "weapon_knife" );
showWeaponMenu( id );
}
else
handleLR();
return PLUGIN_HANDLED;
}
public handleLR()
{
gLREnabled = false;
ColorChat( 0, NORMAL, "[Jailbreak] %L", LANG_PLAYER, "LR_OBJECTIVE", gLastRequestObjectives[gLRType - 1] );
switch( gLRType )
{
case GLOBAL_WAR:
{
new players[32], num, player;
get_players( players, num );
for( new i = 0; i < num; i++ )
{
player = players[i];
strip_user_weapons( player );
give_item( player, "weapon_knife" );
}
gCount = 5;
set_task( 1.0, "giveGlobalWarWeapons", _, _, _, "a", gCount + 1 );
}
case KNIFE_BATTLE:
{
strip_user_weapons( gFinalT );
strip_user_weapons( gFinalCT );
give_item( gFinalT, "weapon_knife" );
give_item( gFinalCT, "weapon_knife" );
}
case DEAGLE_TOSS:
{
strip_user_weapons( gFinalT );
strip_user_weapons( gFinalCT );
gWeaponID[gFinalT] = give_item( gFinalT, "weapon_deagle" );
gWeaponID[gFinalCT] = give_item( gFinalCT, "weapon_deagle" );
give_item( gFinalT, "weapon_knife" );
give_item( gFinalCT, "weapon_knife" );
cs_set_weapon_ammo( gWeaponID[gFinalT], 0 );
cs_set_weapon_ammo( gWeaponID[gFinalCT], 0 );
cs_set_user_bpammo( gFinalT, CSW_DEAGLE, 0 );
cs_set_user_bpammo( gFinalCT, CSW_DEAGLE, 0 );
}
case SHOTGUN_BATTLE:
{
strip_user_weapons( gFinalT );
strip_user_weapons( gFinalCT );
give_item( gFinalT, "weapon_knife" );
give_item( gFinalCT, "weapon_knife" );
gWeaponID[gFinalT] = give_item( gFinalT, "weapon_m3" );
gWeaponID[gFinalT] = give_item( gFinalCT, "weapon_m3" );
cs_set_weapon_ammo( gWeaponID[gFinalT], 8 );
cs_set_weapon_ammo( gWeaponID[gFinalCT], 8 );
cs_set_user_bpammo( gFinalT, CSW_M3, 32 );
cs_set_user_bpammo( gFinalCT, CSW_M3, 32 );
}
case SCOUT_BATTLE:
{
strip_user_weapons( gFinalT );
strip_user_weapons( gFinalCT );
give_item( gFinalT, "weapon_knife" );
give_item( gFinalCT, "weapon_knife" );
gWeaponID[gFinalT] = give_item( gFinalT, "weapon_scout" );
gWeaponID[gFinalCT] = give_item( gFinalCT, "weapon_scout" );
cs_set_weapon_ammo( gWeaponID[gFinalT], 10 );
cs_set_weapon_ammo( gWeaponID[gFinalCT], 10 );
cs_set_user_bpammo( gFinalT, CSW_SCOUT, 90 );
cs_set_user_bpammo( gFinalCT, CSW_SCOUT, 90 );
}
case COWBOY_SHOWDOWN:
{
strip_user_weapons( gFinalCT );
strip_user_weapons( gFinalT );
give_item( gFinalCT, "weapon_knife" );
give_item( gFinalT, "weapon_knife" );
gCount = 5;
set_task( 1.0, "giveCowboyShowdownWeapons", _, _, _, "a", gCount + 1 );
}
case GRENADE_BATTLE:
{
new players[32], num, player;
get_players( players, num );
for( new i = 0; i < num; i++ )
{
player = players[i];
strip_user_weapons( player );
give_item( player, "weapon_knife" );
}
gCount = 10;
set_task( 1.0, "giveGrenadeBattleWeapon", _, _, _, "a", gCount + 1 );
}
case SHOWDOWN:
{
ColorChat( gFinalT, NORMAL, "[Jailbreak] %L", gFinalT, "LR_TYPE_START" );
strip_user_weapons( gFinalCT );
strip_user_weapons( gFinalT );
give_item( gFinalCT, "weapon_knife" );
give_item( gFinalT, "weapon_knife" );
}
case GRENADE_TOSS:
{
strip_user_weapons( gFinalT );
strip_user_weapons( gFinalCT );
give_item( gFinalT, "weapon_knife" );
give_item( gFinalCT, "weapon_knife" );
give_item( gFinalT, "weapon_smokegrenade" );
give_item( gFinalCT, "weapon_smokegrenade" );
}
case RACE:
{
ColorChat( gFinalT, NORMAL, "[Jailbreak] %L", gFinalT, "LR_TYPE_START" );
strip_user_weapons( gFinalT );
strip_user_weapons( gFinalCT );
give_item( gFinalT, "weapon_knife" );
give_item( gFinalCT, "weapon_knife" );
}
case SPRAY_CONTEST:
{
strip_user_weapons( gFinalT );
strip_user_weapons( gFinalCT );
give_item( gFinalT, "weapon_knife" );
give_item( gFinalCT, "weapon_knife" );
}
}
set_user_health( gFinalT, 100 );
set_user_health( gFinalCT, 100 );
return PLUGIN_HANDLED;
}
public cmdStart( id )
{
if( id != gFinalT )
{
ColorChat( id, NORMAL, "[Jailbreak] %L", id, "LR_LAST_TERRORIST" );
return PLUGIN_HANDLED;
}
if( gLRType == SHOWDOWN )
{
ColorChat( 0, NORMAL, "[Jailbreak] %L", LANG_PLAYER, "LR_SHOWDOWN_START" );
gCount = 15;
set_task( 1.0, "countdownShowdown", _, _, _, "a", gCount + 1 );
}
else if( gLRType == RACE )
{
ColorChat( 0, NORMAL, "[Jailbreak] %L", LANG_PLAYER, "LR_RACE_START" );
gCount = 10;
set_task( 1.0, "countdownRace", _, _, _, "a", gCount + 1 );
}
else
{
ColorChat( id, NORMAL, "[Jailbreak] %L", id, "LR_COMMAND_NOT_ALLOWED" );
}
return PLUGIN_HANDLED;
}
public countdownRace()
{
set_hudmessage( 255, 255, 255, -1.0, 0.35, 0, 0.1, 1.0, 0.1, 0.1, 4 );
show_hudmessage( 0, "The race is starting!!! [%i]", gCount );
switch( gCount )
{
case 0:
{
set_hudmessage( 255, 255, 255, -1.0, 0.35, 0, 0.1, 3.0, 0.1, 0.1, 4 );
show_hudmessage( 0, "GO!!!" );
}
case 1..2: show_hudmessage( 0, "Get Set!!!" );
case 3..4: show_hudmessage( 0, "On Your Mark!!!" );
case 5..10: show_hudmessage( 0, "Ready", gCount );
}
gCount--;
return PLUGIN_HANDLED;
}
public countdownShowdown()
{
if( gCount > 5 )
{
set_hudmessage( 255, 255, 255, -1.0, 0.35, 0, 0.1, 1.0, 0.1, 0.1, 4 );
show_hudmessage( 0, "Line up back to back with your partner. [%i]", gCount - 5 );
gCount--;
}
else if( gCount > 0 )
{
set_hudmessage( 255, 255, 255, -1.0, 0.35, 0, 0.1, 1.0, 0.1, 0.1, 4 );
show_hudmessage( 0, "Start walking!!! [%i]", gCount );
gCount--;
}
else
{
gWeaponID[gFinalT] = give_item( gFinalT, "weapon_fiveseven" );
gWeaponID[gFinalCT] = give_item( gFinalCT, "weapon_fiveseven" );
cs_set_weapon_ammo( gWeaponID[gFinalT], 20 );
cs_set_weapon_ammo( gWeaponID[gFinalCT], 20 );
cs_set_user_bpammo( gFinalT, CSW_FIVESEVEN, 100 );
cs_set_user_bpammo( gFinalCT, CSW_FIVESEVEN, 100 );
}
return PLUGIN_HANDLED;
}
public giveCowboyShowdownWeapons()
{
if( gCount )
{
set_hudmessage( 255, 255, 255, -1.0, 0.35, 0, 0.1, 1.0, 0.1, 0.1, 4 );
show_hudmessage( 0, "You will be equipped in %i seconds.", gCount );
gCount--;
return PLUGIN_HANDLED;
}
gWeaponID[gFinalT] = give_item( gFinalT, "weapon_elite" );
gWeaponID[gFinalCT] = give_item( gFinalCT, "weapon_elite" );
cs_set_weapon_ammo( gWeaponID[gFinalT], 30 );
cs_set_weapon_ammo( gWeaponID[gFinalCT], 30 );
cs_set_user_bpammo( gFinalT, CSW_SCOUT, 120 );
cs_set_user_bpammo( gFinalCT, CSW_SCOUT, 120 );
return PLUGIN_HANDLED;
}
public giveGlobalWarWeapons()
{
if( gCount )
{
set_hudmessage( 255, 255, 255, -1.0, 0.35, 0, 0.1, 1.0, 0.1, 0.1, 4 );
show_hudmessage( 0, "You will be equipped in %i seconds.", gCount );
gCount--;
return PLUGIN_HANDLED;
}
new players[32], num, id;
get_players( players, num );
for( new i = 0; i < num; i++ )
{
id = players[i];
if( is_user_alive( id ) )
{
gWeaponID[id] = give_item( id, "weapon_m4a1" );
cs_set_weapon_ammo( gWeaponID[id], 30 );
gWeaponID[id] = give_item( id, "weapon_deagle" );
cs_set_weapon_ammo( gWeaponID[id], 7 );
cs_set_user_bpammo( id, CSW_M4A1, 90 );
cs_set_user_bpammo( id, CSW_DEAGLE, 35 );
set_user_health( id, 100 );
}
}
server_cmd( "mp_friendlyfire 1" );
return PLUGIN_HANDLED;
}
public giveGrenadeBattleWeapon()
{
if( gCount )
{
set_hudmessage( 255, 255, 255, -1.0, 0.35, 0, 0.1, 1.0, 0.1, 0.1, 4 );
show_hudmessage( 0, "You will be equipped in %i seconds.", gCount );
gCount--;
return PLUGIN_HANDLED;
}
new players[32], num, id;
get_players( players, num );
for( new i = 0; i < num; i++ )
{
id = players[i];
if( is_user_alive( id ) )
{
give_item( id, "weapon_hegrenade" );
}
}
server_cmd( "mp_friendlyfire 1" );
set_task( 0.1, "CheckForNades", 1, _, _, "b" );
return PLUGIN_HANDLED;
}
public Event_Primary_Attack_Deagle( ent )
{
if( gLRType != SHOTFORSHOT || gShotForShotWeap < 0 )
return HAM_IGNORED;
new id = pev( ent, pev_owner );
if( ( id != gFinalCT ) && ( id != gFinalT ) || !is_user_alive( id ) )
return HAM_IGNORED;
swap_weapons( id, id == gFinalT ? gFinalCT : gFinalT, "weapon_deagle" );
return HAM_HANDLED;
}
public Event_Primary_Attack_M3( ent )
{
if( gLRType != SHOTFORSHOT || gShotForShotWeap < 0 )
{
return HAM_IGNORED;
}
new id = pev( ent, pev_owner );
if( ( id != gFinalCT ) && ( id != gFinalT ) || !is_user_alive( id ) )
return HAM_IGNORED;
swap_weapons( id, id == gFinalT ? gFinalCT : gFinalT, "weapon_m3" );
return HAM_HANDLED;
}
public Event_Primary_Attack_Scout( ent )
{
if( gLRType != SHOTFORSHOT || gShotForShotWeap < 0 )
{
return HAM_IGNORED;
}
new id = pev( ent, pev_owner );
if( ( id != gFinalCT ) && ( id != gFinalT ) || !is_user_alive( id ) )
return HAM_IGNORED;
swap_weapons( id, id == gFinalT ? gFinalCT : gFinalT, "weapon_scout" );
return HAM_HANDLED;
}
public Event_Primary_Attack_M4a1( ent )
{
if( gLRType != SHOTFORSHOT || gShotForShotWeap < 0 )
{
return HAM_IGNORED;
}
new id = pev( ent, pev_owner );
if( ( id != gFinalCT ) && ( id != gFinalT ) || !is_user_alive( id ) )
return HAM_IGNORED;
swap_weapons( id, id == gFinalT ? gFinalCT : gFinalT, "weapon_m4a1" );
return HAM_HANDLED;
}
public Event_Primary_Attack_Ak47( ent )
{
if( gLRType != SHOTFORSHOT || gShotForShotWeap < 0 )
{
return HAM_IGNORED;
}
new id = pev( ent, pev_owner );
if( ( id != gFinalCT ) && ( id != gFinalT ) || !is_user_alive( id ) )
return HAM_IGNORED;
swap_weapons( id, id == gFinalT ? gFinalCT : gFinalT, "weapon_ak47" );
return HAM_HANDLED;
}
public CheckForNades()
{
static players[32], num, player;
get_players( players, num );
for( new i = 0; i < num; i++ )
{
player = players[i];
if( !user_has_weapon( player, CSW_HEGRENADE ) && is_user_alive( player ) )
{
gWeaponID[player] = give_item( player, "weapon_hegrenade" );
give_item( player, "weapon_hegrenade" );
}
}
return PLUGIN_HANDLED;
}
public swap_weapons( id, id2, const weapon[] )
{
if( is_user_alive( id2 ) )
{
strip_user_weapons( id2 );
new weapon2 = give_item( id2, weapon );
give_item( id2, weapon );
cs_set_weapon_ammo( weapon2, 1 );
cs_set_user_bpammo( id2, gShotForShotWeap, 0 );
strip_user_weapons( id );
}
return PLUGIN_HANDLED;
}