PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>
#include <hamsandwich>
#include <fakemeta>
#include <engine>
#include <nvault>
#define USE_CC
#if defined USE_CC
#include <colorchat>
#endif
///////////////
// =Defines= //
///////////////
#define VERSION "3.2"
#define IsPlayer(%1) (1<=%1<=g_max_clients)
#define REQUIRED_ADMIN_LEVEL ADMIN_KICK
#define ADMIN_VOICE ADMIN_MENU
#define OFFSET_PRIMARYWEAPON 116
/////////////////////////////////////////////////////////
//////////////////
// =New things= //
//////////////////
#if defined USE_CC
new const PREFIX[] = "[Jailbreak]^x04:" // Prefix
#else
new const PREFIX[] = "[Jailbreak]:" // Normal prefix
#endif
new g_max_clients
new cvar_days
new beacon_sprite
new cvar_daysmenu
new cvar_showplayers
new days
new specialday[21]
enum
{
DAY_NONE,
DAY_MUSIC,
DAY_GRAV,
DAY_FREEDAY,
DAY_ZOMBIE,
DAY_LAVA,
DAY_SHARK,
DAY_CAGE,
DAY_DM,
DAY_NIGHT,
DAY_SPARTAN
}
// Sounds
new musicday_song[] = "sounds/1.mp3"
new musicday_song2[] = "sounds/2.mp3"
new musicday_song3[] = "sounds/14.mp3"
new musicday_song4[] = "sounds/papa.mp3"
new alarm[] = "sounds/newalarm.mp3"
new zombiesound[] = "sound/jailbreak/zombie_day.mp3"
new name[33]
new bool:g_connected[33]
new bool: gravityday
new bool: got_camo[33]
new bool: can_have_gun[33]
public plugin_init()
{
cvar_days = register_cvar("jb_days", "1")
cvar_showplayers = register_cvar("jb_show_players", "1")
cvar_daysmenu = register_cvar("jb_enable_days", "1")
register_clcmd("say /daysmenu", "specialday_check")
register_clcmd("say /days", "specialday_check")
register_plugin( "Jailbreak-Days", "2.0", "@Rabb[i]T-`" )
}
public plugin_precache()
{
precache_generic(musicday_song)
precache_generic(musicday_song2)
precache_generic(musicday_song3)
precache_generic(alarm)
precache_generic(zombiesound)
beacon_sprite = precache_model("sprites/shockwave.spr")
}
stock strip_weapons(index)
{
strip_user_weapons(index)
set_pdata_int(index, OFFSET_PRIMARYWEAPON, 0)
give_item(index, "weapon_knife")
}
///////////////////////////////////////////////////
//-------------PLAYER SPAWN----------------------//
///////////////////////////////////////////////////
public Event_Playerspawn(id)
{
if(!IsPlayer(id))
return PLUGIN_HANDLED
if(is_user_alive(id))
{
if(cs_get_user_team(id) == CS_TEAM_T)
{
if(got_camo[id])
{
cs_reset_user_model(id)
got_camo[id] = false
}
}
set_user_rendering(id)
}
specialday[20] = DAY_NONE
return PLUGIN_HANDLED
}
////////////////////////////////////////////////////////////
//-----------------ROUND END/ ROUND START-----------------//
////////////////////////////////////////////////////////////
public Event_Roundend()
{
if(gravityday)
{
server_cmd("sv_gravity 800")
gravityday = false
}
if(specialday[20] == DAY_DM)
server_cmd("mp_friendlyfire 0")
client_cmd(0, "mp3 stop")
client_cmd(0, "stopsound")
}
public Event_Roundstart()
{
if(get_pcvar_num(cvar_days))
{
days ++
}
}
/////////////////////////////////////////////////////////////
//-----------------THE DAYS MENU---------------------------//
/////////////////////////////////////////////////////////////
public specialday_check(id)
{
if(!get_pcvar_num(cvar_daysmenu))
{
#if defined USE_CC
ColorChat(id, RED, "%s Days are^x03 disabled", PREFIX)
#else
client_print(id, print_chat, "%s Days are disabled", PREFIX)
#endif
return PLUGIN_HANDLED
}
if(get_user_team(id) != 2)
{
#if defined USE_CC
ColorChat(id, RED, "%s Only^x03 CT's^x04 can start a^x03 special day", PREFIX)
#else
client_print(id, print_chat, "%s Only CT's can start a special day", PREFIX)
#endif
return PLUGIN_HANDLED
}
if(!is_user_alive(id))
{
#if defined USE_CC
ColorChat(id, RED, "%s You have to be^x03 alive^x04 to start a^x03 special day", PREFIX)
#else
client_print(id, print_chat, "%s You have to be alive to start a special day", PREFIX)
#endif
return PLUGIN_HANDLED
}
if(specialday[20] != DAY_NONE)
{
#if defined USE_CC
ColorChat(id, RED, "%s There is already a day chosen", PREFIX)
#else
client_print(id, print_chat, "%s There is already a day chosen", PREFIX)
#endif
return PLUGIN_HANDLED
}
specialday_menu(id)
return PLUGIN_HANDLED
}
public specialday_menu(id)
{
new specialdaymenu = menu_create("\ySpecial Days:", "specialday_submenu")
menu_additem(specialdaymenu, "\wMusic Day", "1", 0);
menu_additem(specialdaymenu, "\wGravity Day", "2", 0);
menu_additem(specialdaymenu, "\wFreeday", "3", 0);
menu_additem(specialdaymenu, "\wZombie Day", "4", 0);
menu_additem(specialdaymenu, "\wLava Day", "5", 0);
menu_additem(specialdaymenu, "\wShark Day", "6", 0);
menu_additem(specialdaymenu, "\wCage Day", "7", 0);
menu_additem(specialdaymenu, "\wDeathMatch Day", "8", 0);
menu_additem(specialdaymenu, "\wNight Crawler Day", "9", 0)
menu_additem(specialdaymenu, "\wSpartan Day", "10", 0)
menu_setprop(specialdaymenu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, specialdaymenu, 0);
}
public specialday_submenu(id, specialdaymenu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(specialdaymenu);
return PLUGIN_HANDLED;
}
new Data[7], Name[64];
new Access, Callback;
menu_item_getinfo(specialdaymenu, item, Access, Data,5, Name, 63, Callback);
new Key = str_to_num(Data);
switch (Key)
{
case 1:
specialday[20] = DAY_MUSIC
case 2:
specialday[20] = DAY_GRAV
case 3:
specialday[20] = DAY_FREEDAY
case 4:
specialday[20] = DAY_ZOMBIE
case 5:
specialday[20] = DAY_LAVA
case 6:
specialday[20] = DAY_SHARK
case 7:
specialday[20] = DAY_CAGE
case 8:
specialday[20] = DAY_DM
case 9:
specialday[20] = DAY_NIGHT
case 10:
specialday[20] = DAY_SPARTAN
}
if(IsPlayer(id) && is_user_alive(id))
do_specialday(id)
menu_destroy(specialdaymenu);
return PLUGIN_HANDLED
}
public do_specialday(id)
{
for(new i = 0; i < g_max_clients; i++)
{
switch(specialday[20])
{
case DAY_MUSIC:
{
new musicmenu = menu_create("\yMusic Choice", "musicday_submenu")
menu_additem(musicmenu, "\wPlay Music", "1", 0)
menu_additem(musicmenu, "\wStop Music", "2", 0)
menu_setprop(musicmenu,MPROP_EXIT, MEXIT_ALL)
menu_display(id, musicmenu, 0)
}
case DAY_GRAV:
{
server_cmd("sv_gravity 200")
#if defined USE_CC
ColorChat(0, RED, "%s Today is^x03 Gravity day", PREFIX)
#else
client_print(0, print_chat, "%s Today is Gravity day", PREFIX)
#endif
gravityday = true
}
case DAY_FREEDAY:
{
if(IsPlayer(id) && is_user_alive(id))
{
if(cs_get_user_team(i) == CS_TEAM_T)
set_user_rendering(i, kRenderFxGlowShell, 255, 0, 0, kRenderNormal, 16)
}
#if defined USE_CC
ColorChat(0, RED, "%s Today is^x03 Freeday", PREFIX)
#else
client_print(0, print_chat, "%s Today is Freeday", PREFIX)
#endif
}
case DAY_ZOMBIE:
{
if(IsPlayer(i) && is_user_alive(i))
{
switch(cs_get_user_team(i))
{
case CS_TEAM_T:
{
set_user_health(i, 150)
give_item(i, "weapon_ak47")
give_item(i, "weapon_m4a1")
cs_set_user_bpammo(i, CSW_AK47, 90)
cs_set_user_bpammo(i, CSW_M4A1, 90)
}
case CS_TEAM_CT:
{
if(is_user_alive(i))
{
set_user_health(i, 500)
can_have_gun[i] = false
}
}
}
}
client_cmd(0, "mp3 play ^"%s^"", zombiesound)
#if defined USE_CC
ColorChat(0, RED, "%s Today is^x03 Zombie Day", PREFIX)
#else
client_print(0, print_chat, "%s Today is Zombie day", PREFIX)
#endif
}
case DAY_LAVA:
{
#if defined USE_CC
ColorChat(0, RED, "%s Today is^x03 Lava Day,^x03 Stand on a^x03 spray at all times", PREFIX)
#else
client_print(0, print_chat, "%s Today is Lava day, Stand on a spray at all times", PREFIX)
#endif
}
case DAY_SHARK:
{
if(IsPlayer(i) && is_user_alive(i))
{
switch(cs_get_user_team(i))
{
case CS_TEAM_T:
{
set_user_health(i, 200)
give_item(i, "weapon_ak47")
give_item(i, "weapon_m4a1")
cs_set_user_bpammo(i, CSW_AK47, 90)
cs_set_user_bpammo(i, CSW_M4A1, 90)
}
case CS_TEAM_CT:
{
if(is_user_alive(i))
{
set_user_noclip(i, 1)
set_user_health(i, 300)
}
}
}
#if defined USE_CC
ColorChat(0, RED, "%s Today is^x03 Shark Day", PREFIX)
#else
client_print(0, print_chat, "%s Today is Shark day", PREFIX)
#endif
}
}
case DAY_CAGE:
{
#if defined USE_CC
ColorChat(0, RED, "%s Today is cage day", PREFIX)
#else
client_print(0, print_chat, "%s Today is a cage day", PREFIX)
#endif
}
case DAY_DM:
{
server_cmd("mp_friendlyfire 1")
#if defined USE_CC
ColorChat(0, RED, "%s Today is^x03 Deathmatch Day,^x04 Last survivor chooses lr", PREFIX)
#else
client_print(0, print_chat, "%s Today is Deathmatch Day, Last survivor chooses lr", PREFIX)
#endif
}
case DAY_NIGHT:
{
if(IsPlayer(i) && is_user_alive(i))
{
switch(cs_get_user_team(i))
{
case CS_TEAM_T:
{
give_item(i, "weapon_m4a1")
give_item(i, "weapon_deagle")
cs_set_user_bpammo(i, CSW_M4A1, 90)
cs_set_user_bpammo(i, CSW_DEAGLE, 35)
}
case CS_TEAM_CT:
{
strip_weapons(id)
set_user_rendering(i, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 0)
can_have_gun[i] = false
}
}
}
#if defined USE_CC
ColorChat(0, RED, "%s Today is a^x03 NightCrawler Day", PREFIX)
#else
client_print(0, print_chat, "%s Today is a NightCrawler Day", PREFIX)
#endif
}
case DAY_SPARTAN:
{
if(IsPlayer(i) && is_user_alive(i))
{
switch(cs_get_user_team(i))
{
case CS_TEAM_T:
{
give_item(i, "weapon_shield")
give_item(i, "weapon_deagle")
cs_set_user_bpammo(i, CSW_DEAGLE, 35)
}
case CS_TEAM_CT:
{
give_item(i, "weapon_deagle")
give_item(i, "weapon_m4a1")
cs_set_user_bpammo(i, CSW_DEAGLE, 35)
cs_set_user_bpammo(i, CSW_M4A1, 90)
}
}
}
#if defined USE_CC
ColorChat(0, RED, "%s Today is^x03 Spartan Day", PREFIX)
#else
client_print(0, print_chat, "%s Today is Spartan Day", PREFIX)
#endif
}
}
}
}
public musicday_submenu(id, musicmenu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(musicmenu)
return PLUGIN_HANDLED
}
new Data[7], Name[64]
new Access, Callback
menu_item_getinfo(musicmenu, item, Access, Data, 5, Name, 63, Callback)
new key = str_to_num(Data)
switch(key)
{
case 1:
{
switch(random_num(1, 4))
{
case 1:
{
client_cmd(0, "mp3 play ^"%s^"", musicday_song)
}
case 2:
{
client_cmd(0, "mp3 play ^"%s^"", musicday_song2)
}
case 3:
{
client_cmd(0, "mp3 play ^"%s^"", musicday_song3)
}
case 4:
{
client_cmd(0, "mp3 player ^"%s^"",musicday_song4)
}
}
}
case 2:
{
client_cmd(0, "mp3 stop")
}
}
menu_display(id, musicmenu, 0)
return PLUGIN_CONTINUE
}
///////////////////////////////////////////////
//----------BEACON---------------------------//
///////////////////////////////////////////////
public beacon(id)
{
if(/*!is_user_connected(id) || */!is_user_alive(id))
return PLUGIN_HANDLED
if(cs_get_user_team(id) == CS_TEAM_CT)
{
static origin[3]
get_user_origin(id, origin)
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_BEAMCYLINDER) // TE id
write_coord(origin[0]) // x
write_coord(origin[1]) // y
write_coord(origin[2]-20) // z
write_coord(origin[0]) // x axis
write_coord(origin[1]) // y axis
write_coord(origin[2]+200) // z axis
write_short(beacon_sprite) // sprite
write_byte(0) // startframe
write_byte(1) // framerate
write_byte(6) // life
write_byte(2) // width
write_byte(1) // noise
write_byte(0) // red
write_byte(0) // green
write_byte(250) // blue
write_byte(200) // brightness
write_byte(0) // speed
message_end()
}
else if(cs_get_user_team(id) == CS_TEAM_T)
{
static origin[3]
get_user_origin(id, origin)
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_BEAMCYLINDER) // TE id
write_coord(origin[0]) // x
write_coord(origin[1]) // y
write_coord(origin[2]-20) // z
write_coord(origin[0]) // x axis
write_coord(origin[1]) // y axis
write_coord(origin[2]+200) // z axis
write_short(beacon_sprite) // sprite
write_byte(0) // startframe
write_byte(1) // framerate
write_byte(6) // life
write_byte(2) // width
write_byte(1) // noise
write_byte(250) // red
write_byte(0) // green
write_byte(0) // blue
write_byte(200) // brightness
write_byte(0) // speed
message_end()
}
set_task(1.0, "beacon", id)
return PLUGIN_HANDLED
}
//////////////
// =Stocks= //
//////////////
stock check_user(index)
{
if(!is_user_connected(index) ||(is_user_bot(index)))
{
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
stock is_player(index)
{
new class[32];
pev(index,pev_classname,class,31)
if(equal(class,"player"))
return 1;
return 0;
}