Код:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <engine>
#include <fakemeta_util>
#include <hamsandwich>
#include <fakemeta_stocks>
#include <fun>
#include <dhudmessage>
#include <colortext>
#include < DeathrunManager >
#define PLUGIN "Режимы"
#define VERSION "1.0"
#define AUTHOR "CaNiBaL"
#define TASK_SHOWINFO 104500
// monster tasks 20-50
#define INFORMERID 777020
#define TASK_INFUR_HUD 777010
#define is_user_connected_v_a(%1,%2) (is_user_connected(%1) && is_user_connected(%2)) // Приконекчены ли (атакующий и жертва)
new Float:g_vec[2][3]
new szTimeBlocked
new const Tag[] = "^4[Режим]";
new MaxPlayers;
/*SNOWMAN*/
#define get_gun_owner(%1) get_pdata_cbase(%1, 41, 4)
#define SnowballVModel "models/n21_deathrun/snowball/v_snowball.mdl"
#define SnowballPModel "models/n21_deathrun/snowball/p_snowball.mdl"
#define SnowballWModel "models/n21_deathrun/snowball/w_snowball.mdl"
#define g_wSmoke "models/w_smokegrenade.mdl"
#define SoundHit "n21_deathrun/snowball/impalehit.wav"
#define SoundLaunch "n21_deathrun/snowball/impalelaunch1.wav"
#define SoundSplash "n21_deathrun/snowball/splash.wav"
#define GLASS "models/glassgibs.mdl"
#define RING "sprites/shockwave.spr"
#define TRAIL "sprites/laserbeam.spr"
#define SNOWDAMAGE 50.0
#define FREEZETIME 3.0
#define CHILLTIME 8.0
#define TERHEALTH 300.0
#define SNOWBALLSPEED 2000.0
#define FROST_R 0
#define FROST_G 206
#define FROST_B 209
#define TASK_REMOVE 1337
new snowman
new g_frozen[33]
new g_glassSpr ,g_Spr, trailSpr
new snow_rounds, snow_buttons, snow_touch, cfg_snow_rounds, cfg_snow_buttons, cfg_snow_touch, snow_rounds_left
/*SNOWMEN END*/
//other
new plugin_work, random_mode;
new MenuUse = 0, InformerMode, g_MsgHud1, ButtonsUse , TouchWeapon, Partner
// informer
new bool:Last
new rambo, rambo_rounds_left
new free, free_rounds_left
new invis, invis_rounds_left
new infur, infur_rounds_left
new traps
new race, race_rounds_left
#include <rambo>
//rambo
new rambo_rounds, rambo_health_t, rambo_health_ct, rambo_partner,
rambo_buttons, rambo_touch
new cfg_rambo_rounds, cfg_rambo_health_t, cfg_rambo_health_ct, cfg_rambo_partner,
cfg_rambo_buttons, cfg_rambo_touch
//invis
new invis_rounds, invis_health_t, invis_health_ct,
invis_buttons, invis_touch
new cfg_invis_rounds, cfg_invis_health_t, cfg_invis_health_ct,
cfg_invis_buttons, cfg_invis_touch
//infur
new infur_rounds, infur_health_t, infur_health_ct,
infur_buttons, infur_touch
new cfg_infur_rounds, cfg_infur_health_t, cfg_infur_health_ct,
cfg_infur_buttons, cfg_infur_touch
//free
new free_rounds, free_buttons, free_touch
new cfg_free_rounds, cfg_free_buttons, cfg_free_touch
//traps
new traps_buttons, traps_touch, traps_health_t
new cfg_traps_buttons,
cfg_traps_touch, cfg_traps_health_t
//race
new race_rounds, race_health_t, race_touch, race_buttons
new cfg_race_rounds, cfg_race_health_t, cfg_race_touch, cfg_race_buttons
//new money lol
new money_rounds_left, cfg_money_rounds
new money_rounds, cfg_money_touch, cfg_money_buttons, money_buttons, money
new rejim_activated
new szPlayers[32], szNum, Player
//vampire
new vampire_rounds_left, cfg_vampire_rounds, vampire_health_t
new cfg_vampire_touch, cfg_vampire_buttons, vampire, cfg_vampire_health_t
//Таймер!
new seconds
new Timer
//offsets
#if cellbits == 32
const OFFSET_HE_AMMO = 388
#else
const OFFSET_HE_AMMO = 437
#endif
const OFFSET_LINUX = 5
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_menucmd(register_menuid("Last Menu"), 511, "ActionLastMenu")
register_menucmd(register_menuid("Modes Menu"), 1023, "func_menu")
register_dictionary( "ModsLang.txt" );
set_task(5.0, "load_cfg")
MaxPlayers = get_maxplayers()
register_clcmd("drop","dropcmd")
g_MaxPlayers = get_maxplayers()
/*g_Vault = nvault_open("mods")
if (g_Vault == INVALID_HANDLE)
set_fail_state("Error opening nVault file!")*/
set_task(1.0, "Show_Info", INFORMERID, "", 0, "b");
InformerMode = register_cvar("deathrun_mode", "NOTHING")
g_MsgHud1 = CreateHudSyncObj()
/*SNOW*/
register_forward(FM_Touch, "fw_Touch", 1)
register_forward(FM_SetModel, "fw_SetModel")
register_forward(FM_EmitSound, "fw_EmitSound")
register_forward(FM_PlayerPreThink, "fw_think")
RegisterHam(Ham_Spawn, "player", "hook_spawn_post", 1)
RegisterHam(Ham_Item_Deploy,"weapon_smokegrenade","CurWeapon", 1)
register_message(get_user_msgid("TextMsg"), "block_message")
register_message(get_user_msgid("SendAudio"), "block_sound")
snow_rounds = register_cvar( "dm_snow_rounds", "3" );
snow_buttons = register_cvar( "dm_snow_buttons", "0" );
snow_touch = register_cvar( "dm_snow_touch", "0" );
/*end Snow*/
m249 = register_cvar("dm_minigun_speed","0.9")
DMGMG = register_cvar("dm_minigun_damage","1.5")
clipstart = register_cvar("amx_ammo_mini","600")
register_forward(FM_CmdStart, "fwd_CmdStart")
register_forward(FM_PlayerPostThink, "fwPlayerPostThink", 1)
register_forward(FM_StartFrame, "fwd_StartFrame")
register_forward(FM_EmitSound,"fwd_emitsound")
register_forward(FM_UpdateClientData, "UpdateClientData_Post", 1)
register_forward(FM_Touch, "fw_Touch")
register_event("HLTV", "round_start", "a", "1=0", "2=0")
register_forward(FM_AddToFullPack, "AddToFullPack", 1)
RegisterHam(Ham_Spawn, "player", "fd_PlayerSpawn", 1)
RegisterHam(Ham_TakeDamage, "player", "player_TakeDamage")
RegisterHam(Ham_Use, "func_button", "fd_UseButton")
RegisterHam(Ham_Touch, "weaponbox", "fd_TouchWeapon")
RegisterHam(Ham_Touch, "armoury_entity", "fd_TouchWeapon")
RegisterHam(Ham_Touch, "weapon_shield", "fd_TouchWeapon")
RegisterHam(Ham_TakeDamage, "player", "FwdDamagePlayer"); // Получение урона.
register_forward(FM_SetModel, "fw_SetModel")
register_forward(FM_PlaybackEvent, "fwPlaybackEvent")
register_event("CurWeapon","event_curweapon_minigun","be", "1=1")
register_event("CurWeapon", "EventCurWeapon", "be", "1=1")
RegisterHam(Ham_Killed,"player","ham_player_kill")
RegisterHam(Ham_Killed, "player", "FwdKilledPlayer")
register_logevent("event_end",2,"1=Round_End");
register_event("TextMsg", "fwEvGameWillRestartIn", "a", "2=#Game_will_restart_in")
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
unregister_forward(FM_PrecacheEvent, g_fwid, 1)
//rambo
rambo_rounds = register_cvar( "dm_rambo_rounds", "4" );
rambo_health_t = register_cvar( "dm_rambo_health_t", "500" );
rambo_health_ct = register_cvar( "dm_rambo_health_ct", "150" );
rambo_buttons = register_cvar( "dm_rambo_buttons", "0" );
rambo_touch = register_cvar( "dm_rambo_touch", "1" );
rambo_partner = register_cvar( "dm_rambo_partner", "1" );
//infur
infur_rounds = register_cvar( "dm_infur_rounds", "8" );
infur_health_t = register_cvar( "dm_infur_health_t", "300" );
infur_health_ct = register_cvar( "dm_infur_health_ct", "150" );
infur_buttons = register_cvar( "dm_infur_buttons", "1" );
infur_touch = register_cvar( "dm_infur_touch", "1" );
//invis
invis_rounds = register_cvar( "dm_invis_rounds", "4" );
invis_health_t = register_cvar( "dm_invis_health_t", "350" );
invis_health_ct = register_cvar( "dm_invis_health_ct", "200" );
invis_buttons = register_cvar( "dm_invis_buttons", "0" );
invis_touch = register_cvar( "dm_invis_touch", "0" );
//free
free_rounds = register_cvar( "dm_free_rounds", "3" );
free_buttons = register_cvar( "dm_free_buttons", "0" );
free_touch = register_cvar( "dm_free_touch", "0" );
//traps
traps_buttons = register_cvar( "dm_traps_buttons", "1" );
traps_touch = register_cvar( "dm_traps_touch ", "1" );
traps_health_t = register_cvar( "dm_traps_health_t", "150" );
//race
race_rounds = register_cvar( "dm_race_rounds", "4" );
race_buttons = register_cvar( "dm_race_buttons", "0" );
race_health_t = register_cvar( "dm_race_health_t", "7000" );
race_touch = register_cvar( "dm_race_touch", "0" );
//money
money_rounds = register_cvar( "dm_money_rounds", "5" );
money_buttons = register_cvar( "dm_money_buttons", "0" );
vampire_health_t = register_cvar("dm_vampire_health_t","150")
}
/*SNOW BALLS*/
public CurWeapon(gun)
{
new id = get_gun_owner(gun)
if(snowman && cs_get_user_team(id) == CS_TEAM_T)
{
set_pev(id, pev_viewmodel2, SnowballVModel)
set_pev(id, pev_weaponmodel2, SnowballPModel)
}
}
public fw_think(id)
{
if(!is_user_connected(id))
return PLUGIN_CONTINUE
if(!is_user_alive(id) || !snowman || !g_frozen[id])
return PLUGIN_CONTINUE
set_pev(id, pev_velocity, Float:{ 0.0, 0.0, 0.0 })
return PLUGIN_CONTINUE
}
public fw_SetModel(entity, model[])
{
if (!snowman)
return FMRES_IGNORED
if (!equali(model, g_wSmoke))
return FMRES_IGNORED
new className[33]
pev(entity, pev_classname, className, 32)
if(equal(className, "weaponbox") || equal(className, "armoury_entity") || equal(className, "grenade"))
{
entity_set_float(entity, EV_FL_nextthink, get_gametime() + 99999.9)
new Float:Sonic[3]
pev(entity, pev_velocity, Sonic)
xs_vec_normalize(Sonic, Sonic)
xs_vec_mul_scalar(Sonic, SNOWBALLSPEED, Sonic)
set_pev(entity, pev_velocity, Sonic)
set_pev(entity, pev_gravity, 0.5)
set_pev(entity, pev_friction, 0.0)
set_beamfollow(entity,10,10,Float:{0.0, 200.0, 200.0},170)
engfunc(EngFunc_SetModel, entity, SnowballWModel)
set_pev(entity, pev_movetype, MOVETYPE_NOCLIP)
set_task(0.1, "change_solid", entity)
return FMRES_SUPERCEDE
}
return FMRES_IGNORED
}
public change_solid(ent)
{
if(is_valid_ent(ent))
set_pev(ent, pev_movetype, MOVETYPE_BOUNCE)
}
public fw_EmitSound(ent, channel, sample[], Float:volume, Float:attn, flags, pitch)
{
if(equal(sample, "weapons/grenade_hit1.wav") || equal(sample, "weapons/grenade_hit2.wav") || equal(sample, "weapons/grenade_hit3.wav"))
{
set_pev(ent, pev_velocity, {0.0, 0.0, 0.0})
set_pev(ent,pev_movetype,MOVETYPE_NONE)
set_rendering(ent)
emit_sound(ent, channel, SoundSplash, volume, attn, flags, pitch)
if(!task_exists(ent+TASK_REMOVE))
set_task(5.0,"Remove_Snowball",ent+TASK_REMOVE)
return FMRES_SUPERCEDE
}
return PLUGIN_CONTINUE
}
public hook_spawn_post(id)
{
if(g_frozen[id])
{
set_pev(id, pev_renderfx, kRenderFxGlowShell)
set_pev(id, pev_rendercolor, Float:{ 0.0, 0.0, 0.0 })
set_pev(id, pev_rendermode, kRenderNormal)
set_pev(id, pev_renderamt, 25.0)
g_frozen[id] = false
}
}
public Remove_Snowball(lol)
{
new ent = lol - TASK_REMOVE
if(ent && snowman)
if(is_valid_ent(ent))
remove_entity(ent)
}
public fw_Touch(Touched, Toucher)
{
if(!snowman)
return FMRES_IGNORED
if(!is_user_connected(Touched) || !is_valid_ent(Toucher))
return FMRES_IGNORED
new classname[64]
entity_get_string(Toucher, EV_SZ_classname, classname, 63)
if(!equali(classname, "grenade"))
return FMRES_IGNORED
entity_get_string(Touched, EV_SZ_classname, classname, 63)
if(!equali(classname, "player"))
return FMRES_IGNORED
if(g_frozen[Touched] || cs_get_user_team(Touched) != CS_TEAM_CT)
return FMRES_SUPERCEDE
remove_entity(Toucher)
new Float:originF[3]
entity_get_vector(Touched, EV_VEC_origin, originF)
emit_sound(Touched, CHAN_BODY, SoundHit, 1.0, ATTN_NORM, 0, PITCH_NORM)
if(pev(Touched, pev_health) > SNOWDAMAGE)
{
//new attacker = pev(Toucher,pev_owner)
//ExecuteHam(Ham_TakeDamage, Touched, 0, attacker, SNOWDAMAGE, DMG_ALWAYSGIB | DMG_BULLET)
set_pev(Touched, pev_health, pev(Touched, pev_health) - SNOWDAMAGE)
engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF, 0)
write_byte(TE_BEAMCYLINDER)
engfunc(EngFunc_WriteCoord, originF[0])
engfunc(EngFunc_WriteCoord, originF[1])
engfunc(EngFunc_WriteCoord, originF[2])
engfunc(EngFunc_WriteCoord, originF[0])
engfunc(EngFunc_WriteCoord, originF[1])
engfunc(EngFunc_WriteCoord, originF[2]+385.0)
write_short(g_Spr)
write_byte(0)
write_byte(0)
write_byte(4)
write_byte(60)
write_byte(0)
write_byte(0)
write_byte(100)
write_byte(200)
write_byte(200)
write_byte(0)
message_end()
engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF, 0)
write_byte(TE_BEAMCYLINDER)
engfunc(EngFunc_WriteCoord, originF[0])
engfunc(EngFunc_WriteCoord, originF[1])
engfunc(EngFunc_WriteCoord, originF[2])
engfunc(EngFunc_WriteCoord, originF[0])
engfunc(EngFunc_WriteCoord, originF[1])
engfunc(EngFunc_WriteCoord, originF[2]+470.0)
write_short(g_Spr)
write_byte(0)
write_byte(0)
write_byte(4)
write_byte(60)
write_byte(0)
write_byte(0)
write_byte(100)
write_byte(200)
write_byte(200)
write_byte(0)
message_end()
engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF, 0)
write_byte(TE_BEAMCYLINDER)
engfunc(EngFunc_WriteCoord, originF[0])
engfunc(EngFunc_WriteCoord, originF[1])
engfunc(EngFunc_WriteCoord, originF[2])
engfunc(EngFunc_WriteCoord, originF[0])
engfunc(EngFunc_WriteCoord, originF[1])
engfunc(EngFunc_WriteCoord, originF[2]+555.0)
write_short(g_Spr)
write_byte(0)
write_byte(0)
write_byte(4)
write_byte(60)
write_byte(0)
write_byte(0)
write_byte(100)
write_byte(200)
write_byte(200)
write_byte(0)
message_end()
}
else
{
unfrozen(Touched)
ExecuteHam(Ham_Killed, Touched, Touched, 0)
return FMRES_IGNORED
}
g_frozen[Touched] = true
if(pev(Touched, pev_flags) & FL_ONGROUND)
set_pev(Touched, pev_gravity, 999999.9)
else
set_pev(Touched, pev_gravity, 0.000001)
set_pev(Touched, pev_flags, pev(Touched, pev_flags) | FL_FROZEN)
//entity_set_int(Touched, EV_INT_solid, SOLID_NOT)
message_begin(MSG_ONE, get_user_msgid("ScreenFade"), _, Touched)
write_short(0)
write_short(0)
write_short(0x0004)
write_byte(0)
write_byte(50)
write_byte(200)
write_byte(100)
message_end()
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("Damage"), _, Touched)
write_byte(0)
write_byte(0)
write_long(DMG_DROWN)
write_coord(0)
write_coord(0)
write_coord(0)
message_end()
set_pev(Touched, pev_renderfx, kRenderFxGlowShell)
set_pev(Touched, pev_rendercolor, Float:{ 0.0, 100.0, 200.0 })
set_pev(Touched, pev_rendermode, kRenderNormal)
set_pev(Touched, pev_renderamt, 25.0)
set_task(FREEZETIME, "unfrozen", Touched)
return FMRES_IGNORED
}
public unfrozen(Touched)
{
if(!is_user_alive(Touched))
return PLUGIN_CONTINUE
//entity_set_int(Touched, EV_INT_solid, SOLID_SLIDEBOX)
set_pev(Touched, pev_flags, pev(Touched, pev_flags) & ~FL_FROZEN)
g_frozen[Touched] = false
set_pev(Touched, pev_gravity, 1.0)
set_pev(Touched, pev_renderfx, kRenderFxGlowShell)
set_pev(Touched, pev_rendercolor, Float:{ 0.0, 0.0, 0.0 })
set_pev(Touched, pev_rendermode, kRenderNormal)
set_pev(Touched, pev_renderamt, 25.0)
message_begin(MSG_ONE, get_user_msgid("ScreenFade"), _, Touched)
write_short((1<<12))
write_short(0)
write_short(0x0000)
write_byte(0)
write_byte(50)
write_byte(200)
write_byte(100)
message_end()
emit_sound(Touched, CHAN_BODY, SoundLaunch, 1.0, ATTN_NORM, 0, PITCH_NORM)
new origin[3]
get_user_origin(Touched, origin)
message_begin(MSG_PVS, SVC_TEMPENTITY, origin)
write_byte(TE_BREAKMODEL)
write_coord(origin[0])
write_coord(origin[1])
write_coord(origin[2] + 24)
write_coord(16)
write_coord(16)
write_coord(16)
write_coord(random_num(-50, 50))
write_coord(random_num(-50, 50))
write_coord(25)
write_byte(10)
write_short(g_glassSpr)
write_byte(10)
write_byte(25)
write_byte(0x01)
message_end()
return PLUGIN_CONTINUE
}
set_beamfollow(ent,life,width,Float:rgb[3],brightness)
{
//clear_beamfollow(ent);
message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
write_byte(TE_BEAMFOLLOW);
write_short(ent); // entity
write_short(trailSpr); // sprite
write_byte(life); // life
write_byte(width); // width
write_byte(floatround(rgb[0])); // red
write_byte(floatround(rgb[1])); // green
write_byte(floatround(rgb[2])); // blue
write_byte(brightness); // brightness
message_end();
}
public block_message()
{
if(!snowman)
return PLUGIN_CONTINUE
if(get_msg_args() != 5 || get_msg_argtype(5) != ARG_STRING)
{
return PLUGIN_CONTINUE
}
new arg5[20]
get_msg_arg_string(5, arg5, 19)
if(equal(arg5, "#Fire_in_the_hole"))
{
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
public block_sound(msgid, msg_dest, msg_entity)
{
if(!snowman)
return PLUGIN_CONTINUE
if(get_msg_args() != 3 || get_msg_argtype(2) != ARG_STRING)
{
return PLUGIN_HANDLED
}
new arg2[20]
get_msg_arg_string(2,arg2,19)
if(equal(arg2[1], "!MRAD_FIREINHOLE"))
{
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
stock ham_strip_weapon(id,weapon[])
{
if(!equal(weapon,"weapon_",7)) return 0
new wId = get_weaponid(weapon)
if(!wId) return 0
new wEnt
while((wEnt = engfunc(EngFunc_FindEntityByString,wEnt,"classname",weapon)) && pev(wEnt,pev_owner) != id) {}
if(!wEnt) return 0
if(get_user_weapon(id) == wId) ExecuteHamB(Ham_Weapon_RetireWeapon,wEnt)
if(!ExecuteHamB(Ham_RemovePlayerItem,id,wEnt)) return 0
ExecuteHamB(Ham_Item_Kill,wEnt)
set_pev(id,pev_weapons,pev(id,pev_weapons) & ~(1<<wId))
return 1
}
/*END SNOW*/
#define OFFSET_CLIPAMMO 51
#define OFFSET_LINUX_WEAPONS 4
#define fm_cs_set_weapon_ammo(%1,%2) set_pdata_int(%1, OFFSET_CLIPAMMO, %2, OFFSET_LINUX_WEAPONS)
#define m_pActiveItem 373
const NOCLIP_WPN_BS = ((1<<CSW_HEGRENADE)|(1<<CSW_SMOKEGRENADE)|(1<<CSW_FLASHBANG)|(1<<CSW_KNIFE)|(1<<CSW_C4))
new const g_MaxClipAmmo[] =
{
0,
13, //CSW_P228
0,
10, //CSW_SCOUT
0, //CSW_HEGRENADE
7, //CSW_XM1014
0, //CSW_C4
30,//CSW_MAC10
30, //CSW_AUG
0, //CSW_SMOKEGRENADE
15,//CSW_ELITE
20,//CSW_FIVESEVEN
25,//CSW_UMP45
30, //CSW_SG550
35, //CSW_GALIL
25, //CSW_FAMAS
12,//CSW_USP
20,//CSW_GLOCK18
10, //CSW_AWP
30,//CSW_MP5NAVY
100,//CSW_M249
8, //CSW_M3
30, //CSW_M4A1
30,//CSW_TMP
20, //CSW_G3SG1
0, //CSW_FLASHBANG
7, //CSW_DEAGLE
30, //CSW_SG552
30, //CSW_AK47
0, //CSW_KNIFE
50//CSW_P90
}
public EventCurWeapon(id)
{
if (!is_user_alive(id))
{
return;
}
new mode[32]
get_pcvar_string(InformerMode, mode, 31)
if (!equal (mode, "DUEL"))
{
static weapon, msgidCurWeapon;
weapon = get_user_weapon(id);
if (!msgidCurWeapon)
msgidCurWeapon = get_user_msgid("CurWeapon")
if (weapon == CSW_GLOCK18 && invis == 1)
{
new iWeapon = read_data(2)
if( !( NOCLIP_WPN_BS & (1<<iWeapon) ) )
{
fm_cs_set_weapon_ammo( get_pdata_cbase(id, m_pActiveItem) , g_MaxClipAmmo[ iWeapon ] )
}
message_begin(MSG_ONE, msgidCurWeapon, {0,0,0}, id);
write_byte(1);
write_byte(CSW_KNIFE);
write_byte(0) ;
message_end();
}
if (weapon == CSW_M249 && rambo == 1)
{
new iWeapon = read_data(2)
if( !( NOCLIP_WPN_BS & (1<<iWeapon) ) )
{
fm_cs_set_weapon_ammo( get_pdata_cbase(id, m_pActiveItem) , g_MaxClipAmmo[ iWeapon ] )
}
message_begin(MSG_ONE, msgidCurWeapon, {0,0,0}, id);
write_byte(1);
write_byte(CSW_KNIFE);
write_byte(0) ;
message_end();
}
}
}
public load_cfg()
{
new szMapName[ 64 ];
get_mapname(szMapName, 63);
if(equal(szMapName, "deathrun_skills"))
plugin_work = 0;
else
plugin_work = 1;
//rambo
cfg_rambo_rounds = get_pcvar_num(rambo_rounds)
cfg_rambo_health_t = get_pcvar_num(rambo_health_t)
cfg_rambo_health_ct = get_pcvar_num(rambo_health_ct)
cfg_rambo_buttons = get_pcvar_num(rambo_buttons)
cfg_rambo_touch = get_pcvar_num(rambo_touch)
cfg_rambo_partner = get_pcvar_num(rambo_partner)
//invis
cfg_invis_rounds = get_pcvar_num(invis_rounds)
cfg_invis_health_t = get_pcvar_num(invis_health_t)
cfg_invis_health_ct = get_pcvar_num(invis_health_ct)
cfg_invis_buttons = get_pcvar_num(invis_buttons)
cfg_invis_touch = get_pcvar_num(invis_touch)
//infur
cfg_infur_rounds = get_pcvar_num(infur_rounds)
cfg_infur_health_t = get_pcvar_num(infur_health_t)
cfg_infur_health_ct = get_pcvar_num(infur_health_ct)
cfg_infur_buttons = get_pcvar_num(infur_buttons)
cfg_infur_touch = get_pcvar_num(infur_touch)
//free
cfg_free_rounds = get_pcvar_num(free_rounds)
cfg_free_buttons = get_pcvar_num(free_buttons)
cfg_free_touch = get_pcvar_num(free_touch)
//traps
cfg_traps_buttons = get_pcvar_num(traps_buttons)
cfg_traps_touch = get_pcvar_num(traps_touch)
cfg_traps_health_t = get_pcvar_num(traps_health_t)
cfg_race_rounds = get_pcvar_num(race_rounds)
cfg_race_health_t = get_pcvar_num(race_health_t)
cfg_race_touch = get_pcvar_num(race_touch)
cfg_race_buttons = get_pcvar_num(race_buttons)
//money
cfg_money_rounds = get_pcvar_num(money_rounds)
cfg_money_buttons = get_pcvar_num(money_buttons)
//vampire
cfg_vampire_rounds = get_pcvar_num(money_rounds)
cfg_vampire_buttons = get_pcvar_num(money_buttons)
cfg_vampire_health_t = get_pcvar_num(vampire_health_t)
//snow
cfg_snow_rounds = get_pcvar_num(snow_rounds)
cfg_snow_buttons = get_pcvar_num(snow_buttons)
cfg_snow_touch = get_pcvar_num(snow_touch)
}
public plugin_precache()
{
//minigun
precache_model(P_MODEL)
precache_model("models/player/dr_vampir/dr_vampir.mdl")
precache_model("models/player/terminator/terminator.mdl")
precache_model("models/player/chuky/chuky.mdl")
precache_model("models/player/chuky/chukyT.mdl")
precache_model("models/player/new_year_t/new_year_t.mdl")
precache_model(V_MODEL)
precache_model(W_MODEL)
precache_sound(m_SOUND[0])
precache_sound(m_SOUND[1])
precache_sound(m_SOUND[2])
precache_sound(m_SOUND[3])
g_blood = precache_model("sprites/blood.spr")
g_bloodspray = precache_model("sprites/bloodspray.spr")
g_fwid = register_forward(FM_PrecacheEvent, "fwPrecacheEvent", 1)
//snow
precache_model(SnowballVModel)
precache_model(SnowballPModel)
precache_model(SnowballWModel)
precache_model(g_wSmoke)
precache_sound(SoundHit)
precache_sound(SoundLaunch)
precache_sound(SoundSplash)
g_glassSpr = precache_model(GLASS)
g_Spr = precache_model(RING)
trailSpr = precache_model(TRAIL)
}
public ForwardSpawn(ent)
{
if(!pev_valid(ent)) /*Если энтитя info_player_start отсуствует на карте, игнорируем*/
return FMRES_IGNORED;
new classname[32];
pev(ent, pev_classname, classname, sizeof classname - 1);
if(equal(classname, "info_player_start")) /*Устанавливаем класс на info_player_start*/
{
pev(ent,pev_origin,g_vec[0]); /* Определяем координаты info_player_start и сохраняем в массив g_vec*/
}
return FMRES_IGNORED;
}
/*===============================================================================
=
Events
================================================================================
=*/
public event_end()
{
random_mode = 0;
/*new s_Traps[8], s_Free[8], s_Invis[8],s_Rambo[8],s_Race[8]
new szText1[10],szText2[10],szText3[10],szText4[10],szText6[10]
formatex(szText1, charsmax(szText1) , "Traps")
formatex(szText2, charsmax(szText2) , "Free")
formatex(szText3, charsmax(szText3) , "Invis")
formatex(szText4, charsmax(szText4) , "Rambo")
formatex(szText6, charsmax(szText6) , "Race")
if (traps)
{
new i_Traps = nvault_get(g_Vault, szText1) + 1;
formatex(s_Traps, charsmax(s_Traps), "%d", i_Traps)
nvault_set(g_Vault, szText1, s_Traps)
}
else if(free)
{
new i_Free = nvault_get(g_Vault, szText2) + 1;
formatex(s_Free, charsmax(s_Free), "%d", i_Free)
nvault_set(g_Vault, szText2, s_Free)
}
else if(invis)
{
new i_Invis = nvault_get(g_Vault, szText3) + 1;
formatex(s_Invis, charsmax(s_Invis), "%d", i_Invis)
nvault_set(g_Vault, szText3, s_Invis)
}
else if(rambo)
{
new i_Rambo = nvault_get(g_Vault, szText4) + 1
formatex(s_Rambo, charsmax(s_Rambo), "%d", i_Rambo)
nvault_set(g_Vault, szText4, s_Rambo);
}
else if(race)
{
new i_Race = nvault_get(g_Vault, szText6) + 1;
formatex(s_Race, charsmax(s_Race), "%d", i_Race)
nvault_set(g_Vault, szText6, s_Race)
}*/
}
/*public event_start()
{
ButtonsUse = 1;
TouchWeapon = 1;
Last = false;
static id
for(id = 1; id <= g_MaxPlayers; id++)
{
fm_set_user_rendering(id, 0, 255, 255, 255, 0, 16)
canfire[id] = true
}
}*/
public GameMenu(id)
{
new mode[32];
get_cvar_string("deathrun_mode", mode, 31);
if(equal(mode, "DUEL"))
{
show_menu(id, 0, "^n", 1)
}
else
{
if(get_user_team(id) == 1 || is_user_alive(id))
{
if(!szTimeBlocked)
{
show_menu(id, 0, "^n", 1)
mods_menu(id)
set_task(1.0, "GameMenu", id)
}
else
{
show_menu(id, 0, "^n", 1)
}
}
}
}
public round_start()
{
for(new id = 1;id <= get_maxplayers(); id++)
{
if(!is_user_connected(id))
return PLUGIN_HANDLED
cs_reset_user_model(id)
}
return PLUGIN_HANDLED
}
public event_round_start()
{
set_lights("#OFF")
remove_miniguns()
static id
remove_task(TASK_SHOWINFO)
remove_task(TASK_INFUR_HUD)
szTimeBlocked = false
for (id = 0; id <= g_MaxPlayers; id++)
{
g_frozen[id] = false
g_plAction[id] = false
canfire[id] = false
frstCLIP[id] = true
fm_set_user_rendering(id, 0, 255, 255, 255, 0, 16)
}
remove_task(100499)
seconds=20
set_task(1.0, "TimerExplode", 100499,_,_,"a",seconds+1)
random_mode = 1;
rejim_activated = false
//Mods setting
vampire = 0
rambo = 0;
invis = 0;
infur = 0;
free = 0;
traps = 0;
race = 0;
money = 0;
snowman = 0;
MenuUse = 0;
Partner = 0;
Last = false;
ButtonsUse = 1;
TouchWeapon = 1;
if (rambo_rounds_left>0)
rambo_rounds_left--;
if (invis_rounds_left>0)
invis_rounds_left--;
if (free_rounds_left>0)
free_rounds_left--;
if (race_rounds_left>0)
race_rounds_left--;
if (money_rounds_left>0)
money_rounds_left--;
if (vampire_rounds_left>0)
vampire_rounds_left--;
if(infur_rounds_left>0)
infur_rounds_left--;
if(snow_rounds_left>0)
snow_rounds_left--;
set_pcvar_string(InformerMode, "NOTHING")
}
public set_random(id)
{
new mode[32]
get_pcvar_string(InformerMode, mode, 31)
new CTalive, Talive
for( new i = 1; i <= g_MaxPlayers; i++ )
{
if( is_user_alive( i ) && get_user_team( i ) == 2 && !is_user_bot(i))
CTalive++;
if( is_user_alive( i ) && get_user_team( i ) == 1 && !is_user_bot(i))
Talive++;
}
if (random_mode == 1 && !equal (mode, "DUEL"))
{
switch (random_num(0, 5))
{
case 0:
{
set_dhudmessage(random_num(0, 255), random_num(0, 255), random_num(0, 255), 0.15, 0.35, 2, 0.0, 0.0, 0.1, 6.0)
show_dhudmessage(0, "%L: %L", LANG_PLAYER, "RANDOM_START", LANG_PLAYER, "FREE")
static i
for(i = 1; i <= g_MaxPlayers; i++)
{
if(is_user_connected(i) && is_user_alive(i))
{
if (get_user_team(i)==2)
{
strip_user_weapons(i)
fm_give_item(i, "weapon_knife")
}
else if (get_user_team(i)==1)
{
strip_user_weapons(i)
fm_give_item(i, "weapon_knife")
}
}
}
switch (cfg_free_buttons)
{
case 0: ButtonsUse = 0; //Can't use the buttons
case 1: ButtonsUse = 1;//Can use!
}
switch ( cfg_free_touch)
{
case 0: TouchWeapon = 0;//Can't touch the weapons
case 1: TouchWeapon = 1;//Can touch
}
free_rounds_left = cfg_free_rounds;
free = 1;
MenuUse = 1;
set_pcvar_string(InformerMode, "FREE")
}
case 1:
{
set_dhudmessage(random_num(0, 255), random_num(0, 255), random_num(0, 255), 0.15, 0.35, 1, 0.0, 0.0, 0.1, 5.0)
show_dhudmessage(0, "%L: %L", LANG_PLAYER, "RANDOM_START", LANG_PLAYER, "INVIS")
static i
for(i = 1; i <= g_MaxPlayers; i++)
{
if(is_user_connected(i) && is_user_alive(i))
{
if (get_user_team(i)==2)
{
strip_user_weapons(i)
fm_give_item(i, "weapon_knife")
fm_give_item(i, "weapon_glock18")
fm_set_user_health(i, cfg_invis_health_ct)
}
else if (get_user_team(i)==1)
{
strip_user_weapons(i)
fm_give_item(i, "weapon_knife")
fm_give_item(i, "weapon_flashbang")
fm_set_user_health(i, cfg_invis_health_t)
}
}
}
switch (cfg_invis_buttons)
{
case 0: ButtonsUse = 0; //Can't use the buttons
case 1: ButtonsUse = 1;//Can use!
}
switch ( cfg_invis_touch)
{
case 0: TouchWeapon = 0;//Can't touch the weapons
case 1: TouchWeapon = 1;//Can touch
}
invis_rounds_left = cfg_invis_rounds;
invis = 1;
MenuUse = 1;
set_pcvar_string(InformerMode, "INVIS")
}
case 2:
{
set_dhudmessage(random_num(0, 255), random_num(0, 255), random_num(0, 255), 0.15, 0.35, 1, 0.0, 0.0, 0.1, 5.0)
show_dhudmessage(0, "%L: %L", LANG_PLAYER, "RANDOM_START", LANG_PLAYER, "TRAPS")
static i
for(i = 1; i <= g_MaxPlayers; i++)
{
if(is_user_connected(i) && is_user_alive(i))
{
if (get_user_team(i)==2)
{
strip_user_weapons(i)
fm_give_item(i, "weapon_knife")
fm_give_item(i, "weapon_usp")
cs_set_user_bpammo(i, CSW_USP, 100 )
}
else if (get_user_team(i)==1)
{
strip_user_weapons(i)
fm_give_item(i, "weapon_knife")
fm_set_user_health(i, cfg_traps_health_t)
}
}
}
switch (cfg_traps_buttons)
{
case 0: ButtonsUse = 0; //Can't use the buttons
case 1: ButtonsUse = 1;//Can use!
}
switch ( cfg_traps_touch)
{
case 0: TouchWeapon = 0;//Can't touch the weapons
case 1: TouchWeapon = 1;//Can touch
}
traps = 1;
MenuUse = 1;
set_pcvar_string(InformerMode, "TRAPS")
}
case 3:
{
set_dhudmessage(random_num(0, 255), random_num(0, 255), random_num(0, 255), 0.15, 0.35, 1, 0.0, 0.0, 0.1, 5.0)
show_dhudmessage(0, "%L: %L", LANG_PLAYER, "RANDOM_START", LANG_PLAYER, "RAMBO")
static i
for(i = 1; i <= g_MaxPlayers; i++)
{
if(is_user_alive(i))
{
if (get_user_team(i)==2)
{
strip_user_weapons(i)
fm_give_item(i, "weapon_knife")
fm_give_item(i, "weapon_shield")
fm_set_user_health(i, cfg_rambo_health_ct);
fm_give_item(i, "weapon_glock18")
cs_set_user_bpammo(i, CSW_GLOCK18, 200 )
}
else if (get_user_team(i)==1)
{
strip_user_weapons(i)
fm_set_user_rendering(i, 0, 255, 255, 255, 0, 16)
fm_give_item(i, "weapon_knife")
give_minigun(i, 50000)
cs_set_user_model(i, "terminator")
fm_set_user_health(i, cfg_rambo_health_t)
}
}
}
switch (cfg_rambo_buttons)
{
case 0: ButtonsUse = 0; //Can't use the buttons
case 1: ButtonsUse = 1;//Can use!
}
switch ( cfg_rambo_touch)
{
case 0: TouchWeapon = 0;//Can't touch the weapons
case 1: TouchWeapon = 1;//Can touch
}
if (cfg_rambo_partner && !Partner && CTalive >= 8 && Talive <= 2)
{
set_task(3.0,"partner_menu",id)
}
rambo_rounds_left = cfg_rambo_rounds;
rambo = 1;
MenuUse = 1;
set_pcvar_string(InformerMode, "RAMBO")
}
case 4:
{
set_dhudmessage(random_num(0, 255), random_num(0, 255), random_num(0, 255), 0.15, 0.35, 1, 0.0, 0.0, 0.1, 5.0)
show_dhudmessage(0, "%L: %L", LANG_PLAYER, "RANDOM_START", LANG_PLAYER, "RACE")
switch (cfg_race_buttons)
{
case 0: ButtonsUse = 0; //Can't use the buttons
case 1: ButtonsUse = 1;//Can use!
}
switch ( cfg_race_touch)
{
case 0: TouchWeapon = 0;//Can't touch the weapons
case 1: TouchWeapon = 1;//Can touch
}
static i
for(i = 1; i <= g_MaxPlayers; i++)
{
if(is_user_connected(i) && is_user_alive(i))
{
if (get_user_team(i)==2 && is_user_alive(i))
{
strip_user_weapons(i)
fm_give_item(i, "weapon_knife")
fm_give_item(i, "weapon_tmp")
cs_set_user_bpammo(i, CSW_TMP, 500 )
}
else if (get_user_team(i)==1)
{
fm_set_user_health(i, cfg_race_health_t)
fm_strip_user_weapons(i)
fm_give_item(i, "weapon_hegrenade")
cs_set_user_bpammo(i, CSW_HEGRENADE, 5)
cs_set_user_model(i, "chuky")
sm_narkotik_player(i)
fm_give_item(i, "weapon_knife")
}
}
}
race_rounds_left = cfg_race_rounds;
race = 1;
MenuUse = 1;
set_pcvar_string(InformerMode, "RACE")
}
case 5:
{
set_dhudmessage(random_num(0, 255), random_num(0, 255), random_num(0, 255), 0.15, 0.35, 1, 0.0, 0.0, 0.1, 5.0)
show_dhudmessage(0, "%L: %L", LANG_PLAYER, "RANDOM_START", LANG_PLAYER, "SNOW")
switch (cfg_snow_buttons)
{
case 0: ButtonsUse = 0; //Can't use the buttons
case 1: ButtonsUse = 1;//Can use!
}
switch ( cfg_snow_touch)
{
case 0: TouchWeapon = 0;//Can't touch the weapons
case 1: TouchWeapon = 1;//Can touch
}
static i
for(i = 1; i <= g_MaxPlayers; i++)
{
if(is_user_connected(i) && is_user_alive(i))
{
if (get_user_team(i)==2 && is_user_alive(i))
{
strip_user_weapons(i)
fm_give_item(i, "weapon_knife")
}
else if (get_user_team(i)==1)
{
fm_strip_user_weapons(i)
fm_give_item(i, "weapon_knife")
fm_give_item(i, "weapon_smokegrenade")
cs_set_user_bpammo(i, CSW_SMOKEGRENADE, 999)
client_cmd(i, "weapon_smokegrenade")
set_pev(i, pev_viewmodel2, SnowballVModel)
set_pev(i, pev_weaponmodel2, SnowballPModel)
set_pev(i, pev_health, TERHEALTH)
cs_set_user_model(i, "new_year_t")
message_begin(MSG_ONE, get_user_msgid("HideWeapon"), _, i)
write_byte((1<<0))
message_end()
}
}
}
snow_rounds_left = cfg_snow_rounds;
snowman = 1;
MenuUse = 1;
set_pcvar_string(InformerMode, "SNOW")
}
}
random_mode = 0;
}
}
public AddToFullPack(all, e, ent, host, hostflags, player, pset)
{
new mode[32]
get_pcvar_string(InformerMode, mode, 31)
if (!equal (mode, "DUEL"))
{
if(rambo == 1)
{
if(player)
{
if(host != ent)
{
if(get_user_team(host) == 1 && get_user_team(ent) == 2)
{
set_es(all, ES_RenderMode, kRenderTransAlpha);
set_es(all, ES_RenderAmt, 0);
}
}
}
}
if(invis == 1)
{
if(player)
{
if(host != ent)
{
if(get_user_team(host) == 2 && get_user_team(ent) == 1)
{
set_es(all, ES_RenderMode, kRenderTransAlpha);
set_es(all, ES_RenderAmt, 0);
}
}
}
}
}
return PLUGIN_HANDLED
}
public fwEvGameWillRestartIn()
{
static id
for(id = 1; id <= g_MaxPlayers; id++)
{
fm_set_user_rendering(id, 0, 255, 255, 255, 0, 16);
has_minigun[id] = false;
}
//Mods setting
rambo = 0;
invis = 0;
infur = 0;
free = 0;
traps = 0;
race = 0;
random_mode = 0;
MenuUse = 0;
Partner = 0;
rambo_rounds_left = 0;
invis_rounds_left = 0;
infur_rounds_left = 0;
free_rounds_left = 0;
race_rounds_left = 0;
snow_rounds_left = 0;
set_pcvar_string(InformerMode, "BUTTONS")
}
public fd_PlayerSpawn(id)
{
new mode[32]
get_pcvar_string(InformerMode, mode, 31)
if(!is_user_alive(id) || is_user_bot(id) )
return;
if ( get_user_team(id) == 1 && !MenuUse && plugin_work == 1 && !equal (mode, "DUEL"))
set_task(0.1, "GameMenu", id)
if (rambo && !equal (mode, "DUEL"))
set_task(1.0, "go_rambo", id)
else if (invis && !equal (mode, "DUEL"))
set_task(1.0, "go_invis", id)
else if (free && !equal (mode, "DUEL"))
set_task(1.0, "go_free", id)
else if (traps && !equal (mode, "DUEL"))
set_task(1.0, "go_traps", id)
else if (race && !equal (mode, "DUEL"))
set_task(1.0,"go_race",id)
else if (money && !equal (mode, "DUEL"))
set_task(1.0,"go_money",id)
else if (infur && !equal (mode, "DUEL"))
set_task(1.0,"go_infur",id)
else if(snowman && !equal(mode, "DUEL"))
set_task(1.0, "go_snow", id)
else if (equal (mode, "DUEL"))
strip_user_weapons(id)
}
public fd_UseButton(ent, caller, id)
{
if(!is_user_alive(id))
return HAM_IGNORED
new mode[32]
get_pcvar_string(InformerMode, mode, 31)
if ( get_user_team(id) == 1 && !MenuUse && plugin_work == 1 && !equal (mode, "DUEL"))
{
set_dhudmessage(random_num(0, 255), random_num(0, 255), random_num(0, 255), -1.0, 0.2, 2, 0.0, 0.0, 0.1, 6.0)
show_dhudmessage(0, "%L", -1, "BUTTONS_START")
static i
for(i = 1; i <= g_MaxPlayers; i++)
{
if(is_user_connected(i) && is_user_alive(i))
{
if (get_user_team(i)==2)
{
strip_user_weapons(i)
fm_give_item(i, "weapon_knife")
fm_give_item(i, "weapon_usp")
cs_set_user_bpammo(i, CSW_USP, 100 )
}
else if (get_user_team(i)==1)
{
strip_user_weapons(i)
fm_give_item(i, "weapon_knife")
fm_set_user_health(i, cfg_traps_health_t)
}
}
}
switch (cfg_traps_buttons)
{
case 0: ButtonsUse = 0; //Can't use the buttons
case 1: ButtonsUse = 1;//Can use!
}
switch ( cfg_traps_touch)
{
case 0: TouchWeapon = 0;//Can't touch the weapons
case 1: TouchWeapon = 1;//Can touch
}
traps = 1;
MenuUse = 1;
random_mode = 0;
szTimeBlocked = true;
GameMenu(id);
remove_task(100499);
set_pcvar_string(InformerMode, "TRAPS");
}
if(get_user_team(id) == 1)
{
{
switch (ButtonsUse )
{
case 0:
{
client_print( id, print_center, "%L", LANG_PLAYER, "CANT_USE");
return HAM_SUPERCEDE
}
}
}
}
return HAM_IGNORED
}
public fd_TouchWeapon(ent, id)
{
if(!is_user_alive(id))
return HAM_IGNORED
new mode[32]
get_pcvar_string(InformerMode, mode, 31)
if(equal(mode, "DUEL") || get_user_team(id) != 2)
return HAM_SUPERCEDE
static classname[16]; pev( ent, pev_classname, classname, 15 )
if(equal(classname, "weaponbox"))
{
switch (TouchWeapon)
{
case 0: return HAM_SUPERCEDE
case 1: return HAM_IGNORED
}
}
else if(equal(classname, "armoury_entity"))
{
switch (TouchWeapon)
{
case 0: return HAM_SUPERCEDE
case 1: return HAM_IGNORED
}
}
else if(equal(classname, "weapon_shield"))
{
switch (TouchWeapon)
{
case 0: return HAM_SUPERCEDE
case 1: return HAM_IGNORED
}
}
else if (equal(classname, "weapon_m249"))
{
return HAM_SUPERCEDE
}
return HAM_IGNORED
}
public fd_PlayerKilled(id)
{
fm_set_user_rendering(id, 0, 255, 255, 255, 0, 16)
}
/*===============================================================================
=
Go ...
================================================================================
=*/
public go_rambo(id)
{
if (get_user_team(id)==2)
{
strip_user_weapons(id)
fm_give_item(id, "weapon_knife")
fm_give_item(id, "weapon_shield")
fm_set_user_health(id, cfg_rambo_health_ct);
fm_give_item(id, "weapon_glock18")
cs_set_user_bpammo(id, CSW_GLOCK18, 200 )
}
else if (get_user_team(id)==1)
{
fm_set_user_rendering(id, 0, 255, 255, 255, 0, 16)
strip_user_weapons(id)
fm_give_item(id, "weapon_knife")
give_minigun(id, 50000)
cs_set_user_model(id, "terminator")
fm_set_user_health(id, cfg_rambo_health_t)
}
return PLUGIN_HANDLED
}
public go_snow(i)
{
if (get_user_team(i)==2)
{
strip_user_weapons(i)
fm_give_item(i, "weapon_knife")
}
else if (get_user_team(i)==1)
{
fm_give_item(i, "weapon_knife")
fm_give_item(i, "weapon_smokegrenade")
cs_set_user_bpammo(i, CSW_SMOKEGRENADE, 999)
client_cmd(i, "weapon_smokegrenade")
set_pev(i, pev_viewmodel2, SnowballVModel)
set_pev(i, pev_weaponmodel2, SnowballPModel)
set_pev(i, pev_health, TERHEALTH)
message_begin(MSG_ONE, get_user_msgid("HideWeapon"), _, i)
write_byte((1<<0))
message_end()
}
}
public go_invis(id)
{
if (get_user_team(id)==2)
{
strip_user_weapons(id)
fm_give_item(id, "weapon_knife")
fm_give_item(id, "weapon_glock18")
fm_set_user_health(id, cfg_invis_health_ct)
}
else if (get_user_team(id)==1)
{
strip_user_weapons(id)
fm_give_item(id, "weapon_knife")
fm_give_item(id, "weapon_flashbang")
fm_set_user_health(id, cfg_invis_health_t)
}
return PLUGIN_HANDLED
}
public go_free(id)
{
if (get_user_team(id)==2 )
{
strip_user_weapons(id)
fm_give_item(id, "weapon_knife")
}
else if (get_user_team(id)==1)
{
strip_user_weapons(id)
fm_give_item(id, "weapon_knife")
}
}
public go_traps(id)
{
if (get_user_team(id)==2)
{
strip_user_weapons(id)
fm_give_item(id, "weapon_knife" )
fm_give_item(id, "weapon_usp")
cs_set_user_bpammo(id, CSW_USP, 100 )
}
else if (get_user_team(id)==1)
{
strip_user_weapons(id)
fm_give_item(id, "weapon_knife")
fm_set_user_health(id, cfg_traps_health_t)
}
}
public go_race(id)
{
if (get_user_team(id)==2 && is_user_alive(id))
{
strip_user_weapons(id)
fm_give_item(id, "weapon_knife")
fm_give_item(id, "weapon_tmp")
cs_set_user_bpammo(id, CSW_TMP, 500 )
}
else if (get_user_team(id)==1 && is_user_alive(id))
{
fm_set_user_health(id, cfg_race_health_t)
fm_strip_user_weapons(id)
fm_give_item(id, "weapon_hegrenade")
cs_set_user_bpammo(id, CSW_HEGRENADE, 5)
sm_narkotik_player(id)
cs_set_user_model(id, "chuky")
fm_give_item(id, "weapon_knife")
}
}
public go_infur(id)
{
if (get_user_team(id)==2)
{
strip_user_weapons(id)
fm_give_item(id, "weapon_knife" )
fm_give_item(id, "weapon_usp")
cs_set_user_bpammo(id, CSW_USP, 100 )
fm_set_user_health(id, cfg_infur_health_ct)
}
else if (get_user_team(id)==1)
{
strip_user_weapons(id)
fm_give_item(id, "weapon_knife")
fm_set_user_health(id, cfg_infur_health_t)
if(Timer <= 0)
{
engfunc(EngFunc_SetOrigin, id, g_vec[0])
}
}
}
/*===============================================================================
=
Menu
================================================================================
=*/
public mods_menu(id)
{
if(!is_user_alive(id))
return PLUGIN_CONTINUE
new Len, szMenu[1024]
new Keys = MENU_KEY_0
Len = format(szMenu, charsmax(szMenu), "%L^n^n", LANG_PLAYER, "MODS_MENU_TITLE", seconds)
if (free_rounds_left > 0)
{
Len += format(szMenu[Len],charsmax(szMenu) - Len, "\r1. \d%L \d(\r%d\d)^n", LANG_PLAYER, "ITEM1", free_rounds_left)
}
else
{
Keys |= (1 << 0)
Len += format(szMenu[Len],charsmax(szMenu) - Len, "\r1. \w%L^n", LANG_PLAYER, "ITEM1")
}
if (invis_rounds_left > 0)
{
Len += format(szMenu[Len],charsmax(szMenu) - Len, "\r2. \d%L \d(\r%d\d)^n", LANG_PLAYER, "ITEM2", invis_rounds_left)
}
else
{
Keys |= (1 << 1)
Len += format(szMenu[Len], charsmax(szMenu) - Len, "\r2. \w%L^n", LANG_PLAYER, "ITEM2")
}
Keys |= (1 << 2)
Len += format(szMenu[Len], charsmax(szMenu) - Len, "\r3. \w%L^n", LANG_PLAYER, "ITEM3")
if (rambo_rounds_left > 0)
{
Len += format(szMenu[Len],charsmax(szMenu) - Len, "\r4. \d%L \d(\r%d\d)^n", LANG_PLAYER, "ITEM4", rambo_rounds_left)
}
else
{
Keys |= (1 << 3)
Len += format(szMenu[Len], charsmax(szMenu) - Len, "\r4. \w%L^n", LANG_PLAYER, "ITEM4")
}
if (race_rounds_left > 0)
{
Len += format(szMenu[Len],charsmax(szMenu) - Len, "\r5. \d%L \d(\r%d\d)^n", LANG_PLAYER, "ITEM6", race_rounds_left)
}
else
{
Keys |= (1 << 4)
Len += format(szMenu[Len], charsmax(szMenu) - Len, "\r5. \w%L^n", LANG_PLAYER, "ITEM6")
}
if (money_rounds_left > 0)
{
Len += format(szMenu[Len],charsmax(szMenu) - Len, "\r6. \d%L \d(\r%d\d)^n", LANG_PLAYER, "ITEM7", money_rounds_left)
}
else
{
Keys |= (1 << 5)
Len += format(szMenu[Len], charsmax(szMenu) - Len, "\r6. \w%L^n", LANG_PLAYER, "ITEM7")
}
if (vampire_rounds_left > 0)
{
Len += format(szMenu[Len],charsmax(szMenu) - Len, "\r7. \d%L \d(\r%d\d)^n", LANG_PLAYER, "ITEM8", vampire_rounds_left)
}
else
{
Keys |= (1 << 6)
Len += format(szMenu[Len], charsmax(szMenu) - Len, "\r7. \w%L^n", LANG_PLAYER, "ITEM8")
}
/*
if (infur_rounds_left > 0)
{
Len += format(szMenu[Len],charsmax(szMenu) - Len, "\r8. \d%L^n", LANG_PLAYER, "ITEM9", infur_rounds_left)
}
else
{
Keys |= (1 << 7)
Len += format(szMenu[Len], charsmax(szMenu) - Len, "\r8. \d%L^n", LANG_PLAYER, "ITEM9")
}
*/
Len += format(szMenu[Len],charsmax(szMenu) - Len, "\r8. \d%L^n", LANG_PLAYER, "ITEM9", infur_rounds_left)
if (snow_rounds_left > 0)
{
Len += format(szMenu[Len],charsmax(szMenu) - Len, "\r9. \d%L \d(\r%d\d)^n^n", LANG_PLAYER, "ITEM5", snow_rounds_left)
}
else
{
Keys |= (1 << 8)
Len += format(szMenu[Len], charsmax(szMenu) - Len, "\r9. \w%L^n^n", LANG_PLAYER, "ITEM5")
}
Len += format(szMenu[Len], charsmax(szMenu) - Len, "\r0. \wУмереть \d(\yЕсли не хочешь быть \rТеррористом\d)")
Keys |= (1<<0)
show_menu(id, Keys, szMenu, -1, "Modes Menu")
return PLUGIN_CONTINUE
}
public func_menu(id, key)
{
new mode[32]
get_pcvar_string(InformerMode, mode, 31)
if (get_user_team(id) !=1 || !is_user_alive(id) || equal (mode, "DUEL"))
return PLUGIN_HANDLED;
new CTalive, Talive
for( new i = 1; i <= g_MaxPlayers; i++ )
{
if( is_user_alive( i ) && get_user_team( i ) == 2 && !is_user_bot(i))
CTalive++;
if( is_user_alive( i ) && get_user_team( i ) == 1 && !is_user_bot(i))
Talive++;
}
switch(key)
{
case 0:
{
if ( MenuUse )
return PLUGIN_HANDLED;
szTimeBlocked = true
if ( free_rounds_left != 0 || !is_user_alive( id ))
{
mods_menu(id);
return PLUGIN_HANDLED;
}
set_dhudmessage(random_num(0, 255), random_num(0, 255), random_num(0, 255), -1.0, 0.2, 2, 0.0, 0.0, 0.1, 6.0)
show_dhudmessage(0, "%L", -1, "FREE_START")
static i
for(i = 1; i <= g_MaxPlayers; i++)
{
if(is_user_connected(i) && is_user_alive(i))
{
if (get_user_team(i)==2)
{
strip_user_weapons(i)
fm_give_item(i, "weapon_knife")
}
else if (get_user_team(id)==1)
{
strip_user_weapons(i)
fm_give_item(i, "weapon_knife")
}
}
}
switch (cfg_free_buttons)
{
case 0: ButtonsUse = 0; //Can't use the buttons
case 1: ButtonsUse = 1;//Can use!
}
switch ( cfg_free_touch)
{
case 0: TouchWeapon = 0;//Can't touch the weapons
case 1: TouchWeapon = 1;//Can touch
}
free_rounds_left = cfg_free_rounds;
free = 1;
MenuUse = 1;
random_mode = 0;
set_pcvar_string(InformerMode, "FREE")
remove_task(100499)
}
case 1:
{
if ( MenuUse )
return PLUGIN_HANDLED;
szTimeBlocked = true
if ( invis_rounds_left != 0 || !is_user_alive( id ))
{
mods_menu(id);
return PLUGIN_HANDLED;
}
set_dhudmessage(random_num(0, 255), random_num(0, 255), random_num(0, 255), -1.0, 0.2, 2, 0.0, 0.0, 0.1, 6.0)
show_dhudmessage(0, "%L", -1, "INVIS_START")
static i
for(i = 1; i <= g_MaxPlayers; i++)
{
if(is_user_connected(i) && is_user_alive(i))
{
if (get_user_team(i)==2)
{
strip_user_weapons(i)
fm_give_item(i, "weapon_knife")
fm_give_item(i, "weapon_glock18")
fm_set_user_health(i, cfg_invis_health_ct)
}
else if (get_user_team(i)==1)
{
strip_user_weapons(i)
fm_give_item(i, "weapon_knife")
fm_give_item(i, "weapon_flashbang")
fm_set_user_health(i, cfg_invis_health_t)
fm_set_user_rendering(i, 19 ,0, 0, 0, 4, 0)
}
}
}
switch (cfg_invis_buttons)
{
case 0: ButtonsUse = 0; //Can't use the buttons
case 1: ButtonsUse = 1;//Can use!
}
switch ( cfg_invis_touch)
{
case 0: TouchWeapon = 0;//Can't touch the weapons
case 1: TouchWeapon = 1;//Can touch
}
invis_rounds_left = cfg_invis_rounds;
invis = 1;
MenuUse = 1;
random_mode = 0;
remove_task(100499)
set_pcvar_string(InformerMode, "INVIS")
}
case 2:
{
if ( MenuUse )
return PLUGIN_HANDLED;
szTimeBlocked = true
if( !is_user_alive( id ) )
{
mods_menu(id);
return PLUGIN_HANDLED;
}
set_dhudmessage(random_num(0, 255), random_num(0, 255), random_num(0, 255), -1.0, 0.2, 2, 0.0, 0.0, 0.1, 6.0)
show_dhudmessage(0, "%L", -1, "TRAPS_START")
static i
for(i = 1; i <= g_MaxPlayers; i++)
{
if(is_user_connected(i) && is_user_alive(i))
{
if (get_user_team(i)==2)
{
strip_user_weapons(i)
fm_give_item(i, "weapon_knife")
fm_give_item(i, "weapon_usp")
cs_set_user_bpammo(i, CSW_USP, 100 )
}
else if (get_user_team(i)==1)
{
strip_user_weapons(i)
fm_give_item(i, "weapon_knife")
fm_set_user_health(i, cfg_traps_health_t)
}
}
}
switch (cfg_traps_buttons)
{
case 0: ButtonsUse = 0; //Can't use the buttons
case 1: ButtonsUse = 1;//Can use!
}
switch ( cfg_traps_touch)
{
case 0: TouchWeapon = 0;//Can't touch the weapons
case 1: TouchWeapon = 1;//Can touch
}
traps = 1;
MenuUse = 1;
random_mode = 0;
remove_task(100499)
set_pcvar_string(InformerMode, "TRAPS")
}
case 3:
{
if ( MenuUse )
return PLUGIN_HANDLED;
szTimeBlocked = true
if ( rambo_rounds_left != 0 || !is_user_alive( id ))
{
mods_menu(id);
return PLUGIN_HANDLED;
}
set_dhudmessage(random_num(0, 255), random_num(0, 255), random_num(0, 255), -1.0, 0.2, 2, 0.0, 0.0, 0.1, 6.0)
show_dhudmessage(0, "%L", -1, "RAMBO_START")
static i
for(i = 1; i <= g_MaxPlayers; i++)
{
if(is_user_alive(i))
{
if (get_user_team(i)==2)
{
strip_user_weapons(i)
fm_give_item(i, "weapon_knife")
fm_give_item(i, "weapon_shield")
fm_set_user_health(i, cfg_rambo_health_ct);
fm_give_item(i, "weapon_glock18")
cs_set_user_bpammo(i, CSW_GLOCK18, 200 );
}
else if (get_user_team(i)==1)
{
strip_user_weapons(i)
fm_set_user_rendering(i, 0, 255, 255, 255, 0, 16)
fm_give_item(i, "weapon_knife")
give_minigun(i, 50000)
cs_set_user_model(i, "terminator")
fm_set_user_health(i, cfg_rambo_health_t)
}
}
}
switch (cfg_rambo_buttons)
{
case 0: ButtonsUse = 0; //Can't use the buttons
case 1: ButtonsUse = 1;//Can use!
}
switch ( cfg_rambo_touch)
{
case 0: TouchWeapon = 0;//Can't touch the weapons
case 1: TouchWeapon = 1;//Can touch
}
if (cfg_rambo_partner && !Partner && CTalive >= 8 && Talive <= 2)
{
set_task(3.0,"partner_menu",id)
}
rambo_rounds_left = cfg_rambo_rounds;
rambo = 1;
MenuUse = 1;
random_mode = 0;
remove_task(100499)
set_pcvar_string(InformerMode, "RAMBO")
}
case 4:
{
if ( MenuUse )
return PLUGIN_HANDLED;
szTimeBlocked = true
if ( race_rounds_left != 0 || !is_user_alive( id ))
{
mods_menu(id);
return PLUGIN_HANDLED;
}
set_dhudmessage(random_num(0, 255), random_num(0, 255), random_num(0, 255), -1.0, 0.2, 2, 0.0, 0.0, 0.1, 6.0)
show_dhudmessage(0, "%L", -1, "RACE_START")
switch (cfg_race_buttons)
{
case 0: ButtonsUse = 0; //Can't use the buttons
case 1: ButtonsUse = 1;//Can use!
}
switch ( cfg_race_touch)
{
case 0: TouchWeapon = 0;//Can't touch the weapons
case 1: TouchWeapon = 1;//Can touch
}
static i
for(i = 1; i <= g_MaxPlayers; i++)
{
if(is_user_connected(i) && is_user_alive(i))
{
if (get_user_team(i)==2)
{
strip_user_weapons(i)
fm_give_item(i, "weapon_knife")
fm_give_item(i, "item_assaultsuit")
fm_give_item(i, "weapon_tmp")
cs_set_user_bpammo(i, CSW_TMP, 500 )
}
else if (get_user_team(i)==1)
{
fm_set_user_health(i, cfg_race_health_t)
fm_strip_user_weapons(i)
fm_give_item(i, "weapon_hegrenade")
cs_set_user_bpammo(i, CSW_HEGRENADE, 5)
sm_narkotik_player(i)
cs_set_user_model(id, "chuky")
fm_give_item(i, "weapon_knife")
}
}
}
race_rounds_left = cfg_race_rounds;
race = 1;
MenuUse = 1;
random_mode = 0;
set_pcvar_string(InformerMode, "RACE")
remove_task(100499)
}
case 5:
{
if ( MenuUse )
return PLUGIN_HANDLED;
szTimeBlocked = true
if ( money_rounds_left != 0 || !is_user_alive( id ))
{
mods_menu(id);
return PLUGIN_HANDLED;
}
set_dhudmessage(random_num(0, 255), random_num(0, 255),random_num(0, 255), -1.0, 0.2, 2, 0.0, 0.0, 0.1, 6.0)
show_dhudmessage(0, "%L", -1, "MONEY_START")
switch (cfg_money_buttons)
{
case 0: ButtonsUse = 0; //Can't use the buttons
case 1: ButtonsUse = 1;//Can use!
}
switch ( cfg_money_touch)
{
case 0: TouchWeapon = 0;//Can't touch the weapons
case 1: TouchWeapon = 1;//Can touch
}
static i
for(i = 1; i <= g_MaxPlayers; i++)
{
if(is_user_connected(i) && is_user_alive(i))
{
if (get_user_team(i)==2)
{
strip_user_weapons(i)
fm_give_item(i, "weapon_knife")
fm_give_item(i, "weapon_usp")
cs_set_user_bpammo(i, CSW_USP, 100 )
}
else if (get_user_team(i)==1)
{
fm_set_user_health(i, cfg_vampire_health_t)
fm_strip_user_weapons(i)
fm_give_item(i, "weapon_knife")
}
}
}
money_rounds_left = cfg_money_rounds;
MenuUse = 1;
random_mode = 0;
set_pcvar_string(InformerMode, "DR_MONEY")
rejim_activated = true
remove_task(100499)
}
case 6:
{
if ( MenuUse )
return PLUGIN_HANDLED;
szTimeBlocked = true
if ( vampire_rounds_left != 0 || !is_user_alive( id ))
{
mods_menu(id);
return PLUGIN_HANDLED;
}
set_dhudmessage(random_num(0, 255), random_num(0, 255),random_num(0, 255), -1.0, 0.2, 2, 0.0, 0.0, 0.1, 6.0)
show_dhudmessage(0, "%L", -1, "VAMPIRE_START")
switch (cfg_vampire_buttons)
{
case 0: ButtonsUse = 0; //Can't use the buttons
case 1: ButtonsUse = 1;//Can use!
}
switch ( cfg_vampire_touch)
{
case 0: TouchWeapon = 0;//Can't touch the weapons
case 1: TouchWeapon = 1;//Can touch
}
static i
for(i = 1; i <= g_MaxPlayers; i++)
{
if(is_user_connected(i) && is_user_alive(i))
{
if (get_user_team(i)==2)
{
strip_user_weapons(i)
fm_give_item(i, "weapon_knife")
}
else if (get_user_team(i)==1)
{
fm_set_user_health(i, cfg_vampire_health_t)
fm_strip_user_weapons(i)
cs_set_user_model(i, "dr_vampir")
fm_give_item(i, "weapon_knife")
}
}
}
set_task(1.0, "vampire_hud", TASK_SHOWINFO, _, _, "b")
vampire_rounds_left = cfg_vampire_rounds;
MenuUse = 1;
vampire = 1;
random_mode = 0;
set_pcvar_string(InformerMode, "DR_VAMPIRE")
remove_task(100499)
}
case 7:
{
if ( MenuUse )
return PLUGIN_HANDLED;
szTimeBlocked = true
if ( infur_rounds_left != 0 || !is_user_alive( id ))
{
mods_menu(id);
return PLUGIN_HANDLED;
}
set_dhudmessage(random_num(0, 255), random_num(0, 255), random_num(0, 255), -1.0, 0.2, 2, 0.0, 0.0, 0.1, 6.0)
show_dhudmessage(0, "%L", -1, "INFUR_START")
static i
for(i = 1; i <= g_MaxPlayers; i++)
{
if(is_user_connected(i) && is_user_alive(i))
{
if (get_user_team(i)==2)
{
strip_user_weapons(i)
fm_give_item(i, "weapon_knife")
fm_give_item(i, "weapon_usp")
cs_set_user_bpammo(i, CSW_USP, 100 )
fm_set_user_health(i, cfg_infur_health_ct)
}
else if (get_user_team(i)==1)
{
strip_user_weapons(i)
fm_give_item(i, "weapon_knife")
fm_give_item(i, "weapon_flashbang")
fm_set_user_health(i, cfg_infur_health_t)
fm_set_user_rendering(i, 19 ,0, 0, 0, 4, 0)
set_task(9.0, "un_freeze_terrorist")
}
}
}
switch (cfg_infur_buttons)
{
case 0: ButtonsUse = 0; //Can't use the buttons
case 1: ButtonsUse = 1;//Can use!
}
switch ( cfg_infur_touch)
{
case 0: TouchWeapon = 0;//Can't touch the weapons
case 1: TouchWeapon = 1;//Can touch
}
new args[2]
args[0] = id
args[1] = 15
un_freeze_terrorist(args)
infur_rounds_left = cfg_infur_rounds;
infur = 1;
MenuUse = 1;
random_mode = 0;
remove_task(100499)
set_pcvar_string(InformerMode, "INFUR")
}
case 8:
{
if ( MenuUse )
return PLUGIN_HANDLED;
szTimeBlocked = true
if ( snow_rounds_left != 0 || !is_user_alive( id ))
{
mods_menu(id);
return PLUGIN_HANDLED;
}
set_dhudmessage(random_num(0, 255), random_num(0, 255), random_num(0, 255), 0.01, 0.50, 2, 0.0, 0.0, 0.1, 6.0)
show_dhudmessage(0, "%L", -1, "SNOW_START")
switch (cfg_snow_buttons)
{
case 0: ButtonsUse = 0; //Can't use the buttons
case 1: ButtonsUse = 1;//Can use!
}
switch ( cfg_snow_touch)
{
case 0: TouchWeapon = 0;//Can't touch the weapons
case 1: TouchWeapon = 1;//Can touch
}
static i
for(i = 1; i <= g_MaxPlayers; i++)
{
if(is_user_connected(i) && is_user_alive(i))
{
if (get_user_team(i)==2 && is_user_alive(i))
{
strip_user_weapons(i)
fm_give_item(i, "weapon_knife")
}
else if (get_user_team(i)==1)
{
fm_give_item(i, "weapon_knife")
fm_give_item(i, "weapon_smokegrenade")
cs_set_user_bpammo(i, CSW_SMOKEGRENADE, 999)
client_cmd(i, "weapon_smokegrenade")
set_pev(i, pev_viewmodel2, SnowballVModel)
set_pev(i, pev_weaponmodel2, SnowballPModel)
set_pev(i, pev_health, TERHEALTH)
cs_set_user_model(i, "new_year_t")
message_begin(MSG_ONE, get_user_msgid("HideWeapon"), _, i)
write_byte((1<<0))
message_end()
}
}
}
snow_rounds_left = cfg_snow_rounds;
snowman = 1;
MenuUse = 1;
random_mode = 0;
remove_task(100499)
set_pcvar_string(InformerMode, "SNOW")
}
case 9:
{
if ( MenuUse )
return PLUGIN_HANDLED;
szTimeBlocked = true
Kill(id)
MenuUse = 1;
}
}
return PLUGIN_HANDLED
}
stock Kill(id)
{
user_kill(id, 1)
return PLUGIN_CONTINUE
}
public un_freeze_terrorist(put_args[])
{
new mode[32];
get_cvar_string("deathrun_mode", mode, 31);
if(equal(mode, "DUEL"))
return FMRES_IGNORED
new id = put_args[0]
Timer = put_args[1]
if(!is_user_alive(id))
return PLUGIN_CONTINUE
if(Timer == 0)
{
set_dhudmessage(255, 0, 0, -1.0, 0.2, 3, 0.0, 0.0, 0.1, 6.0)
show_dhudmessage(0, "Фурия телепортирована на кт базу")
static i
for(i = 1; i <= g_MaxPlayers; i++)
{
if(get_user_team(i) == 1 && is_user_alive(i) && is_user_connected(i))
{
engfunc(EngFunc_SetOrigin,i,g_vec[0])
}
}
return PLUGIN_CONTINUE
}
set_dhudmessage(213, 62, 7, -1.0, 0.2, 0, 0.0, 0.5, 0.0, 0.8)
show_dhudmessage(0, "До телепортации инфурии на кт базу %d сек.", Timer)
Timer--
new args[2]
args[0] = id
args[1] = Timer
set_task(1.0, "un_freeze_terrorist", TASK_INFUR_HUD, args, 2)
return PLUGIN_CONTINUE
}
public partner_menu(id)
{
if (cfg_rambo_partner !=1 || !is_user_connected(id))
return PLUGIN_HANDLED
new rambo_name[32]
get_user_name(id,rambo_name,32)
new szText[ 1000 char ];
formatex( szText, charsmax( szText ), "%L", id, "PARTNER_MENU_TITLE", rambo_name);
new i_Menu = menu_create(szText ,"func_partner");
new s_Players[32], i_Num, Partner_id
new s_Name[32], s_Player[10]
get_players(s_Players, i_Num)
for (new i; i < i_Num; i++)
{
Partner_id = s_Players[i]
get_user_name(Partner_id, s_Name, charsmax(s_Name))
num_to_str(Partner_id, s_Player, charsmax(s_Player))
if ( is_user_alive(Partner_id) && Partner_id!=id && get_user_team(Partner_id) == 2)
menu_additem(i_Menu, s_Name, s_Player, 0)
}
new EXIT[33], NEXT[20], BACK[20]
formatex(EXIT, charsmax(EXIT), "%L", id, "EXIT");
formatex(NEXT, charsmax(NEXT), "%L", id, "NEXT");
formatex(BACK, charsmax(BACK), "%L", id, "BACK");
menu_setprop(i_Menu, MPROP_BACKNAME, BACK)
menu_setprop(i_Menu, MPROP_NEXTNAME, NEXT)
menu_setprop(i_Menu, MPROP_EXITNAME, EXIT)
menu_display(id, i_Menu, 0)
return PLUGIN_HANDLED
}
public func_partner(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new s_Data[6], s_Name[64], i_Access, i_Callback
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
new Partner_id = str_to_num(s_Data)
new rambo_name[32]
get_user_name(id,rambo_name,32)
new partner_name[32]
get_user_name(Partner_id,partner_name,32)
if (is_user_alive(Partner_id) && get_user_team (Partner_id) == 2 && rambo)
{
cs_set_user_team(Partner_id, 1, 2);
ExecuteHamB(Ham_CS_RoundRespawn, Partner_id);
ColorChat( 0, GREEN, "%s^1 %L", Tag, -1, "SELECTED_PARTNER", rambo_name, partner_name)
Partner = 1;
}
else
{
set_task(0.1,"partner_menu",id)
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
/*===============================================================================
=
Информер
================================================================================
=*/
stock GetTsNum(alive)
{
new TsNum = 0
for (new id = 1; id <= MaxPlayers; id++)
{
if(!is_user_connected(id) || is_user_bot(id))
{
continue
}
if(alive)
{
if(cs_get_user_team(id) == CS_TEAM_T && is_user_alive(id))
{
TsNum++
}
} else {
if(cs_get_user_team(id) == CS_TEAM_T)
{
TsNum++
}
}
}
return TsNum
}
public Show_Info()
{
new id, acts, cts, all, CurrentTime[32], CurrentTime2[32], names[33][32], Message[512], LastID, ats, Terrorist[32]
for(id = 1; id <= g_MaxPlayers; id++)
{
if(!is_user_connected(id))
{
continue
} else if(is_user_alive(id) && get_user_team(id) == 2) {
acts++
cts++
all ++
LastID = id;
get_user_name(id, names[acts], 31)
} else if(!is_user_alive(id) && get_user_team(id) == 2) {
cts++
all++
} else if(get_user_team(id) == 1 && !is_user_bot(id) && is_user_alive(id)) {
get_user_name(id, Terrorist, 63)
ats++
all++
} else
all++
}
if(acts == 1 && !Last && ats >= 1)
{
LastMenu(LastID)
Last = true
}
for(id = 1; id <= g_MaxPlayers; id++)
{
new Len, Mode[32]
get_pcvar_string(InformerMode, Mode, 31)
Len = format(Message, 511, "%L: %L", LANG_PLAYER, "CURRENTMODE", LANG_PLAYER, Mode)
get_time("%d.%m.%Y", CurrentTime2, 31)
Len += format(Message[Len], 511 - Len, "^n%L: %s", LANG_PLAYER, "CURRENTTIME2", CurrentTime2)
get_time("%X", CurrentTime, 31)
Len += format(Message[Len], 511 - Len, "^n%L: %s", LANG_PLAYER, "CURRENTTIME", CurrentTime)
if(get_cvar_float("mp_timelimit"))
{
new a = get_timeleft()
Len += format(Message[Len], 511 - Len, "^n%L: %d:%02d", LANG_PLAYER, "TLEFT", (a / 60), (a % 60))
} else {
Len += format(Message[Len], 511 - Len, "^n%L: %L", LANG_PLAYER, "TLEFT", LANG_PLAYER, "LASTR")
}
if(GetTsNum(0))
{
Len += format(Message[Len], 511 - Len, "^n%L: %s", LANG_PLAYER, "CTER", Terrorist)
} else {
Len += format(Message[Len], 511 - Len, "^n%L: %L", LANG_PLAYER, "CTER", LANG_PLAYER, "TNONE")
}
Len += format(Message[Len], 511 - Len, "^n%L: %d | %d", LANG_PLAYER, "ALIVECTS", acts,cts)
Len += format(Message[Len], 511 - Len, "^n%L: %d | %d", LANG_PLAYER, "APLAYERS", all, MaxPlayers)
if(acts > 3)
{
set_hudmessage(105, 105, 105, 0.01, 0.18, 0, 1.0, 1.0)
} else if(acts == 3) {
set_hudmessage(255, 0, 0, 0.01, 0.18, 0, 1.0, 1.0)
Len += format(Message[Len], 511 - Len, "^n^n1. %s^n2. %s^n3. %s", names[1], names[2], names[3])
} else if(acts == 2) {
set_hudmessage(0, 238, 0, 0.01, 0.18, 0, 1.0, 1.0)
Len += format(Message[Len], 511 - Len, "^n^n1. %s^n2. %s", names[1], names[2])
} else {
set_hudmessage(255, 69, 0, 0.01, 0.18, 0, 1.0, 1.0)
Len += format(Message[Len], 511 - Len, "^n^n1. %s", names[1])
}
ShowSyncHudMsg(id, g_MsgHud1, "%s", Message)
}
return PLUGIN_CONTINUE
}
stock get_ending(num, const a[], const b[], const c[], output[], lenght)
{
new num100 = num % 100, num10 = num % 10;
if(num100 >=5 && num100 <= 20 || num10 == 0 || num10 >= 5 && num10 <= 9) format(output, lenght, "%s", a);
else if(num10 == 1) format(output, lenght, "%s", b);
else if(num10 >= 2 && num10 <= 4) format(output, lenght, "%s", c);
}
/**==============================================================================
==
Меню последнего КТ
================================================================================
=*/
public LastMenu(id)
{
new Len, MenuBody[512]
new Keys = MENU_KEY_0
Len = format(MenuBody, 1023, "\dТы \rПоследний \yКонтер^n\dЖелаешь дуэль с \rТеррористом?^n^n")
Keys |= (1 << 0)
Len += format(MenuBody[Len], 1023, "\r1. \wДа^n")
Keys |= (1 << 1)
Len += format(MenuBody[Len], 1023, "\r2. \wНет^n")
show_menu(id, Keys, MenuBody, -1, "Last Menu")
return PLUGIN_CONTINUE
}
/**==============================================================================
==
Действие меню последнего КТ
================================================================================
=*/
public ActionLastMenu(id, key)
{
switch(key)
{
case 0:
{
client_cmd(id, "deathrun_duels")
}
}
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Bullet damage
================================================================================
=*/
public FwdDamagePlayer(v, ent, a, Float:damage, bits)
{
new mode[32];
get_cvar_string("deathrun_mode", mode, 31);
if(equal(mode, "DUEL"))
return HAM_IGNORED
if(vampire)
{
if(!is_user_connected_v_a(v,a) || get_user_team(a) == get_user_team(v))
return HAM_IGNORED; /*Игнорируем последующие действия.*/
new rnd = random_num(20,30); /*Создаём переменную и записываем в неё рандомное число.*/
set_dhudmessage( 255, 0, 0, -1.0, 0.55, 2, 1.1, 3.1, 0.01, 1.5 ); /*Настройки дхуд сообщения.*/
show_dhudmessage(a, "+%d HP", rnd); /*Пишем в центр вампиру сколько ему прибавило*/
fm_set_user_health(a, pev(a, pev_health) + rnd); /*Прибавляем к здоровью число.*/
}
return HAM_IGNORED;
}
public FwdKilledPlayer(v,a)
{
new mode[32];
get_cvar_string("deathrun_mode", mode, 31);
if(equal(mode, "DUEL"))
return HAM_IGNORED
if(!is_user_connected_v_a(v,a) || v == a ) /*Проверяем если нету на сервере атакующего или жертвы или жертва и есть атакующий или не идёт режим.*/
return HAM_IGNORED; /*Игнорируем последующие действия.*/
if(get_user_team(a) == 2)
{
if(vampire)
{
new szNameAttacker[32]; /*Переменная имя игрока*/
get_user_name(a, szNameAttacker, charsmax(szNameAttacker)); /*получаем имя атакующего.*/
set_dhudmessage( 149, 68, 0, -1.0, -0.35, 2, 1.1, 3.1, 0.01, 1.5 ); /*Настройки дхуд сообщения.*/
show_dhudmessage(0, "%s Получил 2 жизни за убийство Вампира", szNameAttacker); /*Выводим дхуд сообщение.*/
set_life(a, 2); /*Даём атакующиму 2 жизни.*/
}
if(infur)
{
new szNameAttacker[32]; /*Переменная имя игрока*/
get_user_name(a, szNameAttacker, charsmax(szNameAttacker)); /*получаем имя атакующего.*/
set_dhudmessage( 149, 68, 0, -1.0, -0.35, 2, 1.1, 3.1, 0.01, 1.5 ); /*Настройки дхуд сообщения.*/
show_dhudmessage(0, "%s Получил 3 жизни за убийство Фурии", szNameAttacker); /*Выводим дхуд сообщение.*/
set_life(a, 3); /*Даём атакующиму 3 жизни.*/
}
if(invis)
{
new szNameAttacker[32]; /*Переменная имя игрока*/
get_user_name(a, szNameAttacker, charsmax(szNameAttacker)); /*получаем имя атакующего.*/
set_dhudmessage( 149, 68, 0, -1.0, -0.35, 2, 1.1, 3.1, 0.01, 1.5 ); /*Настройки дхуд сообщения.*/
show_dhudmessage(0, "%s Получил 2 жизни за убийство Неведимки", szNameAttacker); /*Выводим дхуд сообщение.*/
set_life(a, 2); /*Даём атакующиму 2 жизни.*/
}
}
return HAM_IGNORED; /*Игнорируем последующие действия.*/
}
public dropcmd(id) {
if(has_minigun[id] && haswhpnnmg[id] && is_user_alive(id) && rambo && invis)
{
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
public ham_player_kill(victim)
{
new mode[32];
get_cvar_string("deathrun_mode", mode, 31);
if(!equal(mode, "DUEL"))
{
new name[32]
get_user_name(victim, name, 31)
get_players(szPlayers, szNum)
for(new i; i < szNum; i++)
{
Player = szPlayers[i]
if(rejim_activated)
{
if(cs_get_user_team(victim) == CS_TEAM_CT)
{
if(cs_get_user_team(Player) == CS_TEAM_T && is_user_alive(Player))
{
cs_set_user_money_ul(Player, cs_get_user_money_ul(Player) + 1000)
}
set_dhudmessage(random_num(0, 255), random_num(0, 255), random_num(0, 255), 0.15, 0.35, 0, 0.0, 0.0, 0.1, 1.0)
show_dhudmessage(Player, "Террорист %s получил 1000$", name)
}
}
}
}
return PLUGIN_HANDLED
}
public vampire_hud(id)
{
new mode[32];
get_cvar_string("deathrun_mode", mode, 31);
if(vampire && !equal(mode, "DUEL"))
{
new szPlayers[32], iNumPlayers, iNumTerr, szNameTerr[33][33], message[512], iLen; /*Всякие переменные.*/
get_players(szPlayers, iNumPlayers); /*Получение игроков.*/
for(new i; i < iNumPlayers; i++)
if(is_user_alive(szPlayers[i]) && get_user_team(szPlayers[i]) == 1) /*Проверям если игрок живой терр вампир.*/
{
iNumTerr++; /*Прибавляем к переменной 1.*/
get_user_name(szPlayers[i], szNameTerr[iNumTerr], 31); /*Получаем ник игрока.*/
}
if(iNumTerr) /*Проверяем есть ли живые вампиры.*/
iLen = format(message[iLen], charsmax(message)-iLen, "Вампир%s:^n", iNumTerr > 1 ? "ы":""); /*Заголовок*/
else
iLen = format(message[iLen], charsmax(message)-iLen, "Вампиры: Отсутствуют"); /*Заголовок*/
for(new q = 1; q <= iNumTerr; q++) /*Цикл по террористам.*/
iLen += format(message[iLen], charsmax(message)-iLen, "%s: %d HP%s", szNameTerr[q], pev(get_user_index(szNameTerr[q]), pev_health), iNumTerr-q ? "^n" : ""); /*Выводим ник и здоровье вампира*/
set_dhudmessage( iNumTerr > 1? 255 : 0, 255, 0, -1.0, -0.10, 0, 0.1, 0.1, 0.1, 1.5 ); /*Настройки дхуд сообщенияю*/
show_dhudmessage(0, message); /*Выводим сообщение.*/
}
return PLUGIN_HANDLED
}
public TimerExplode(id)
{
if(GetTsNum(0))
{
new mode[32];
get_cvar_string("deathrun_mode", mode, 31);
if(!equal(mode, "DUEL"))
{
seconds--
set_dhudmessage(random_num(0, 255), random_num(0, 255), random_num(0, 255), -1.0, 0.01, 2, 0.02, 1.0, 0.00, 0.0 );
show_dhudmessage(0, "До выбора режима Осталось %d !", seconds)
if(seconds < 1)
{
szTimeBlocked = true
GameMenu(id)
set_random(id)
remove_task(100499)
}
}
}
}
stock sm_narkotik_player(id)
{
new mode[32];
get_cvar_string("deathrun_mode", mode, 31);
if(!equal(mode, "DUEL"))
{
if(is_user_alive(id))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SetFOV"), _, id)
write_byte( 200 )
message_end()
}
}
return PLUGIN_HANDLED
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1049\\ f0\\ fs16 \n\\ par }
*/