|
Senior Member
Join Date: Jan 2012
Location: Vaasa, Finland
|

06-13-2012
, 07:52
Re: Jailbreak Last Request Problem
|
#10
|
I attached the .sma so you could help me.
PHP Code:
#include < amxmodx >
#include < amxmodx >
#include < amxmisc >
#include < cstrike >
#include < hamsandwich >
#include < fun >
#include < fakemeta >
#include < xs >
#include < colorchat >
new StartTimer = 5
new StartTimerCB = 5
new StartTimerDB = 5
new iPlayer_LastPrisoner
new iPlayer_LastGuard
new g_pEnabled
new g_pInterval
new g_iSound [ ] = "buttons/blip1.wav"
new g_iSpritePart [ ] = "sprites/white.spr"
new g_iSprite
new Float: g_flLastBeaconThink [ 33 ]
new Beacon [ 33 ]
new bool: e_LR
new bool: e_Rambo
new bool: e_S4S
new bool: e_Knife
new bool: e_SC
new bool: e_GT
new bool: e_CB
new bool: e_DB
new bool: e_Boxing
new lr_hp
new const g_szDodgeball[ ] = "models/scandic-gamers/v_dodgeball.mdl";
new const g_szDodgeball2[ ] = "models/scandic-gamers/dodgeball2.mdl";
new const g_szKnife[ ] = "models/scandic-gamers/v_knife.mdl";
new const g_szKnife2[ ] = "models/scandic-gamers/p_knife.mdl";
new const g_szDeagle[ ] = "models/scandic-gamers/ragingbull.mdl";
new const g_szDeagle2[ ] = "models/scandic-gamers/ragingbull2.mdl";
new const g_szRambo[ ] = "models/scandic-gamers/v_m249.mdl";
new const g_szRambo2[ ] = "models/scandic-gamers/p_m249.mdl";
new const g_szFists[ ] = "models/scandic-gamers/v_fists.mdl";
new const prefix [ ] = "^4[SG] Last Request^3:"
public plugin_init()
{
register_plugin ( "JB Last Request", "1.0", "-" )
register_clcmd ( "say /lr", "MainMenu" )
register_logevent ( "EventRoundStart", 2, "1=Round_Start" )
register_logevent ( "EventRoundEnd", 2, "1=Round_End" )
register_event( "23", "EventSpray", "a", "1=112" )
register_event( "DeathMsg", "event_DeathMsg", "a" )
g_pEnabled = register_cvar ( "amx_beacon", "1" )
g_pInterval = register_cvar ( "amx_beacon_interval", "2.0" )
register_forward ( FM_CmdStart, "fwdCmdStart" )
RegisterHam ( Ham_Weapon_PrimaryAttack, "weapon_deagle", "Event_Primary_Attack_Deagle", 1 )
server_cmd ( "decalfrequency 15" )
}
public plugin_precache ( )
{
precache_sound ( g_iSound )
g_iSprite = precache_model ( g_iSpritePart )
precache_model( g_szDodgeball);
precache_model( g_szDodgeball2);
precache_model( g_szKnife);
precache_model( g_szKnife2);
precache_model( g_szDeagle);
precache_model( g_szDeagle2);
precache_model( g_szRambo);
precache_model( g_szRambo2);
precache_model( g_szFists);
}
public fwdCmdStart( iPlayer, iHandle )
{
new Float:flGameTime = get_gametime();
if( g_flLastBeaconThink [ iPlayer ] < flGameTime )
{
if( !is_user_alive( iPlayer ) || !get_pcvar_num( g_pEnabled ) )
return FMRES_IGNORED
if ( Beacon [ iPlayer ] )
{
show_beacon ( iPlayer )
g_flLastBeaconThink [ iPlayer ] = flGameTime + get_pcvar_float ( g_pInterval )
}
}
return FMRES_IGNORED
}
public show_beacon ( iPlayer )
{
static vOrigin [ 3 ]
emit_sound ( iPlayer, CHAN_ITEM, g_iSound, 0.4, ATTN_NORM, 0, PITCH_NORM )
get_user_origin ( iPlayer, vOrigin )
message_begin ( MSG_BROADCAST, SVC_TEMPENTITY )
write_byte ( TE_BEAMCYLINDER )
write_coord ( vOrigin [ 0 ] ) //position.x
write_coord ( vOrigin [ 1 ] ) //position.y
write_coord ( vOrigin [ 2 ] - ( pev ( iPlayer, pev_button ) & IN_DUCK ? 7 : 25 ) ) //position.z
write_coord ( vOrigin [ 0 ] ) //axis.x
write_coord ( vOrigin [ 1 ] ) //axis.y
write_coord ( vOrigin [ 2 ] + 140 ) //axis.z
write_short ( g_iSprite ) //sprite index
write_byte ( 0 ) //starting frame
write_byte ( 1 ) //frame rate in 0.1's
write_byte ( 8 ) //life in 0.1's
write_byte ( 10 ) //line width in 0.1's
write_byte ( 1 ) //noise amplitude in 0.01's
if ( iPlayer == iPlayer_LastPrisoner )
{
write_byte ( 255 ) // r
write_byte ( 0 ) // g
write_byte ( 0 ) // b
}
if ( iPlayer == iPlayer_LastGuard )
{
write_byte ( 0 ) // r
write_byte ( 0 ) // g
write_byte ( 255 ) // b
}
write_byte ( 255 ) // brightness
write_byte ( 0 ) // scroll speed in 0.1's
message_end ( )
}
public MainMenu ( iPlayer )
{
if ( !e_LR )
{
ColorChat ( iPlayer, GREY, "%s There is too many^4 Prisoners^3 alive!", prefix )
return PLUGIN_HANDLED
}
if ( cs_get_user_team ( iPlayer ) != CS_TEAM_T )
{
ColorChat( iPlayer, GREY, "%s You need to be a^4 Prisoner^3 to use Last Request!", prefix )
return PLUGIN_HANDLED
}
if ( !is_user_alive ( iPlayer ) )
{
ColorChat ( iPlayer, GREY, "%s You must be^4 alive^3 to use^4 Last Request^3", prefix )
return PLUGIN_HANDLED
}
iPlayer_LastPrisoner = iPlayer
new MainMenu = menu_create ( "[SG] Last Request Menu^nMain Menu", "MainMenu_Handle" )
menu_additem ( MainMenu, "Ninja Duel", "1", 0 )
menu_additem ( MainMenu, "Raging Bull Shot 4 Shot", "2", 0 )
menu_additem ( MainMenu, "1337 Duel", "3", 0 )
menu_additem ( MainMenu, "Gun Toss", "4", 0 )
menu_additem ( MainMenu, "Spray Olympia", "5", 0 )
menu_additem ( MainMenu, "Rambo Attack", "6", 0 )
menu_additem ( MainMenu, "Dodgeball Explosive", "7", 0 )
menu_additem ( MainMenu, "300(500) & Fists", "8", 0 )
menu_setprop ( MainMenu, MPROP_EXIT, MEXIT_ALL )
menu_display ( iPlayer, MainMenu, 0 )
return PLUGIN_HANDLED
}
public MainMenu_Handle ( iPlayer, menu, item )
{
if ( item == MENU_EXIT )
{
menu_destroy ( menu )
return PLUGIN_HANDLED
}
new data [ 8 ], name [ 64 ]
new access, callback
menu_item_getinfo ( menu, item, access, data, 6, name, 63, callback )
new key = str_to_num ( data )
switch ( key )
{
case 1: KnifeMenu ( iPlayer )
case 2: S4SMenu ( iPlayer )
case 3: CowboyMenu ( iPlayer )
case 4: GunTossMenu ( iPlayer )
case 5: SprayContestMenu ( iPlayer )
case 6: CmdRambo ( iPlayer )
case 7: DodgeBallMenu ( iPlayer )
case 8: BoxingMenu ( iPlayer )
}
return PLUGIN_CONTINUE
}
public KnifeMenu ( iPlayer )
{
if ( e_LR )
{
new KnifeMenu = menu_create ( "[SG] Last Request Menu^nNinja Duel^nPick amount of HP!", "KnifeMenu_Handle" )
menu_additem ( KnifeMenu, "35 HP", "1", 0 )
menu_additem ( KnifeMenu, "100 HP", "2", 0 )
menu_setprop ( KnifeMenu, MPROP_EXIT, MEXIT_ALL )
menu_display ( iPlayer, KnifeMenu, 0 )
}
}
public KnifeMenu_Handle ( iPlayer, menu, item )
{
if ( item == MENU_EXIT )
{
menu_destroy ( menu )
return PLUGIN_HANDLED
}
new data [ 8], name [ 64 ]
new access, callback
menu_item_getinfo ( menu, item, access, data, 7, name, 63, callback )
new key = str_to_num ( data )
switch ( key )
{
case 1:
{
KnifeMenu2 ( iPlayer )
lr_hp = 35
}
case 2:
{
KnifeMenu2 ( iPlayer )
lr_hp = 100
}
}
return PLUGIN_CONTINUE
}
public KnifeMenu2 ( iPlayer )
{
new KnifeMenu = menu_create ( "[SG] Last Request Menu^nNinja Duel^nPick an opponent!", "KnifeMenu2_Handle" )
new num, players[32], tempid, szTempID [ 10 ], tempname [ 32 ]
get_players ( players, num, "a" )
for ( new i = 0; i < num; i++ )
{
tempid = players [ i ]
if ( cs_get_user_team ( tempid ) != CS_TEAM_CT )
continue
get_user_name ( tempid, tempname, 31 )
num_to_str ( tempid, szTempID, 9 )
menu_additem ( KnifeMenu, tempname, szTempID, 0 )
}
menu_display ( iPlayer, KnifeMenu )
return PLUGIN_HANDLED
}
public KnifeMenu2_Handle ( iPlayer, menu, item )
{
if ( item == MENU_EXIT )
{
menu_destroy ( menu )
return PLUGIN_HANDLED;
}
new data [ 8 ], iName [ 64 ]
new access, callback
menu_item_getinfo ( menu, item, access, data,7, iName, 63, callback )
new tempid = str_to_num ( data )
strip_user_weapons ( tempid )
strip_user_weapons ( iPlayer )
set_user_health ( tempid, lr_hp )
set_user_health ( iPlayer, lr_hp )
give_item ( tempid, "weapon_knife" )
give_item ( iPlayer, "weapon_knife" )
set_pev(iPlayer_LastGuard, pev_viewmodel2, g_szKnife );
set_pev(iPlayer_LastGuard, pev_weaponmodel2, g_szKnife2 );
set_pev(iPlayer_LastPrisoner, pev_viewmodel2, g_szKnife );
set_pev(iPlayer_LastPrisoner, pev_weaponmodel2, g_szKnife2 );
new tempname [ 32 ], tempname2 [ 32 ]
get_user_name ( iPlayer, tempname, 31 )
get_user_name ( tempid, tempname2, 31 )
ColorChat ( 0, GREY, "%s >^4 %s^3 < chose^4 Ninja Duel^3 [^4 %i HP^3 ] as his last request vs >^4 %s^3 <", prefix, tempname, lr_hp, tempname2 )
e_LR = false
e_Knife = true
iPlayer_LastGuard = tempid
Beacon [ iPlayer_LastGuard ] = true
Beacon [ iPlayer_LastPrisoner ] = true
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public S4SMenu ( iPlayer )
{
if ( e_LR )
{
new S4SMenu = menu_create ( "[SG] Last Request Menu^nRaging Bull Shot 4 Shot^nPick an opponent!", "S4SMenu_Handle" )
new num, players[32], tempid, szTempID [ 10 ], tempname [ 32 ]
get_players ( players, num, "a" )
for ( new i = 0; i < num; i++ )
{
tempid = players [ i ]
if ( cs_get_user_team ( tempid ) != CS_TEAM_CT )
continue
get_user_name ( tempid, tempname, 31 )
num_to_str ( tempid, szTempID, 9 )
menu_additem ( S4SMenu, tempname, szTempID, 0 )
}
menu_display ( iPlayer, S4SMenu )
}
return PLUGIN_HANDLED
}
public S4SMenu_Handle ( iPlayer, menu, item )
{
if ( item == MENU_EXIT )
{
menu_destroy ( menu )
return PLUGIN_HANDLED;
}
new data [ 8 ], iName [ 64 ]
new access, callback
menu_item_getinfo ( menu, item, access, data,7, iName, 63, callback )
new tempid = str_to_num ( data )
strip_user_weapons ( tempid )
set_user_health ( tempid, 100 )
set_pev(iPlayer_LastGuard, pev_viewmodel2, g_szDeagle );
set_pev( iPlayer_LastGuard, pev_weaponmodel2, g_szDeagle2 );
strip_user_weapons ( iPlayer )
set_user_health ( iPlayer, 100 )
give_item ( iPlayer, "weapon_knife" )
cs_set_weapon_ammo ( give_item( iPlayer, "weapon_deagle" ), 1 )
cs_set_user_bpammo ( iPlayer, CSW_DEAGLE, 0 )
set_pev(iPlayer_LastPrisoner, pev_viewmodel2, g_szDeagle );
set_pev( iPlayer_LastPrisoner, pev_weaponmodel2, g_szDeagle2 );
new tempname [ 32 ], tempname2 [ 32 ]
get_user_name ( iPlayer, tempname, 31 )
get_user_name ( tempid, tempname2, 31 )
ColorChat ( 0, GREY, "%s >^4 %s^3 < chose^4 Raging Bull Shot 4 Shot^3 as his last request vs >^4 %s^3 <!", prefix, tempname, tempname2 )
e_LR = false
e_S4S = true
iPlayer_LastGuard = tempid
Beacon [ iPlayer_LastGuard ] = true
Beacon [ iPlayer_LastPrisoner ] = true
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public CowboyMenu ( iPlayer )
{
if ( e_LR )
{
new CowboyMenu = menu_create ( "[SG] Last Request Menu^n1337 Duel^nPick an opponent!", "CowboyMenu_Handle" )
new num, players[32], tempid, szTempID [ 10 ], tempname [ 32 ]
get_players ( players, num, "a" )
for ( new i = 0; i < num; i++ )
{
tempid = players [ i ]
if ( cs_get_user_team ( tempid ) != CS_TEAM_CT )
continue
get_user_name ( tempid, tempname, 31 )
num_to_str ( tempid, szTempID, 9 )
menu_additem ( CowboyMenu, tempname, szTempID, 0 )
}
menu_display ( iPlayer, CowboyMenu )
}
return PLUGIN_HANDLED
}
public CowboyMenu_Handle ( iPlayer, menu, item )
{
if ( item == MENU_EXIT )
{
menu_destroy ( menu )
return PLUGIN_HANDLED;
}
new data [ 8 ], iName [ 64 ]
new access, callback
menu_item_getinfo ( menu, item, access, data,7, iName, 63, callback )
new tempid = str_to_num ( data )
new tempname [ 32 ], tempname2 [ 32 ]
get_user_name ( iPlayer, tempname, 31 )
get_user_name ( tempid, tempname2, 31 )
ColorChat ( 0, GREY, "%s >%s< chose^4 1337 Duel^3 vs^4 %s^3 and will start in^4 5 seconds^3!", prefix, tempname, tempname2 )
e_LR = false
e_CB = true
iPlayer_LastGuard = tempid
strip_user_weapons ( iPlayer_LastPrisoner )
strip_user_weapons ( iPlayer_LastGuard )
Beacon [ iPlayer_LastGuard ] = true
Beacon [ iPlayer_LastPrisoner ] = true
set_task( 1.0, "StartCowboy", _, _, _, "a", StartTimerCB + 1 )
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public StartCowboy ( )
{
if( StartTimerCB > 0 )
{
set_hudmessage ( 255, 255, 255, -1.0, 0.35, 0, 0.1, 1.0, 0.1, 0.1, 4 )
show_hudmessage ( 0, "1337 Duel starting in %i....", StartTimerCB )
StartTimerCB--
}
else
{
strip_user_weapons ( iPlayer_LastGuard )
set_user_health ( iPlayer_LastGuard, 100 )
give_item ( iPlayer_LastGuard, "weapon_knife" )
give_item ( iPlayer_LastGuard, "weapon_elite" )
cs_set_user_bpammo ( iPlayer_LastGuard, CSW_ELITE, 120 )
cs_set_user_armor ( iPlayer_LastGuard, 100, CS_ARMOR_VESTHELM )
strip_user_weapons ( iPlayer_LastPrisoner )
set_user_health ( iPlayer_LastPrisoner, 100 )
give_item ( iPlayer_LastPrisoner, "weapon_knife" )
give_item ( iPlayer_LastPrisoner, "weapon_elite" )
cs_set_user_bpammo ( iPlayer_LastPrisoner, CSW_ELITE, 120 )
cs_set_user_armor ( iPlayer_LastPrisoner, 100, CS_ARMOR_VESTHELM )
}
return PLUGIN_HANDLED
}
public GunTossMenu ( iPlayer )
{
if ( e_LR )
{
new GunTossMenu = menu_create ( "[SG] Last Request Menu^nGun Toss^nPick an opponent!", "GunTossMenu_Handle" )
new num, players[32], tempid, szTempID [ 10 ], tempname [ 32 ]
get_players ( players, num, "a" )
for ( new i = 0; i < num; i++ )
{
tempid = players [ i ]
if ( cs_get_user_team ( tempid ) != CS_TEAM_CT )
continue
get_user_name ( tempid, tempname, 31 )
num_to_str ( tempid, szTempID, 9 )
menu_additem ( GunTossMenu, tempname, szTempID, 0 )
}
menu_display ( iPlayer, GunTossMenu )
}
return PLUGIN_HANDLED
}
public GunTossMenu_Handle ( iPlayer, menu, item )
{
if ( item == MENU_EXIT )
{
menu_destroy ( menu )
return PLUGIN_HANDLED;
}
new data [ 8 ], iName [ 64 ]
new access, callback
menu_item_getinfo ( menu, item, access, data,7, iName, 63, callback )
new tempid = str_to_num ( data )
strip_user_weapons ( tempid )
set_user_health ( tempid, 100 )
give_item ( tempid, "weapon_knife" )
give_item ( tempid, "weapon_deagle" )
cs_set_user_bpammo ( tempid, CSW_DEAGLE,5 )
strip_user_weapons ( iPlayer )
set_user_health ( iPlayer, 100 )
give_item ( iPlayer, "weapon_knife" )
give_item ( iPlayer, "weapon_deagle" )
cs_set_user_bpammo ( iPlayer, CSW_DEAGLE, 5 )
new tempname [ 32 ], tempname2 [ 32 ]
get_user_name ( iPlayer, tempname, 31 )
get_user_name ( tempid, tempname2, 31 )
ColorChat ( 0, GREY, "%s >^4 %s^3 < chose^4 Gun Toss^3 as his last request vs >^4 %s^3 <!", prefix, tempname, tempname2 )
e_LR = false
e_GT = true
iPlayer_LastGuard = tempid
Beacon [ iPlayer_LastGuard ] = true
Beacon [ iPlayer_LastPrisoner ] = true
menu_destroy ( menu )
return PLUGIN_HANDLED
}
public SprayContestMenu ( iPlayer )
{
if ( e_LR )
{
new SprayContestMenu = menu_create ( "[SG] Last Request Menu^nSpray Olympia^nPick an opponent!", "SprayContestMenu_Handle" )
new num, players[32], tempid, szTempID [ 10 ], tempname [ 32 ]
get_players ( players, num, "a" )
for ( new i = 0; i < num; i++ )
{
tempid = players [ i ]
if ( cs_get_user_team ( tempid ) != CS_TEAM_CT )
continue
get_user_name ( tempid, tempname, 31 )
num_to_str ( tempid, szTempID, 9 )
menu_additem ( SprayContestMenu, tempname, szTempID, 0 )
}
menu_display ( iPlayer, SprayContestMenu )
}
return PLUGIN_HANDLED
}
public SprayContestMenu_Handle ( iPlayer, menu, item )
{
if ( item == MENU_EXIT )
{
menu_destroy ( menu )
return PLUGIN_HANDLED;
}
new data [ 8 ], iName [ 64 ]
new access, callback
menu_item_getinfo ( menu, item, access, data,7, iName, 63, callback )
new tempid = str_to_num ( data )
strip_user_weapons ( tempid )
set_user_health ( tempid, 100 )
give_item ( tempid, "weapon_knife" )
strip_user_weapons ( iPlayer )
set_user_health ( iPlayer, 100 )
give_item ( iPlayer, "weapon_knife" )
new tempname [ 32 ], tempname2 [ 32 ]
get_user_name ( iPlayer, tempname, 31 )
get_user_name ( tempid, tempname2, 31 )
ColorChat ( 0, GREY, "%s >^4 %s^3 < chose^4 Spray Olympia^3 as his last request vs >^4 %s^3 <!", prefix, tempname, tempname2 )
server_cmd ( "decalfrequency 5" )
e_LR = false
e_SC = true
iPlayer_LastGuard = tempid
Beacon [ iPlayer_LastGuard ] = true
Beacon [ iPlayer_LastPrisoner ] = true
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public CmdRambo ( iPlayer )
{
if ( e_LR )
{
new plr [ 32 ]
get_user_name ( iPlayer, plr, 31 )
ColorChat ( 0, GREY, "%s >%s< chose Rambo mode and will start in^4 5 seconds^3!", prefix, plr )
set_task( 1.0, "StartRambo", _, _, _, "a", StartTimer + 1 )
e_LR = false
new ct_count, num, players[32], tempid
get_players ( players, num )
for ( new i = 0; i < num; i++ )
{
tempid = players [ i ]
if ( cs_get_user_team ( tempid ) == CS_TEAM_CT && is_user_alive ( tempid ) )
ct_count++
strip_user_weapons ( tempid )
}
strip_user_weapons ( iPlayer )
}
}
public StartRambo ( iPlayer)
{
if( StartTimer > 0 )
{
set_hudmessage ( 255, 255, 255, -1.0, 0.35, 0, 0.1, 1.0, 0.1, 0.1, 4 )
show_hudmessage ( 0, "Rambo starting in %i....", StartTimer )
StartTimer--
}
else
{
new ct_count, num, players[32], tempid
get_players ( players, num )
for ( new i = 0; i < num; i++ )
{
tempid = players [ i ]
if ( cs_get_user_team ( tempid ) == CS_TEAM_CT && is_user_alive ( tempid ) )
{
ct_count++
set_user_health ( tempid, 100 )
give_item ( tempid, "weapon_knife" )
give_item ( tempid, "weapon_deagle" )
cs_set_user_bpammo ( tempid, CSW_DEAGLE, 35 )
give_item ( tempid, "weapon_m4a1" )
cs_set_user_bpammo ( tempid, CSW_M4A1, 90 )
cs_set_user_armor ( tempid, 100, CS_ARMOR_VESTHELM )
}
}
set_user_health ( iPlayer_LastPrisoner, 150 * ct_count )
give_item ( iPlayer_LastPrisoner, "weapon_knife" )
give_item ( iPlayer_LastPrisoner, "weapon_m249" )
cs_set_user_bpammo ( iPlayer_LastPrisoner, CSW_M249, 200 )
cs_set_user_armor ( iPlayer_LastPrisoner, 100, CS_ARMOR_VESTHELM )
set_pev(iPlayer_LastPrisoner, pev_viewmodel2, g_szRambo );
set_pev(iPlayer_LastPrisoner, pev_weaponmodel2, g_szRambo2 );
Beacon [ iPlayer_LastPrisoner ] = true
e_Rambo = true
}
return PLUGIN_HANDLED
}
public DodgeBallMenu( iPlayer )
{
if ( e_LR )
{
new DodgeBallMenu = menu_create ( "[SG] Last Request Menu^nDodgeBall Explosive^nPick an opponent!", "DodgeBallMenu_Handle" )
new num, players[32], tempid, szTempID [ 10 ], tempname [ 32 ]
get_players ( players, num, "a" )
for ( new i = 0; i < num; i++ )
{
tempid = players [ i ]
if ( cs_get_user_team ( tempid ) != CS_TEAM_CT )
continue
get_user_name ( tempid, tempname, 31 )
num_to_str ( tempid, szTempID, 9 )
menu_additem (DodgeBallMenu, tempname, szTempID, 0 )
}
menu_display ( iPlayer, DodgeBallMenu )
}
return PLUGIN_HANDLED
}
public DodgeBallMenu_Handle( iPlayer, menu, item )
{
if ( item == MENU_EXIT )
{
menu_destroy ( menu )
return PLUGIN_HANDLED;
}
new data [ 8 ], iName [ 64 ]
new access, callback
menu_item_getinfo ( menu, item, access, data,7, iName, 63, callback )
new tempid = str_to_num ( data )
new tempname [ 32 ], tempname2 [ 32 ]
get_user_name ( iPlayer, tempname, 31 )
get_user_name ( tempid, tempname2, 31 )
ColorChat ( 0, GREY, "%s >%s< chose^4 DodgeBall Explosive^3 vs^4 %s^3 and will start in^4 5 seconds^3!", prefix, tempname, tempname2 )
e_LR = false
e_DB = true
iPlayer_LastGuard = tempid
strip_user_weapons ( iPlayer_LastPrisoner )
strip_user_weapons ( iPlayer_LastGuard )
Beacon [ iPlayer_LastGuard ] = true
Beacon [ iPlayer_LastPrisoner ] = true
set_task( 1.0, "StartDodgeBall", _, _, _, "a", StartTimerDB + 1 )
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public StartDodgeBall()
{
if( StartTimerDB> 0 )
{
set_hudmessage ( 255, 255, 255, -1.0, 0.35, 0, 0.1, 1.0, 0.1, 0.1, 4 )
show_hudmessage ( 0, "DodgeBall Explosive Duel starting in %i....", StartTimerDB )
StartTimerDB--
}
else
{
strip_user_weapons ( iPlayer_LastGuard )
set_user_health ( iPlayer_LastGuard, 100 )
give_item ( iPlayer_LastGuard, "weapon_knife" )
give_item ( iPlayer_LastGuard, "weapon_hegrenade" )
cs_set_user_bpammo ( iPlayer_LastGuard, CSW_HEGRENADE, 100 )
cs_set_user_armor ( iPlayer_LastGuard, 100, CS_ARMOR_VESTHELM )
set_pev( iPlayer_LastGuard, pev_viewmodel2, g_szDodgeball );
set_pev( iPlayer_LastGuard, pev_weaponmodel2, g_szDodgeball2 );
strip_user_weapons ( iPlayer_LastPrisoner )
set_user_health ( iPlayer_LastPrisoner, 100 )
give_item ( iPlayer_LastPrisoner, "weapon_knife" )
give_item ( iPlayer_LastPrisoner, "weapon_hegrenade" )
cs_set_user_bpammo ( iPlayer_LastPrisoner, CSW_HEGRENADE, 100)
cs_set_user_armor ( iPlayer_LastPrisoner, 100, CS_ARMOR_VESTHELM )
set_pev( iPlayer_LastPrisoner, pev_viewmodel2, g_szDodgeball );
set_pev( iPlayer_LastPrisoner, pev_weaponmodel2, g_szDodgeball2 );
}
return PLUGIN_HANDLED
}
public BoxingMenu( iPlayer )
{
if ( e_LR )
{
new BoxingMenu = menu_create ( "[SG] Last Request Menu^n300(500) & Fists Duel^nPick amount of HP!", "BoxingMenu_Handle" )
menu_additem ( BoxingMenu, "300 HP", "1", 0 )
menu_additem ( BoxingMenu, "500 HP", "2", 0 )
menu_setprop ( BoxingMenu, MPROP_EXIT, MEXIT_ALL )
menu_display ( iPlayer, BoxingMenu, 0 )
}
}
public BoxingMenu_Handle ( iPlayer, menu, item )
{
if ( item == MENU_EXIT )
{
menu_destroy ( menu )
return PLUGIN_HANDLED
}
new data [ 8 ], name [ 64 ]
new access, callback
menu_item_getinfo ( menu, item, access, data, 7, name, 63, callback )
new key = str_to_num ( data )
switch ( key )
{
case 1:
{
BoxingMenu2 ( iPlayer )
lr_hp = 300
}
case 2:
{
BoxingMenu2 ( iPlayer )
lr_hp = 500
}
}
return PLUGIN_CONTINUE
}
public BoxingMenu2 ( iPlayer )
{
new BoxingMenu = menu_create ( "[SG] Last Request Menu^n300(500) & Fists Duel^nPick an opponent!", "BoxingMenu2_Handle" )
new num, players[32], tempid, szTempID [ 10 ], tempname [ 32 ]
get_players ( players, num, "a" )
for ( new i = 0; i < num; i++ )
{
tempid = players [ i ]
if ( cs_get_user_team ( tempid ) != CS_TEAM_CT )
continue
get_user_name ( tempid, tempname, 31 )
num_to_str ( tempid, szTempID, 9 )
menu_additem ( BoxingMenu, tempname, szTempID, 0 )
}
menu_display ( iPlayer, BoxingMenu)
return PLUGIN_HANDLED
}
public BoxingMenu2_Handle ( iPlayer, menu, item )
{
if ( item == MENU_EXIT )
{
menu_destroy ( menu )
return PLUGIN_HANDLED;
}
new data [ 8 ], iName [ 64 ]
new access, callback
menu_item_getinfo ( menu, item, access, data,7, iName, 63, callback )
new tempid = str_to_num ( data )
strip_user_weapons ( tempid )
strip_user_weapons ( iPlayer )
set_user_health ( tempid, lr_hp )
set_user_health ( iPlayer, lr_hp )
give_item ( tempid, "weapon_knife" )
give_item ( iPlayer, "weapon_knife" )
set_pev(iPlayer_LastGuard, pev_viewmodel2, g_szFists);
set_pev(iPlayer_LastGuard, pev_viewmodel2, g_szFists);
set_pev(iPlayer_LastPrisoner, pev_viewmodel2, g_szFists);
set_pev(iPlayer_LastPrisoner, pev_viewmodel2, g_szFists);
new tempname [ 32 ], tempname2 [ 32 ]
get_user_name ( iPlayer, tempname, 31 )
get_user_name ( tempid, tempname2, 31 )
ColorChat ( 0, GREY, "%s >^4 %s^3 < chose^4 300(500) & Fists Duel^3 [^4 %i HP^3 ] as his last request vs >^4 %s^3 <", prefix, tempname, lr_hp, tempname2 )
e_LR = false
e_Boxing = true
iPlayer_LastGuard = tempid
Beacon [ iPlayer_LastGuard ] = true
Beacon [ iPlayer_LastPrisoner ] = true
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public client_disconnect ( iPlayer )
{
if ( iPlayer == iPlayer_LastGuard || iPlayer == iPlayer_LastPrisoner )
{
Beacon [ iPlayer_LastGuard ] = false
Beacon [ iPlayer_LastPrisoner ] = false
iPlayer_LastPrisoner = -1
iPlayer_LastGuard = -1
e_LR = false
e_Rambo = false
e_S4S = false
e_Knife = false
e_SC = false
e_GT = false
e_CB = false
e_DB = false
e_Boxing = false
StartTimer = 5
StartTimerCB = 5
StartTimerDB = 5
}
}
public event_DeathMsg ( iPlayer )
{
new iKiller = read_data ( 1 )
new iVictim = read_data ( 2 )
new name_killer [ 32 ], name_victim [ 32 ]
get_user_name ( iKiller, name_killer, 31 )
get_user_name ( iVictim, name_victim, 31 )
new t_count, ct_count, num, players[32], tempid
get_players ( players, num )
for ( new i = 0; i < num; i++ )
{
tempid = players [ i ]
if ( cs_get_user_team ( tempid ) == CS_TEAM_T && is_user_alive ( tempid ) )
t_count++
if ( cs_get_user_team ( tempid ) == CS_TEAM_CT && is_user_alive ( tempid ) )
ct_count++
}
if ( !e_Rambo )
{
if ( t_count == 1 && ct_count > 0)
{
ColorChat ( 0, GREY, "%s The last^4 Prisoner^3 can now get a^4 Last Request^3 - Type^4 /lr^3 to open menu!", prefix )
e_LR = true
}
else e_LR = false
}
if ( e_Knife )
{
if ( iVictim == iPlayer_LastPrisoner || iVictim == iPlayer_LastGuard )
{
ColorChat ( 0, GREY, "%s >^4 %s^3 < won the^4 Ninja Duel^3 (^4 %i HP^3 ) against >^4 %s^3 <!", prefix, name_killer, lr_hp, name_victim )
e_Knife = false
e_LR = true
Beacon [ iPlayer_LastGuard ] = false
Beacon [ iPlayer_LastPrisoner ] = false
if ( is_user_alive ( iPlayer_LastPrisoner ) )
{
strip_user_weapons ( iPlayer_LastPrisoner )
set_user_health ( iPlayer_LastPrisoner, 100 )
cs_set_user_armor ( iPlayer_LastPrisoner, 0, CS_ARMOR_VESTHELM )
give_item ( iPlayer_LastPrisoner, "weapon_knife" )
}
if ( is_user_alive ( iPlayer_LastGuard) )
{
strip_user_weapons ( iPlayer_LastGuard )
set_user_health ( iPlayer_LastGuard, 100 )
cs_set_user_armor ( iPlayer_LastGuard, 100, CS_ARMOR_VESTHELM )
give_item ( iPlayer_LastGuard, "weapon_knife" )
give_item ( iPlayer_LastGuard, "weapon_deagle" )
cs_set_user_bpammo ( iPlayer_LastGuard, CSW_DEAGLE, 35 )
give_item ( iPlayer_LastGuard, "weapon_m4a1" )
cs_set_user_bpammo ( iPlayer_LastGuard, CSW_M4A1, 90 )
}
}
}
if ( e_S4S )
{
if ( iVictim == iPlayer_LastPrisoner || iVictim == iPlayer_LastGuard )
{
ColorChat ( 0, GREY, "%s >^4 %s^3 < won the^4 Raging Bull Shot 4 Shot^3 against >^4 %s^3 <!", prefix, name_killer, name_victim )
e_S4S = false
e_LR = true
Beacon [ iPlayer_LastGuard ] = false
Beacon [ iPlayer_LastPrisoner ] = false
if ( is_user_alive ( iPlayer_LastPrisoner ) )
{
strip_user_weapons ( iPlayer_LastPrisoner )
set_user_health ( iPlayer_LastPrisoner, 100 )
cs_set_user_armor ( iPlayer_LastPrisoner, 0, CS_ARMOR_VESTHELM )
give_item ( iPlayer_LastPrisoner, "weapon_knife" )
}
if ( is_user_alive ( iPlayer_LastGuard) )
{
strip_user_weapons ( iPlayer_LastGuard )
set_user_health ( iPlayer_LastGuard, 100 )
cs_set_user_armor ( iPlayer_LastGuard, 100, CS_ARMOR_VESTHELM )
give_item ( iPlayer_LastGuard, "weapon_knife" )
give_item ( iPlayer_LastGuard, "weapon_deagle" )
cs_set_user_bpammo ( iPlayer_LastGuard, CSW_DEAGLE, 35 )
give_item ( iPlayer_LastGuard, "weapon_m4a1" )
cs_set_user_bpammo ( iPlayer_LastGuard, CSW_M4A1, 90 )
}
}
}
if ( e_CB )
{
if ( iVictim == iPlayer_LastPrisoner || iVictim == iPlayer_LastGuard )
{
ColorChat ( 0, GREY, "%s >^4 %s^3 < won the^4 1337 Duel^3 against >^4 %s^3 <!", prefix, name_killer, name_victim )
e_CB = false
e_LR = true
StartTimerCB = 5
Beacon [ iPlayer_LastGuard ] = false
Beacon [ iPlayer_LastPrisoner ] = false
if ( is_user_alive ( iPlayer_LastPrisoner ) )
{
strip_user_weapons ( iPlayer_LastPrisoner )
set_user_health ( iPlayer_LastPrisoner, 100 )
cs_set_user_armor ( iPlayer_LastPrisoner, 0, CS_ARMOR_VESTHELM )
give_item ( iPlayer_LastPrisoner, "weapon_knife" )
}
if ( is_user_alive ( iPlayer_LastGuard) )
{
strip_user_weapons ( iPlayer_LastGuard )
set_user_health ( iPlayer_LastGuard, 100 )
cs_set_user_armor ( iPlayer_LastGuard, 100, CS_ARMOR_VESTHELM )
give_item ( iPlayer_LastGuard, "weapon_knife" )
give_item ( iPlayer_LastGuard, "weapon_deagle" )
cs_set_user_bpammo ( iPlayer_LastGuard, CSW_DEAGLE, 35 )
give_item ( iPlayer_LastGuard, "weapon_m4a1" )
cs_set_user_bpammo ( iPlayer_LastGuard, CSW_M4A1, 90 )
}
}
}
if ( e_GT )
{
if ( iVictim == iPlayer_LastPrisoner || iVictim == iPlayer_LastGuard )
{
ColorChat ( 0, GREY, "%s >^4 %s^3 < won the^4 Gun Toss^3 against >^4 %s^3 <!", prefix, name_killer, name_victim )
e_GT = false
e_LR = true
Beacon [ iPlayer_LastGuard ] = false
Beacon [ iPlayer_LastPrisoner ] = false
if ( is_user_alive ( iPlayer_LastPrisoner ) )
{
strip_user_weapons ( iPlayer_LastPrisoner )
set_user_health ( iPlayer_LastPrisoner, 100 )
cs_set_user_armor ( iPlayer_LastPrisoner, 0, CS_ARMOR_VESTHELM )
give_item ( iPlayer_LastPrisoner, "weapon_knife" )
}
if ( is_user_alive ( iPlayer_LastGuard) )
{
strip_user_weapons ( iPlayer_LastGuard )
set_user_health ( iPlayer_LastGuard, 100 )
cs_set_user_armor ( iPlayer_LastGuard, 100, CS_ARMOR_VESTHELM )
give_item ( iPlayer_LastGuard, "weapon_knife" )
give_item ( iPlayer_LastGuard, "weapon_deagle" )
cs_set_user_bpammo ( iPlayer_LastGuard, CSW_DEAGLE, 35 )
give_item ( iPlayer_LastGuard, "weapon_m4a1" )
cs_set_user_bpammo ( iPlayer_LastGuard, CSW_M4A1, 90 )
}
}
}
if ( e_SC )
{
if ( iVictim == iPlayer_LastPrisoner || iVictim == iPlayer_LastGuard )
{
ColorChat ( 0, GREY, "%s >^4 %s^3 < won the^4 Spray Olympia^3 against >^4 %s^3 <!", prefix, name_killer, name_victim )
e_SC = false
e_LR = true
Beacon [ iPlayer_LastGuard ] = false
Beacon [ iPlayer_LastPrisoner ] = false
if ( is_user_alive ( iPlayer_LastPrisoner ) )
{
strip_user_weapons ( iPlayer_LastPrisoner )
set_user_health ( iPlayer_LastPrisoner, 100 )
cs_set_user_armor ( iPlayer_LastPrisoner, 0, CS_ARMOR_VESTHELM )
give_item ( iPlayer_LastPrisoner, "weapon_knife" )
}
if ( is_user_alive ( iPlayer_LastGuard) )
{
strip_user_weapons ( iPlayer_LastGuard )
set_user_health ( iPlayer_LastGuard, 100 )
cs_set_user_armor ( iPlayer_LastGuard, 100, CS_ARMOR_VESTHELM )
give_item ( iPlayer_LastGuard, "weapon_knife" )
give_item ( iPlayer_LastGuard, "weapon_deagle" )
cs_set_user_bpammo ( iPlayer_LastGuard, CSW_DEAGLE, 35 )
give_item ( iPlayer_LastGuard, "weapon_m4a1" )
cs_set_user_bpammo ( iPlayer_LastGuard, CSW_M4A1, 90 )
}
}
}
if ( e_Rambo )
{
if ( iVictim == iPlayer_LastPrisoner )
{
ColorChat ( 0, GREY, "%s >^4 %s^3 < killed^4 Rambo^3!", prefix, name_killer )
e_Rambo = false
Beacon [ iPlayer_LastPrisoner ] = false
StartTimer = 5
}
else if ( ct_count == 0 )
{
ColorChat ( 0, GREY, "%s >^4 %s^3 < killed all the^4 guards^3 and won the^4 Rambo run^3!", prefix, name_killer )
e_Rambo = false
Beacon [ iPlayer_LastPrisoner ] = false
StartTimer = 5
}
}
}
if ( e_DB )
{
if ( iVictim == iPlayer_LastPrisoner || iVictim == iPlayer_LastGuard )
{
ColorChat ( 0, GREY, "%s >^4 %s^3 < won the^4 DodgeBall Explosive Duel^3 against >^4 %s^3 <!", prefix, name_killer, name_victim )
e_DB = false
e_LR = true
StartTimerDB = 5
Beacon [ iPlayer_LastGuard ] = false
Beacon [ iPlayer_LastPrisoner ] = false
if ( is_user_alive ( iPlayer_LastPrisoner ) )
{
strip_user_weapons ( iPlayer_LastPrisoner )
set_user_health ( iPlayer_LastPrisoner, 100 )
cs_set_user_armor ( iPlayer_LastPrisoner, 0, CS_ARMOR_VESTHELM )
give_item ( iPlayer_LastPrisoner, "weapon_knife" )
}
if ( is_user_alive ( iPlayer_LastGuard) )
{
strip_user_weapons ( iPlayer_LastGuard )
set_user_health ( iPlayer_LastGuard, 100 )
cs_set_user_armor ( iPlayer_LastGuard, 100, CS_ARMOR_VESTHELM )
give_item ( iPlayer_LastGuard, "weapon_knife" )
give_item ( iPlayer_LastGuard, "weapon_deagle" )
cs_set_user_bpammo ( iPlayer_LastGuard, CSW_DEAGLE, 35 )
give_item ( iPlayer_LastGuard, "weapon_m4a1" )
cs_set_user_bpammo ( iPlayer_LastGuard, CSW_M4A1, 90 )
}
}
}
if ( e_Boxing)
{
if ( iVictim == iPlayer_LastPrisoner || iVictim == iPlayer_LastGuard )
{
ColorChat ( 0, GREY, "%s >^4 %s^3 < won the^4 300(500) & Fists Duel^3 (^4 %i HP^3 ) against >^4 %s^3 <!", prefix, name_killer, lr_hp, name_victim )
e_Boxing= false
e_LR = true
Beacon [ iPlayer_LastGuard ] = false
Beacon [ iPlayer_LastPrisoner ] = false
if ( is_user_alive ( iPlayer_LastPrisoner ) )
{
strip_user_weapons ( iPlayer_LastPrisoner )
set_user_health ( iPlayer_LastPrisoner, 100 )
cs_set_user_armor ( iPlayer_LastPrisoner, 0, CS_ARMOR_VESTHELM )
give_item ( iPlayer_LastPrisoner, "weapon_knife" )
}
if ( is_user_alive ( iPlayer_LastGuard) )
{
strip_user_weapons ( iPlayer_LastGuard )
set_user_health ( iPlayer_LastGuard, 100 )
cs_set_user_armor ( iPlayer_LastGuard, 100, CS_ARMOR_VESTHELM )
give_item ( iPlayer_LastGuard, "weapon_knife" )
give_item ( iPlayer_LastGuard, "weapon_deagle" )
cs_set_user_bpammo ( iPlayer_LastGuard, CSW_DEAGLE, 35 )
give_item ( iPlayer_LastGuard, "weapon_m4a1" )
cs_set_user_bpammo ( iPlayer_LastGuard, CSW_M4A1, 90 )
}
}
return PLUGIN_CONTINUE
}
public EventRoundStart ( iPlayer )
{
new t_count, ct_count, num, players[32], tempid
get_players ( players, num )
for ( new i = 0; i < num; i++ )
{
tempid = players [ i ]
if ( cs_get_user_team ( tempid ) == CS_TEAM_T && is_user_alive ( tempid ) )
t_count++
if ( cs_get_user_team ( tempid ) == CS_TEAM_CT && is_user_alive ( tempid ) )
ct_count++
}
Beacon [ iPlayer_LastGuard ] = false
Beacon [ iPlayer_LastPrisoner ] = false
iPlayer_LastPrisoner = -1
iPlayer_LastGuard = -1
e_LR = false
e_Rambo = false
e_S4S = false
e_Knife = false
e_SC = false
e_GT = false
e_CB = false
e_DB = false
e_Boxing = false
client_cmd ( iPlayer, "slot10" )
if ( !( t_count != 1 && ct_count > 0 ) )
{
e_LR = false
return PLUGIN_HANDLED
}
ColorChat ( 0, GREY, "%s The last^4 Prisoner^3 can now get a^4 Last Request^3 - Type^4 /lr^3 to open menu!", prefix )
e_LR = true
return PLUGIN_CONTINUE
}
public EventRoundEnd ( iPlayer )
{
Beacon [ iPlayer_LastGuard ] = false
Beacon [ iPlayer_LastPrisoner ] = false
iPlayer_LastPrisoner = -1
iPlayer_LastGuard = -1
e_LR = false
e_Rambo = false
e_S4S = false
e_Knife = false
e_SC = false
e_GT = false
e_CB = false
e_DB = false
e_Boxing = false
StartTimer = 5
client_cmd ( iPlayer, "slot10" )
}
public EventSpray ( )
{
new iOrigin[ 3 ];
iOrigin[ 0 ] = read_data( 3 );
iOrigin[ 1 ] = read_data( 4 );
iOrigin[ 2 ] = read_data( 5 );
new Float:vecOrigin[ 3 ];
IVecFVec( iOrigin, vecOrigin );
new iPlayer = read_data( 2 );
// get direction player is aiming
new Float:vecDirection[ 3 ];
velocity_by_aim( iPlayer, 5, vecDirection );
// add the aim direction into the wall for a stop origin
new Float:vecStop[ 3 ];
xs_vec_add( vecOrigin, vecDirection, vecStop );
// reverse the direction to go away from wall
xs_vec_mul_scalar( vecDirection, -1.0, vecDirection );
// add the aim direction way from the wall for a start origin
new Float:vecStart[ 3 ];
xs_vec_add( vecOrigin, vecDirection, vecStart );
// trace from start to stop to get where the wall position is
engfunc( EngFunc_TraceLine, vecStart, vecStop, IGNORE_MONSTERS, -1, 0 );
// find the normal vector of the wall
get_tr2( 0, TR_vecPlaneNormal, vecDirection );
// remove and up/down direction from the normal vector
vecDirection[ 2 ] = 0.0;
// normalize the direction so scaling it will be correct
xs_vec_normalize( vecDirection, vecDirection );
// get direction perpendicular away from the wall
xs_vec_mul_scalar( vecDirection, 5.0, vecDirection );
// add direction away from wall to spray origin for a safe area to trace to floor
xs_vec_add( vecOrigin, vecDirection, vecStart );
// set the stop origin 9999.0 units below the start origin
xs_vec_copy( vecStart, vecStop );
vecStop[ 2 ] -= 9999.0;
engfunc( EngFunc_TraceLine, vecStart, vecStop, IGNORE_MONSTERS, -1, 0 );
get_tr2( 0, TR_vecEndPos, vecStop );
new szName[ 32 ];
get_user_name( iPlayer, szName, charsmax( szName ) );
if ( e_SC && iPlayer == iPlayer_LastGuard || iPlayer_LastPrisoner ) ColorChat ( 0, GREY, "^4[SG] Spray Distance^3: %s sprayed^4 %f^3 units above the ground!", szName, ( vecStart[ 2 ] - vecStop[ 2 ] ) )
//client_print( 0, print_chat, "%s sprayed %f units above the ground", szName, ( vecStart[ 2 ] - vecStop[ 2 ] ) );
return PLUGIN_CONTINUE
}
public Event_Primary_Attack_Deagle ( ent )
{
if( !e_S4S || CSW_DEAGLE < 0 )
return HAM_IGNORED
new iPlayer = pev( ent, pev_owner );
if( ( iPlayer != iPlayer_LastGuard ) && ( iPlayer != iPlayer_LastPrisoner ) || !is_user_alive( iPlayer ) )
return HAM_IGNORED
swap_weapons( iPlayer, iPlayer == iPlayer_LastPrisoner ? iPlayer_LastGuard : iPlayer_LastPrisoner, "weapon_deagle" )
return HAM_HANDLED
}
public swap_weapons ( iPlayer, iPlayer2, const weapon[] )
{
if ( is_user_alive( iPlayer2 ) )
{
strip_user_weapons( iPlayer2 )
give_item ( iPlayer2, "weapon_knife" )
cs_set_weapon_ammo ( give_item( iPlayer2, "weapon_deagle" ), 1 )
cs_set_user_bpammo ( iPlayer2, CSW_DEAGLE, 0 )
strip_user_weapons ( iPlayer )
give_item ( iPlayer, "weapon_knife" )
}
return PLUGIN_HANDLED
}
__________________
|
|