קוד:
#include < amxmodx >
#include < amxmisc >
#include < fakemeta_util >
#include < cstrike >
#include < dhudmessage >
#include < engine >
new Timer, g_max_clients;
new DayName[ 256 ];
new gSayCmd[ ] [ ] = { "say /days", "say !days", "say_team /days", "say_team !days","/daysmenu","!daysmenu" }
new const g_szDaySound[] = "Jailbreak/voteday.mp3";
public plugin_init() {
register_plugin("JailBreak Days", "0.1","iatraf")
register_clcmd ( gSayCmd[1/2/3/4] , "DaysMenu" )
register_logevent( "RoundEnd", 2, "1=Round_End" )
register_event("TextMsg", "RoundEnd", "a", "2=#Game_will_restart_in");
register_event("CurWeapon", "Event_CurWeapon", "be","1=1")
g_max_clients = get_maxplayers()
}
public plugin_precache()
{
precache_sound( g_szDaySound );
}
public RoundEnd()
{
if(task_exists(12345))
remove_task(12345)
server_cmd("bh_enabled 1")
NoEffect()
}
public DaysMenu(id)
{
if(is_user_admin(id))
{
new daysmenu = menu_create("\r[Jailbreak] \wDays Menu","DaysMenu_Handler")
menu_additem(daysmenu, "\wFree Day", "1")
menu_additem(daysmenu, "\wNightCrawler Day", "2")
menu_additem(daysmenu, "\wZombie Day", "3")
menu_display( id,daysmenu,0 )
}
}
public DaysMenu_Handler( id, daysmenu, item )
{
if( item == MENU_EXIT )
{
menu_destroy( daysmenu )
return PLUGIN_HANDLED
}
new szName[ 32 ];
get_user_name( id, szName, 31 );
new data[ 6 ], iName[ 64 ]
new access, callback
menu_item_getinfo( daysmenu, item, access, data, 5, iName, 63, callback )
new key = str_to_num( data )
switch( key )
{
case 1:
{
FreeDay();
}
case 2:
{
NightCrawlerDay();
}
case 3:
{
ZombieDay();
}
}
ColorChat(0, "Admin^3 %s^1 has Started^4 %s^1!", szName, DayName )
client_cmd( 0, "mp3 play ^"sound/%s^"", g_szDaySound );
return PLUGIN_HANDLED
}
public CountDown()
{
for(new i = 1; i <= g_max_clients ; i++)
{
if(Timer == 0)
{
Effect()
set_dhudmessage(0, 160, 0, -1.0, 0.25, 2, 10.0, 5.0, 0.1, 1.5)
show_dhudmessage(0, "%s^n[ Time is over ]",DayName)
fm_set_user_godmode(i, 0)
set_pev( i, pev_flags, pev( i, pev_flags ) & ~FL_FROZEN );
return PLUGIN_HANDLED;
}
set_hudmessage(random(256), random(256), random(256), -1.0, 0.16, 0, 6.0, 12.0)
show_hudmessage(0, "%s^n[ %d ]",DayName,Timer)
Timer--
set_task(1.0, "CountDown", 12345);
return PLUGIN_HANDLED;
}
return PLUGIN_HANDLED
}
public FreeDay()
{
DayName = "Free Day"
server_cmd("bh_enabled 0")
Open()
Timer = 60;
CountDown()
for(new i = 1; i <= g_max_clients ; i++)
{
if(is_user_alive( i ) )
{
switch( cs_get_user_team(i) )
{
case CS_TEAM_T:
{
return 1;
}
case CS_TEAM_CT:
{
fm_strip_user_weapons(i)
fm_give_item(i, "weapon_knife")
fm_give_item(i, "weapon_m4a1")
fm_give_item(i, "weapon_ak47")
fm_give_item(i, "weapon_deagle")
cs_set_user_bpammo(i, CSW_M4A1, 9999)
cs_set_user_bpammo(i, CSW_AK47, 9999)
cs_set_user_bpammo(i, CSW_DEAGLE, 9999)
}
}
}
}
return PLUGIN_HANDLED
}
public NightCrawlerDay()
{
DayName = "NightCrawler Day"
server_cmd("bh_enabled 0")
Open()
for(new i = 1; i <= g_max_clients ; i++)
{
if(is_user_alive( i ))
{
switch( get_user_team( i ) )
{
case CS_TEAM_T:
{
fm_give_item(i, "weapon_m4a1")
fm_give_item(i, "weapon_ak47")
fm_give_item(i, "weapon_deagle")
cs_set_user_bpammo(i, CSW_M4A1, 9999)
cs_set_user_bpammo(i, CSW_AK47, 9999)
cs_set_user_bpammo(i, CSW_DEAGLE, 9999)
}
case CS_TEAM_CT:
{
new players[32], pnum
get_players(players, pnum, "ae", "TERRORIST");
new NCHealth = (35 * pnum);
fm_set_user_health(i, NCHealth)
fm_strip_user_weapons(i)
fm_give_item( i, "weapon_knife" )
fm_set_user_rendering(i, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 0)
}
}
}
}
}
public ZombieDay()
{
DayName = "Zombie Day"
server_cmd("bh_enabled 0")
Effect()
Open()
Timer = 150;
CountDown()
for(new i = 1; i <= g_max_clients ; i++)
{
if(is_user_alive( i ) )
{
switch( get_user_team( i ) )
{
case CS_TEAM_T:
{
fm_give_item(i, "weapon_m4a1")
fm_give_item(i, "weapon_ak47")
fm_give_item(i, "weapon_deagle")
fm_give_item(i, "weapon_hegrenade")
cs_set_user_bpammo(i, CSW_M4A1, 9999)
cs_set_user_bpammo(i, CSW_AK47, 9999)
cs_set_user_bpammo(i, CSW_DEAGLE, 9999)
}
case CS_TEAM_CT:
{
new players[32], pnum
get_players(players, pnum, "ae", "TERRORIST");
new ZMHealth = (3500 * pnum);
fm_set_user_health(i, ZMHealth)
set_pev(i, pev_flags, pev(i, pev_flags) | FL_FROZEN)
fm_set_user_godmode( i, 1 )
}
}
}
}
}
public Open()
{
new ent = -1
while((ent = fm_find_ent_by_class(ent, "func_door")))
dllfunc(DLLFunc_Use, ent, 0)
}
public Effect()
{
set_lights("d")
server_cmd("bh_enabled 0")
message_begin(MSG_ALL,get_user_msgid("Fog"),{0,0,0},0)
write_byte(random_num( 0, 250 )) // R
write_byte(random_num( 0, 250 )) // G
write_byte(random_num( 0, 250 )) // B
write_byte(10) // SD
write_byte(40) // ED
write_byte(95) // D1
write_byte(59) // D2
message_end()
}
public NoEffect()
{
set_lights("#OFF");
message_begin(MSG_ALL,get_user_msgid("Fog"),{0,0,0},0)
write_byte(0) // R
write_byte(0) // G
write_byte(0) // B
write_byte(0) // SD
write_byte(0) // ED
write_byte(0) // D1
write_byte(0) // D2
message_end()
}
stock ColorChat(const id, const string[], {Float, Sql, Resul,_}:...) {
new msg[191], players[32], count = 1;
static len; len = formatex(msg, charsmax(msg), "^4[Jailbreak]^1 ");
vformat(msg[len], charsmax(msg) - len, string, 3);
if(id) players[0] = id;
else get_players(players,count,"ch");
for (new i = 0; i < count; i++)
{
if(is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"),_, players[i]);
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}