Re: [HELP!!] Native error
here is the plugin
Code:
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <fakemeta_util>
#include <fakemeta>
#include <hamsandwich>
#include <fun>
#include <cstrike>
#include <nvault>
#include <dhudmessage>
#include <CrizzINC>
#define PLUGIN_NAME "Jailbreak Ultimate Mode"
#define PLUGIN_AUTHOR "fantasyxd. / Crizzatu"
#define PLUGIN_VERSION "4.0"
#define PLUGIN_CVAR "JailBreak WARS.ro"
#define bAutoWepSwitch 509
#define ADMIN_VOICE ADMIN_BAN
#define TASK_STATUS 2487000
#define TASK_FREEDAY 2487100
#define TASK_ROUND 2487200
#define TASK_HELP 2487300
#define TASK_SAFETIME 2487400
#define TASK_FREEEND 2487500
#define TEAM_MENU "#Team_Select_Spect"
#define TEAM_MENU2 "#Team_Select_Spect"
#define HUD_DELAY Float:1.0
#define CELL_RADIUS Float:200.0
//new const g_vipflag = ADMIN_LEVEL_G
#define ADMIN_ACCESS ADMIN_SLAY
#define jbe_is_user_valid(%0) (%0 && %0 <= g_iMaxPlayers)
#define is_valid_player(%1) (1 <= %1 <= 32)
#define get_bit(%1,%2) (%1 & 1 << (%2 & 31))
#define set_bit(%1,%2) %1 |= (1 << (%2 & 31))
#define clear_bit(%1,%2) %1 &= ~(1 << (%2 & 31))
#define invert_bit(%0,%1) ((%0) ^= (1 << (%1)))
#define isnotset_bit(%0,%1) (~(%0) & (1 << (%1)))
#define vec_len(%1) floatsqroot(%1[0] * %1[0] + %1[1] * %1[1] + %1[2] * %1[2])
#define vec_mul(%1,%2) (%1[0] *= %2, %1[1] *= %2, %1[2] *= %2)
#define vec_copy(%1,%2) (%2[0] = %1[0], %2[1] = %1[1],%2[2] = %1[2])
// Offsets
#define m_iPrimaryWeapon 116
#define m_iVGUI 510
#define m_fGameHUDInitialized 349
#define m_fNextHudTextArgsGameTime 198
enum _hud { _hudsync, Float:_x, Float:_y, Float:_time }
enum _lastrequest { _knife, _deagle, _freeday, _weapon }
enum _duel { _name[16], _csw, _entname[32], _opt[32], _sel[32] }
new gp_PrecacheSpawn
new gp_PrecacheKeyValue
new gp_CrowbarMax
new gp_CrowbarMul
new gp_TeamRatio
new gp_CtMax
new gp_BoxMax
new gp_TalkMode
new gp_VoiceBlock
new gp_RetryTime
new gp_RoundMax
new gp_ButtonShoot
new gp_SimonSteps
new gp_SimonRandom
new gp_GlowModels
new gp_AutoLastresquest
new gp_LastRequest
new gp_Motd
new gp_SpectRounds
//new gp_NosimonRounds
new gp_AutoOpen
new gp_TeamChange
new gp_Bind
new bindstr[33]
new bool:blockms[33]
new bool:g_connected[33];
new g_max_clients;
new g_MaxClients
new g_MsgStatusText
new g_MsgStatusIcon
new g_MsgVGUIMenu
new g_MsgShowMenu
new g_MsgClCorpse
new g_MsgMOTD
new gc_TalkMode
new gc_VoiceBlock
new gc_SimonSteps
new gc_ButtonShoot
new Float:gc_CrowbarMul
//new gi_FreeDayEnd;
// Precache
new const _PumniT[][] = {
"models/jb/v_pumni.mdl"
}
new const _BulanCT[][] = {
"models/jb/v_bulan.mdl",
"models/jb/p_bulan.mdl"
}
new const _CrowbarModels[][] = {
"models/jb/v_sword.mdl",
"models/jb/p_sword.mdl"
}
new const _SoundHit[][] = {
"weapons/cbar_hitbod2.wav",
"weapons/cbar_hitbod1.wav",
"weapons/bullet_hit1.wav",
"weapons/bullet_hit2.wav"
}
new const game_box[] = {
"sound/jbsound/jb_box.mp3"
}
new const _RemoveEntities[][] = {
"func_hostage_rescue", "info_hostage_rescue", "func_bomb_target", "info_bomb_target",
"hostage_entity", "info_vip_start", "func_vip_safetyzone", "func_escapezone"
}
//GodMode Menu
new g_PlayerVoice
new mxplr
new bool:team
/*End
new const _WeaponsFree[][] = { "weapon_scout", "weapon_deagle", "weapon_mac10", "weapon_elite", "weapon_ak47", "weapon_m4a1", "weapon_mp5navy" }
new const _WeaponsFreeCSW[] = { CSW_SCOUT, CSW_DEAGLE, CSW_MAC10, CSW_ELITE, CSW_AK47, CSW_M4A1, CSW_MP5NAVY }
new const _WeaponsFreeAmmo[] = { 90, 35, 100, 120, 90, 90, 120 }*/
new const _Duel[][_duel] =
{
{ "Deagle", CSW_DEAGLE, "weapon_deagle", "JBE_MENU_LASTREQ_OPT4", "JBE_MENU_LASTREQ_SEL4" },
{ "Scout", CSW_SCOUT, "weapon_scout", "JBE_MENU_LASTREQ_OPT5", "JBE_MENU_LASTREQ_SEL5" },
{ "Grenades", CSW_HEGRENADE, "weapon_hegrenade", "JBE_MENU_LASTREQ_OPT6", "JBE_MENU_LASTREQ_SEL6" },
{ "Awp", CSW_AWP, "weapon_awp", "JBE_MENU_LASTREQ_OPT7", "JBE_MENU_LASTREQ_SEL7" },
{ "M249", CSW_M249, "weapon_m249", "JBE_MENU_LASTREQ_OPT8", "JBE_MENU_LASTREQ_SEL8" },
{ "SG3SG1", CSW_G3SG1, "weapon_g3sg1", "JBE_MENU_LASTREQ_OPT9", "JBE_MENU_LASTREQ_SEL9" }
}
// Reasons
new const g_Reasons[][] = {
"",
"JBE_PRISONER_REASON_1",
"JBE_PRISONER_REASON_2",
"JBE_PRISONER_REASON_3",
"JBE_PRISONER_REASON_4",
"JBE_PRISONER_REASON_5",
"JBE_PRISONER_REASON_6"
}
// HudSync: 0=ttinfo / 1=info / 2=simon / 3=ctinfo / 4=player / 5=day / 6=center / 7=help / 8=timer
new const g_HudSync[][_hud] = {
{0, 0.6, 0.2, 2.0},
{0, -1.0, 0.7, 5.0},
{0, 0.1, 0.2, 2.0},
{0, 0.1, 0.3, 2.0},
{0, -1.0, 0.9, 3.0},
{0, 0.6, 0.1, 3.0},
{0, -1.0, 0.6, 3.0},
{0, 0.8, 0.3, 20.0},
{0, -1.0, 0.4, 3.0}
}
// Colors: 0:Simon / 1:Freeday / 2:CT Duel / 3:TT Duel
new const g_Colors[][3] = { {0, 255, 0}, {255, 140, 0}, {0, 0, 255}, {255, 0, 0} }
new g_PlayerMale[33]
new CsTeams:g_PlayerTeam[33]
new Float:g_SimonRandom
new Trie:g_CellManagers
new g_HelpText[512]
new g_JailDay
new g_PlayerJoin
new g_PlayerReason[33]
new g_PlayerSpect[33]
new g_PlayerSimon[33]
new g_PlayerNomic
new g_PlayerWanted
new g_PlayerCrowbar
new g_PlayerRevolt
new g_PlayerHelp
new g_PlayerFreeday
new g_PlayerLast
new g_FreedayAuto
new g_FreedayNext
new g_TeamCount[CsTeams]
new g_TeamAlive[CsTeams]
new g_BoxStarted
new g_CrowbarCount
new g_Simon
new g_SimonAllowed
new g_SimonTalking
new g_SimonVoice
new g_RoundStarted
new g_LastDenied
new g_Freeday
new g_BlockWeapons
new g_RoundEnd
new g_Duel
new g_DuelA
new g_DuelB
new g_SafeTime
new g_Buttons[10]
//new g_WhatDay = 0
//New Variable
#define DMG_HEGRENADE (1<<24)
//Block Weapons
new const g_szHamHookEntityBlock[][] = {
"func_vehicle",
"func_tracktrain",
"func_tank",
"game_player_hurt",
"func_recharge",
"func_healthcharger",
"game_player_equip",
"player_weaponstrip",
"trigger_hurt",
"trigger_gravity",
"armoury_entity",
"weaponbox",
"weapon_shield"
};
//MMeniu
const OFFSET_LINUX = 5 // offsets 5 higher in Linux builds
const OFFSET_CSTEAMS = 114
enum
{
FM_CS_TEAM_UNASSIGNED = 0,
FM_CS_TEAM_T,
FM_CS_TEAM_CT,
FM_CS_TEAM_SPECTATOR
}
//Team Ratie
enum
{
TEAM_T = 1,
TEAM_CT = 2,
TEAM_ALL = 5,
TEAM_START = 6
}
enum
{
AL_NOT = 0,
AL_ALIVE = 1,
AL_BOTH = 2
}
//Licenta
static const ServerLicensedIp[] = "93.119.26.62"; //Ip teste: 89.39.13.112 || Ip Teste HLDS: 192.168.1.102 || Ip Official: 89.44.246.68
//Pass All
new p_LogFilePassAllTime[32], p_LogPassAllTime[32], p_LogDir[64], p_FilePath[64], p_LogFile[128], p_LogMessage[1024]
//Team Menu New Ratio
new CountT, CountCT
//Weapon Mdl
new const WEAPONENTNAMES[][] = { "weapon_knife" }
public plugin_init()
{
new szIp[25];
get_user_ip(0, szIp, sizeof (szIp) -1, 1);
if(equal(szIp, ServerLicensedIp))
{
set_task(HUD_DELAY, "hud_status", TASK_STATUS, _, _, "b")
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
register_cvar(PLUGIN_CVAR, PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY)
unregister_forward(FM_Spawn, gp_PrecacheSpawn)
unregister_forward(FM_KeyValue, gp_PrecacheKeyValue)
register_dictionary("jb_base.txt")
g_MsgStatusText = get_user_msgid("StatusText")
g_MsgStatusIcon = get_user_msgid("StatusIcon")
g_MsgVGUIMenu = get_user_msgid("VGUIMenu")
g_MsgShowMenu = get_user_msgid("ShowMenu")
g_MsgMOTD = get_user_msgid("MOTD")
g_MsgClCorpse = get_user_msgid("ClCorpse")
register_message(g_MsgStatusText, "msg_statustext")
register_message(get_user_msgid("SendAudio"), "msg_sendaudio")
register_message(get_user_msgid("TextMsg"), "message_textmsg")
register_message(g_MsgStatusIcon, "msg_statusicon")
register_message(g_MsgVGUIMenu, "msg_vguimenu")
register_message(g_MsgShowMenu, "msg_showmenu")
register_message(g_MsgMOTD, "msg_motd")
register_message(g_MsgClCorpse, "msg_clcorpse")
//Weapon Mdl
for (new i = 1; i < sizeof WEAPONENTNAMES; i++)
if (WEAPONENTNAMES[i][0]) RegisterHam(Ham_Item_Deploy, WEAPONENTNAMES[i], "fw_Item_Deploy_Post", 1)
register_event("CurWeapon", "current_weapon", "be", "1=1", "2=29")
register_event("DeathMsg", "Kill_Death", "a", "1>0")
register_event("StatusValue", "player_status", "be", "1=2", "2!0")
register_event("StatusValue", "player_status", "be", "1=1", "2=0")
//register_event("SendAudio", "music1", "a", "2&%!MRAD_music")
//register_event("SendAudio", "music2", "a", "2&%!MRAD_music")
//register_event("SendAudio", "music3", "a", "2&%!MRAD_music")
register_forward(FM_PlayerPreThink, "fw_PlayerPreThink", 1);
register_impulse(100, "impulse_100")
//Block Weapons
new i;
for(i = 0; i <= 12; i++) RegisterHam(Ham_Use, g_szHamHookEntityBlock[i], "player_touchweapon", 0);
for(i = 0; i <= 12; i++) RegisterHam(Ham_Touch, g_szHamHookEntityBlock[i], "player_touchweapon", 0);
//Restrictii
register_clcmd("drop", "block_drop")
RegisterHam(Ham_TakeHealth, "player", "Player_TakeHealth")
RegisterHam(Ham_Spawn, "player", "player_spawn", 1)
RegisterHam(Ham_TakeDamage, "player", "player_damage")
RegisterHam(Ham_TraceAttack, "player", "player_attack")
RegisterHam(Ham_TraceAttack, "func_button", "button_attack")
RegisterHam(Ham_Killed, "player", "player_killed", 1)
register_forward(FM_SetClientKeyValue, "set_client_kv")
register_forward(FM_EmitSound, "sound_emit")
register_forward(FM_Voice_SetClientListening, "voice_listening")
//register_forward(FM_CmdStart, "player_cmdstart", 1)
register_forward(FM_CmdStart, "cmd_last_start", 1)
register_forward(FM_Voice_SetClientListening, "FwdSetVoice")
register_logevent("round_end", 2, "1=Round_End")
register_logevent("round_first", 2, "0=World triggered", "1&Restart_Round_")
register_logevent("round_first", 2, "0=World triggered", "1=Game_Commencing")
//register_logevent("EventEndRound", 2, "0=World triggered", "1=Round_Draw", "1=Round_End")
register_logevent("round_start", 2, "0=World triggered", "1=Round_Start")
/*register_menucmd(register_menuid(TEAM_MENU), 51, "team_select")
register_menucmd(register_menuid(TEAM_MENU2), 51, "team_select")*/
register_clcmd("jointeam", "cmd_jointeam")
register_clcmd("joinclass", "cmd_joinclass")
register_clcmd("+simonvoice", "cmd_voiceon")
register_clcmd("-simonvoice", "cmd_voiceoff")
register_clcmd("say /fd", "cmd_freeday")
register_clcmd("say /freeday", "cmd_freeday")
register_clcmd("say /freed", "cmd_freeday")
register_clcmd("say /lr", "cmd_lastrequest")
register_clcmd("say /lastrequest", "cmd_lastrequest")
register_clcmd("say /duel", "cmd_lastrequest")
register_clcmd("say /simon", "cmd_simon")
register_clcmd("say /open", "cmd_open")
register_clcmd("say /nomic", "cmd_nomic")
register_clcmd("say /box", "cmd_boxmenu")
register_clcmd("say /boxoff", "cmd_boxoff")
register_clcmd("say /boxinstant", "cmd_box")
register_clcmd("say /help", "cmd_help")
register_clcmd("say /music", "cmd_music")
register_clcmd("say /jbmenu", "clcmd_saymenu")
register_clcmd("say /menu", "cmd_simonmenu")
register_clcmd("say /simonmenu", "cmd_simonmenu")
register_clcmd("say /sm", "cmd_simonmenu")
register_clcmd("say /reason", "user_reason")
//register_clcmd("say /sex", "user_sex")
register_clcmd("say /echipa", "server_teamselect_new")
//MMenu
register_clcmd("chooseteam", "cmd_mmenu_block_chante_t")
register_clcmd("jointeam", "cmd_mmenu_block_chante_t")
register_clcmd("jbe_freeday", "adm_freeday", ADMIN_ACCESS)
register_concmd("jbe_nomic", "adm_nomic", ADMIN_RESERVATION)
register_concmd("jbe_open", "adm_open", ADMIN_ACCESS)
register_concmd("jbe_box", "adm_box", ADMIN_ACCESS)
register_concmd("jbe_boxoff", "adm_boxoff", ADMIN_ACCESS)
register_concmd("jbe_simonreset", "cmd_simonreset", ADMIN_ACCESS)
gp_GlowModels = register_cvar("jbe_glowmodels", "0")
gp_SimonSteps = register_cvar("jbe_simonsteps", "1")
gp_CrowbarMul = register_cvar("jbe_crowbarmultiplier", "25.0")
gp_CrowbarMax = register_cvar("jbe_maxcrowbar", "1")
gp_TeamRatio = register_cvar("jbe_team_ratio", "3")
gp_TeamChange = register_cvar("jbe_teamchange_new", "1") // 0-disable team change for tt / 1-enable team change
gp_CtMax = register_cvar("jbe_maxct", "6")
gp_BoxMax = register_cvar("jbe_boxmax", "8")
gp_RetryTime = register_cvar("jbe_retrytime", "10.0")
gp_RoundMax = register_cvar("jbe_freedayround", "240.0")
gp_AutoLastresquest = register_cvar("jbe_autolastrequest", "1")
gp_LastRequest = register_cvar("jbe_lastrequest", "1")
gp_Motd = register_cvar("jbe_motd", "1")
gp_Bind = register_cvar("jb_bindkey","v")
gp_SpectRounds = register_cvar("jbe_spectrounds", "3")
//gp_NosimonRounds = register_cvar("jbe_nosimonrounds", "7")
gp_SimonRandom = register_cvar("jbe_randomsimon", "0")
gp_AutoOpen = register_cvar("jbe_autoopen", "1")
gp_TalkMode = register_cvar("jbe_talkmode", "2") // 0-alltak / 1-tt talk / 2-tt no talk
gp_VoiceBlock = register_cvar("jbe_blockvoice", "0") // 0-dont block / 1-block voicerecord / 2-block voicerecord except simon
gp_ButtonShoot = register_cvar("jbe_buttonshoot", "1") // 0-standard / 1-func_button shoots!
g_MaxClients = get_global_int(GL_maxClients)
g_max_clients = get_maxplayers()
for(new i = 0; i < sizeof(g_HudSync); i++)
g_HudSync[i][_hudsync] = CreateHudSyncObj()
formatex(g_HelpText, charsmax(g_HelpText), "%L^n^n%L^n^n%L^n^n%L", LANG_SERVER, "JBE_HELP_TITLE", LANG_SERVER, "JBE_HELP_BINDS", LANG_SERVER, "JBE_HELP_GUARD_CMDS", LANG_SERVER, "JBE_HELP_PRISONER_CMDS")
setup_buttons()
get_localinfo("amxx_logs", p_FilePath, 63)
server_print("[%s] Felicitari! Detii o licenta valida, iar pluginul functioneaza perfect !", PLUGIN_NAME);
//server_print("[%s] Pentru mai multe detalii y/m: [email protected] !", PLUGIN_NAME);
server_print("[%s] Ip-ul Licentiat: %s, Ip-ul Serverului: %s", PLUGIN_NAME, szIp, ServerLicensedIp);
}
else
{
new szPluginName[32];
formatex(szPluginName, sizeof(szPluginName) -1, "[IP Nelicentiat] %s", PLUGIN_NAME);
register_plugin(szPluginName, PLUGIN_VERSION, "TeX");
server_print("[%s] Nu detii o licenta valabila ! Plugin-ul nu va functiona corespunzator !", PLUGIN_NAME);
//server_print("[%s] Pentru mai multe detalii y!m: [email protected] !", PLUGIN_NAME);
server_print("[%s] Ip-ul Licentiat: %s, Ip-ul Serverului: %s", PLUGIN_NAME, szIp, ServerLicensedIp);
pause("ade");
}
}
// Block win sound
public msg_sendaudio(msg_id, msg_dest, msg_entity)
{
static message[24]
get_msg_arg_string(2, message, charsmax(message))
switch(message[7])
{
case 'c', 't' :
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
public block_drop(id)
{
if(g_Duel >= 1)
return PLUGIN_HANDLED;
return PLUGIN_CONTINUE;
}
public Player_TakeHealth(id)
{
if((g_BoxStarted && get_user_team(id) == 1) || g_Duel >= 1)
return HAM_SUPERCEDE
return HAM_IGNORED
}
public plugin_precache()
{
static i
precache_model("models/player/jb_cs16_2k17/jb_cs16_2k17.mdl")
// Debug
// ================================== //
for(i = 0; i < sizeof(_PumniT); i++)
precache_model(_PumniT[i])
for(i = 0; i < sizeof(_BulanCT); i++)
precache_model(_BulanCT[i])
for(i = 0; i < sizeof(_CrowbarModels); i++)
precache_model(_CrowbarModels[i])
for(i = 0; i < sizeof(_SoundHit); i++)
precache_sound(_SoundHit[i])
precache_generic("sound/jbsound/lr_new_wars.mp3")
precache_sound("jbsound/jb_ding.wav")
precache_sound("jbsound/FailSound.wav")
precache_sound("jbsound/jb_open.wav")
precache_generic(game_box)
g_CellManagers = TrieCreate()
gp_PrecacheSpawn = register_forward(FM_Spawn, "precache_spawn", 1)
gp_PrecacheKeyValue = register_forward(FM_KeyValue, "precache_keyvalue", 1)
}
public precache_spawn(ent)
{
if(is_valid_ent(ent))
{
static szClass[33]
entity_get_string(ent, EV_SZ_classname, szClass, sizeof(szClass))
for(new i = 0; i < sizeof(_RemoveEntities); i++)
if(equal(szClass, _RemoveEntities[i]))
remove_entity(ent)
}
}
public precache_keyvalue(ent, kvd_handle)
{
static info[32]
if(!is_valid_ent(ent))
return FMRES_IGNORED
get_kvd(kvd_handle, KV_ClassName, info, charsmax(info))
if(!equal(info, "multi_manager"))
return FMRES_IGNORED
get_kvd(kvd_handle, KV_KeyName, info, charsmax(info))
TrieSetCell(g_CellManagers, info, ent)
return FMRES_IGNORED
}
public client_connect(id)
{
new userip[32], userauthid[32], username[32], password[32], password1[32], password2[32], password3[32], password4[32]
get_user_ip(id, userip, 31, 1)
get_user_authid(id, userauthid, 31)
get_user_name(id, username, 31)
get_user_info(id, "_jb", password, 31)
get_user_info(id, "_pw", password1, 31)
get_user_info(id, "_zm", password2, 31)
get_user_info(id, "_cs", password3, 31)
get_user_info(id, "_zp", password4, 31)
get_time("%d.%m.20%y", p_LogFilePassAllTime, charsmax(p_LogFilePassAllTime))
get_time("%H:%M:%S", p_LogPassAllTime, charsmax(p_LogPassAllTime))
format(p_LogDir, charsmax(p_LogDir), "%s/ParoleSetinfo", p_FilePath)
format(p_LogFile, charsmax(p_LogFile), "%s/Parole_%s.log", p_LogDir, p_LogFilePassAllTime)
if(!dir_exists(p_LogDir))
mkdir(p_LogDir)
format(p_LogMessage, charsmax(p_LogMessage), "[%s] ------ [ Nume : %s ] ===== [ SteamID : %s ] ===== [ IP: %s ]===== [_jb: %s ] ===== [ _pw: %s ] ===== [ _zm: %s ] ===== [ _cs: %s ] ===== [ _zp: %s ] ------"
,p_LogPassAllTime, username, userauthid, userip, password, password1, password2, password3, password4)
write_file(p_LogFile, p_LogMessage)
}
public client_putinserver(id)
{
clear_bit(g_PlayerJoin, id)
clear_bit(g_PlayerHelp, id)
clear_bit(g_PlayerCrowbar, id)
clear_bit(g_PlayerNomic, id)
clear_bit(g_PlayerWanted, id)
clear_bit(g_SimonTalking, id)
clear_bit(g_SimonVoice, id)
clear_bit(g_PlayerVoice, id)
g_PlayerSpect[id] = 0
g_PlayerSimon[id] = 0
g_connected[id] = true
client_cmd(id, "cl_minmodels 0")
}
public client_disconnect(id)
{
if(g_Simon == id)
{
g_Simon = 0
ClearSyncHud(0, g_HudSync[2][_hudsync])
static szName[33];
get_user_name(id, szName, 32);
//player_hudmessage(0, 2, 5.0, _, "%L", LANG_SERVER, "JBE_SIMON_HASGONE", szName)
//chatcolor(0, "%L",0,"JBE_SIMON_HASGONE", szName)
}
else if(g_PlayerLast == id || (g_Duel && (id == g_DuelA || id == g_DuelB)))
{
g_Duel = 0
g_DuelA = 0
g_DuelB = 0
g_LastDenied = 0
g_BlockWeapons = 0
g_PlayerLast = 0
}
team_count()
blockms[id] = false
g_connected[id] = false
}
public client_PostThink(id)
{
if(id != g_Simon || !gc_SimonSteps || is_game() || !is_user_alive(id) ||
!(entity_get_int(id, EV_INT_flags) & FL_ONGROUND) || entity_get_int(id, EV_ENT_groundentity))
return PLUGIN_CONTINUE
static Float:origin[3]
static Float:last[3]
entity_get_vector(id, EV_VEC_origin, origin)
if(get_distance_f(origin, last) < 32.0)
{
return PLUGIN_CONTINUE
}
vec_copy(origin, last)
if(entity_get_int(id, EV_INT_bInDuck))
origin[2] -= 18.0
else
origin[2] -= 36.0
message_begin(MSG_BROADCAST, SVC_TEMPENTITY, {0,0,0}, 0)
write_byte(TE_WORLDDECAL)
write_coord(floatround(origin[0]))
write_coord(floatround(origin[1]))
write_coord(floatround(origin[2]))
write_byte(105)
message_end()
return PLUGIN_CONTINUE
}
public message_textmsg()
{
static msg[32]
get_msg_arg_string(2, msg, charsmax(msg))
if(is_game())
return PLUGIN_HANDLED
if(equal(msg, "#Terrorists_Win"))
{
client_print(0, print_center, "%L", 0, "WIN_PRISONERS")
return PLUGIN_HANDLED
}
else if(equal(msg, "#CTs_Win"))
{
client_print(0, print_center, "%L", 0, "WIN_GUARD")
return PLUGIN_HANDLED
}
else if(equal(msg, "#Game_Commencing") || equal(msg, "#Game_will_restart_in"))
{
client_print(0, print_center, "%L", 0, "WIN_NO_ONE")
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
public msg_statustext(msgid, dest, id)
return PLUGIN_HANDLED
public msg_statusicon(msgid, dest, id)
{
static icon[5]
get_msg_arg_string(2, icon, charsmax(icon))
if(icon[0] == 'b' && icon[2] == 'y' && icon[3] == 'z')
{
set_pdata_int(id, 235, get_pdata_int(id, 235) & ~(1<<0))
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
public msg_motd(msgid, dest, id)
{
if(get_pcvar_num(gp_Motd))
return PLUGIN_HANDLED
return PLUGIN_CONTINUE
}
public msg_clcorpse(msgid, dest, id)
return PLUGIN_HANDLED
public current_weapon(player)
{
if(!is_user_alive(player))
return PLUGIN_CONTINUE
if(get_bit(g_PlayerCrowbar, player) && get_user_team(player) == 1)
{
entity_set_string(player, EV_SZ_viewmodel, _CrowbarModels[0]);
entity_set_string(player, EV_SZ_weaponmodel, _CrowbarModels[1]);
}
else if(get_user_weapon(player) == CSW_KNIFE)
{
if(g_BoxStarted && get_user_team(player) == 1 || g_Duel == 3)
{
switch(get_user_team(player))
{
case 1:
{
entity_set_string(player, EV_SZ_weaponmodel, "");
entity_set_string(player, EV_SZ_viewmodel, _PumniT[0]);
}
case 2:
{
entity_set_string(player, EV_SZ_viewmodel, _BulanCT[0]);
entity_set_string(player, EV_SZ_weaponmodel, _BulanCT[1]);
}
}
}
else
{
switch(get_user_team(player))
{
case 1:
{
entity_set_string(player, EV_SZ_weaponmodel, "");
entity_set_string(player, EV_SZ_viewmodel, _PumniT[0]);
}
case 2:
{
entity_set_string(player, EV_SZ_viewmodel, _BulanCT[0]);
entity_set_string(player, EV_SZ_weaponmodel, _BulanCT[1]);
}
}
}
}
else
{
switch(get_user_team(player))
{
case 1:
{
entity_set_string(player, EV_SZ_viewmodel, "");
entity_set_string(player, EV_SZ_weaponmodel, _PumniT[0]);
}
case 2:
{
entity_set_string(player, EV_SZ_viewmodel, _BulanCT[0]);
entity_set_string(player, EV_SZ_weaponmodel, _BulanCT[1]);
}
}
}
return PLUGIN_CONTINUE
}
public Kill_Death()
{
static Killer, Victim//, HeadShot, MoneyClamp
Killer = read_data(1)
Victim = read_data(2)
//HeadShot = read_data(3)
if(g_BoxStarted && get_user_team(Killer) == 1)
{
if(get_user_team(Victim) == 1)
{
set_user_frags(Killer, get_user_frags(Killer) + 2)
cs_set_user_money(Killer, cs_get_user_money(Killer) +6600)
}
}
}
public player_status(id)
{
static type, player, CsTeams:team, name[32], health, credite
type = read_data(1)
player = read_data(2)
switch(type)
{
case(1):
{
set_hudmessage(0, 0, 0, 0.0, 0.0, 0, 0.0, 0.01, 0.0, 0.0, 4)
show_hudmessage(id, "")
}
case(2):
{
team = cs_get_user_team(player)
if((team != CS_TEAM_T) && (team != CS_TEAM_CT) && is_game())
return PLUGIN_HANDLED
health = get_user_health(player)
credite = get_cranii(player)
get_user_name(player, name, charsmax(name))
player_hudmessage(id, 4, 2.0, {0, 255, 0}, "%L", LANG_SERVER,
(team == CS_TEAM_T) ? "JBE_PRISONER_STATUS" : "JBE_GUARD_STATUS", name, health, credite)
}
}
return PLUGIN_HANDLED
}
public impulse_100(id)
{
if(cs_get_user_team(id) == CS_TEAM_T)
return PLUGIN_HANDLED
return PLUGIN_CONTINUE
}
/*======================================================
SIMONMENU
======================================================*/
public cmd_simonmenu(id)
{
if(g_Simon == id)
{
if(is_user_alive(id) && is_user_connected(id))
{
new simon_menu = menu_create("\rSimonMenu \yJb.Wars.Ro", "simon_choice");
menu_additem(simon_menu, "\rDeschide \yCelule", "1", 0);
menu_additem(simon_menu, "FreeDay Menu", "2", 0);
menu_additem(simon_menu, "\rDing", "3", 0);
menu_additem(simon_menu, "Box Menu", "4", 0);
menu_additem(simon_menu, "\rZile \ySpeciale", "5", 0);
menu_additem(simon_menu, "Demisioneaza din gradu de Simon !", "6", 0);
if(!is_godmode())
menu_additem(simon_menu, "Revive Menu \r[GodMode Only]", "7", ADMIN_ADMIN)
else
menu_additem(simon_menu, "\rRevive Menu", "7", 0)
if(!is_godmode())
menu_additem(simon_menu, "Voice Menu \r[GodMode Only]", "7", ADMIN_ADMIN)
else
menu_additem(simon_menu, "\rVoice Menu", "8", 0)
menu_additem(simon_menu, "\yFootBall Menu", "9", 0)
menu_setprop(simon_menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, simon_menu, 0);
}
}
else
client_print(id, print_chat, "*** Nu esti SIMON deci nu poti accesa SIMON MENU ***");
return PLUGIN_HANDLED;
}
public simon_choice(id, simon_menu, item)
{
if(item == MENU_EXIT || !is_user_alive(id))
{
menu_destroy(simon_menu);
return PLUGIN_HANDLED;
}
new data[6], iName[64], name[32];
new access, callback;
get_user_name(g_Simon, name, charsmax(name))
menu_item_getinfo(simon_menu, item, access, data,5, iName, 63, callback);
new key = str_to_num(data);
switch(key)
{
case 1:
{
jail_open()
new name[32]
get_user_name(g_Simon, name, charsmax(name))
set_hudmessage(0, 255, 0, -1.0, 0.74, 0, 6.0, 5.0)
show_hudmessage(0, "Simon %s a deschis Celulele", name)
emit_sound(0, CHAN_AUTO, "jbsound/jb_open.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
cmd_simonmenu(id)
}
case 2: cmd_freeday(id)
case 3:
{
emit_sound(0, CHAN_AUTO, "jbsound/jb_ding.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
cmd_simonmenu(id)
}
case 4: cmd_boxmenu(id)
case 5: OpenDaysMenu(id)
case 6: cmd_simonreset(id)
case 7: cmd_simonrevive(id)
case 8: cmd_simon_micr(id)
case 9:
{
open_football_menu(id)
}
}
menu_destroy(simon_menu);
return PLUGIN_HANDLED;
}
public cmd_simonreset(id)
{
if((g_Simon == id) || get_user_flags(id) & read_flags ("a"))
menu_players(id, CS_TEAM_CT, id, 1, "cmd_simon_ct", "\rCine vrei sa fie SIMON in loc ?")
return PLUGIN_CONTINUE
}
public cmd_simon_ct(id, menu, item)
{
if(item == MENU_EXIT || (g_Simon != id))
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
static dst[32],src[32], data[5], player, access, callback
menu_item_getinfo(menu, item, access, data, charsmax(data), dst, charsmax(dst), callback)
player = str_to_num(data)
if (g_Simon == player)
return PLUGIN_CONTINUE
g_Simon = 0
cmd_simon(player)
get_user_name(player, dst, charsmax(dst))
get_user_name(id, src, charsmax(src))
set_hudmessage(0, 255, 0, -1.0, -0.35, 0, 6.0, 10.0)
show_hudmessage(0, "%s a predat grad-ul de SIMON lui %s", src, dst)
set_user_info(id, "model", "jb_cs16_2k17")
set_pev(id, pev_body, 3)
return PLUGIN_HANDLED
}
public cmd_simonrevive(id)
{
if(g_Simon == id)
menu_revive(id, CS_TEAM_T, "revive", "Revive Menu")
return PLUGIN_CONTINUE
}
public revive(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
static dst[32], data[5], access, callback, player
menu_item_getinfo(menu, item, access, data, charsmax(data), dst, charsmax(dst), callback)
player = str_to_num(data)
new name[32], name2[32]
get_user_name(id, name, 31)
get_user_name(player, name2, 31)
if(player > 0 && is_user_connected(player) && !is_user_alive(player))
{
ExecuteHamB(Ham_CS_RoundRespawn, player)
chatcolor(0, "!g[SimonMenu] !ySimon !g%s !yi-a dat !grevive !tPrizonierului !g%s", name, name2)
}
cmd_simonrevive(id)
return PLUGIN_HANDLED
}
stock menu_revive(id, CsTeams:team, callback[], title[], any:...)
{
static i, name[32], num[5], menu, menuname[32]
formatex(menuname, charsmax(menuname), title)
menu = menu_create(menuname, callback)
for(i = 1; i <= g_MaxClients; i++)
{
if(!is_user_connected(i) || is_user_alive(i))
continue
if(!(team == CS_TEAM_T || team == CS_TEAM_CT) || ((team == CS_TEAM_T || team == CS_TEAM_CT) && (cs_get_user_team(i) == team)))
{
get_user_name(i, name, charsmax(name))
num_to_str(i, num, charsmax(num))
menu_additem(menu, name, num, 0)
}
}
menu_display(id, menu)
}
public cmd_simon_micr(id)
if (g_Simon == id || is_user_admin(id))
menu_players(id, CS_TEAM_T, 0, 1, "voice_enable_select", "\rCine vrei acces la microfon?")
public voice_enable_select(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
static dst[32], data[5], player, access, callback
menu_item_getinfo(menu, item, access, data, charsmax(data), dst, charsmax(dst), callback)
player = str_to_num(data)
enable_player_voice(id, player)
return PLUGIN_HANDLED
}
public enable_player_voice(id, player)
{
static src[32], dst[32]
get_user_name(player, dst, charsmax(dst))
if (!get_bit(g_PlayerVoice, player))
{
set_bit(g_PlayerVoice, player)
if(0 < id <= g_MaxClients)
{
get_user_name(id, src, charsmax(src))
// player_hudmessage(0, 6, 3.0, {250, 010, 250}, "Simon %s a dat la microfon lui %s.", src, dst)
chatcolor(0, "!g[SimonMenu] !ySimon !g%s !ya dat acces la microfon prizonierului !g%s", src, dst)
}
}
else
{
clear_bit(g_PlayerVoice, player)
if(0 < id <= g_MaxClients)
{
get_user_name(id, src, charsmax(src))
chatcolor(0, "!g[SimonMenu] !ySimon !g%s !ya scos accesul la microfon prizonierului !g%s", src, dst)
}
}
}
/*======================================================
END SIMONMENU ---> BoxMenu
======================================================*/
public cmd_boxmenu(id)
{
if((is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT))
{
if(g_PlayerLast)
{
chatcolor(id, "!g[BoxMenu]!y Nu poti sa dai box cand e !gUltimul !tPrizonier !yin !gViata!y.")
return PLUGIN_HANDLED
}
if(!is_game() || is_godmode())
{
new szText[555 char];
formatex(szText, charsmax(szText), "%L", id, "BOXMENU_TITLE");
new menu = menu_create(szText, "box_handler");
formatex(szText, charsmax(szText), "%L", id, "BOXMENU_M1");
menu_additem(menu, szText, "1", 0);
if(!g_BoxStarted)
{
formatex(szText, charsmax(szText), "%L", id, "BOXMENU_M2");
menu_additem(menu, szText, "2", ADMIN_ADMIN);
}
else
{
formatex(szText, charsmax(szText), "%L", id, "BOXMENU_M2");
menu_additem(menu, szText, "2", 0);
}
menu_display(id, menu, 0)
}
else
chatcolor(id, "!g[BoxMenu]!y Nu poti sa dai box cand e !gZi Speciala!y.")
}
else
chatcolor(id, "%L",0,"BOX_ACCES")
return PLUGIN_HANDLED
}
public box_handler(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new data[6], iName[64]
new access, callback
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback)
new key = str_to_num(data)
switch(key)
{
case 1:
{
cmd_box(id)
cmd_boxmenu(id)
}
case 2:
{
cmd_boxoff(id)
cmd_boxmenu(id)
}
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
public cmd_box(id)
{
if(g_PlayerLast)
{
chatcolor(id, "!t[!gBox!t] !yNu poti activa !tBox,!y cand este !gUltimul Prizonier!y, !tin !gviata !y!")
return PLUGIN_HANDLED
}
static i
if((id < 0) || (is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT) || (is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT && !is_game()) || (is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT && is_godmode()) || get_user_flags(id) & read_flags("f"))
{
if(is_godmode() && g_TeamAlive[CS_TEAM_T] > 1)
{
for(i = 1; i <= g_MaxClients; i++)
{
if(is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_T)
{
set_user_health(i, 100)
ham_strip_user_weapon(i, CSW_KNIFE, 3, true)
give_item(i, "weapon_knife")
}
}
client_cmd(0, "mp3 play ^"%s^"", game_box)
set_cvar_num("mp_tkpunish", 0)
set_cvar_num("mp_friendlyfire", 1)
g_BoxStarted = 1
if(get_user_team(id) == 2)
{
new name[32]
get_user_name(id, name, 63)
chatcolor(0, "%L",0,"BOX_START", name)
player_hudmessage(0, 1, 3.0, _, "Modul Box a fost pornit de: %s", name)
}
}
else if(!is_game() && g_TeamAlive[CS_TEAM_T] <= get_pcvar_num(gp_BoxMax) && g_TeamAlive[CS_TEAM_T] > 1)
{
for(i = 1; i <= g_MaxClients; i++)
{
if(is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_T)
{
set_user_health(i, 100)
set_cvar_string("jbe_shop", "0");
ham_strip_user_weapon(i, CSW_KNIFE, 3, true)
give_item(i, "weapon_knife")
}
}
client_cmd(0, "mp3 play ^"%s^"", game_box)
set_cvar_num("mp_tkpunish", 0)
set_cvar_num("mp_friendlyfire", 1)
g_BoxStarted = 1
if(get_user_team(id) == 2)
{
new name[32]
get_user_name(id, name, 63)
chatcolor(0, "%L",0,"BOX_START", name)
player_hudmessage(0, 1, 3.0, _, "Modul Box a fost pornit de: %s", name)
}
}
else
player_hudmessage(id, 1, 3.0, _, "%L", LANG_SERVER, "JBE_GUARD_CANTBOX")
}
return PLUGIN_HANDLED
}
public cmd_boxoff(id)
{
if(g_PlayerLast)
{
chatcolor(id, "!t[!gBox!t] !yNu poti dezactiva !tBox,!y cand este !gUltimul Prizonier!y, !tin !gviata !y!")
return PLUGIN_HANDLED
}
static i
if((is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT) || (is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT && !is_game()) || (is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT && is_godmode()) || get_user_flags(id) & read_flags("f"))
{
for(i = 1; i <= g_MaxClients; i++)
{
if(is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_T)
{
set_user_health(i, 100)
set_cvar_string("jbe_shop", "1");
ham_strip_user_weapon(i, CSW_KNIFE, 3, true)
give_item(i, "weapon_knife")
}
}
set_cvar_num("mp_tkpunish", 0)
set_cvar_num("mp_friendlyfire", 0)
g_BoxStarted = 0
new name[32]
get_user_name(id, name, 63)
chatcolor(0, "%L",0,"BOX_STOP", name)
player_hudmessage(0, 1, 3.0, _, "Modul Box a fost oprit de: %s", name)
}
return PLUGIN_HANDLED
}
/*======================================================
END BoxMenu ---> Team Menu
======================================================*/
public server_teamselect_new(id)
{
new szText[555 char];
formatex(szText, charsmax(szText), "\rAlege Echipa: ^n\rRatie Prizonieri: \w3 Prizonieri \r= \w1 Gardian");
new menu = menu_create(szText, "team_select");
formatex(szText, charsmax(szText), "\wPrizonieri")
menu_additem(menu, szText, "0", 0);
if(get_user_team(id) & read_flags("h") || g_TeamCount[CS_TEAM_CT] < ctcount_allowed() || get_bit(g_PlayerFreeday, id) || get_bit(g_PlayerWanted, id))
{
formatex(szText, charsmax(szText), "\wGardieni")
menu_additem(menu, szText, "1", 0);
}
else
{
formatex(szText, charsmax(szText), "\wGardieni \r[\wFULL\r]")
menu_additem(menu, szText, "1", ADMIN_ADMIN);
}
menu_display(id, menu, 0)
return PLUGIN_HANDLED
}
public team_select(id, menu, key)
{
if(!is_user_connected(id))
return PLUGIN_HANDLED;
static CsTeams:team, roundloop
roundloop = get_pcvar_num(gp_RetryTime) / 2
team = cs_get_user_team(id)
team_count()
if(!(get_user_team(id) & read_flags("h")) && (team == CS_TEAM_UNASSIGNED) && (g_RoundStarted >= roundloop) && g_TeamCount[CS_TEAM_CT] && g_TeamCount[CS_TEAM_T] && !is_user_alive(id))
{
if((get_user_team(id) & read_flags("h")) && g_PlayerLast > 0)
{
team_join(id, CS_TEAM_SPECTATOR)
client_print(id, print_center, "%L", LANG_SERVER, "JBE_TEAM_CANTCHANGE_LR")
return PLUGIN_HANDLED
}
team_join(id, CS_TEAM_SPECTATOR)
client_print(id, print_center, "%L", LANG_SERVER, "JBE_TEAM_CANTJOIN")
return PLUGIN_HANDLED
}
else switch(key)
{
case(0):
{
if(team == CS_TEAM_T)
return PLUGIN_HANDLED
g_PlayerReason[id] = random_num(1, 6)
//g_PlayerMale[id] = random_num(1, 2)
team_join(id, CS_TEAM_T)
}
case(1):
{
if(team == CS_TEAM_CT || (!(get_user_team(id) & read_flags("h")) && get_bit(g_PlayerNomic, id)))
return PLUGIN_HANDLED
if(get_user_team(id) & read_flags("h") || get_bit(g_PlayerFreeday, id) || get_bit(g_PlayerWanted, id))
{
chatcolor(id, "Nu poti sa intri la echipe doarece este Zi Libera sau esti CAUTAT!")
return PLUGIN_HANDLED
}
if(get_user_team(id) & read_flags("h") || g_TeamCount[CS_TEAM_CT] < ctcount_allowed())
team_join(id, CS_TEAM_CT)
else
client_print(id, print_center, "Nu poti intra la Gardieni. Echipa Gardienilor este FULL!")
}
case(2):
{
user_silentkill(id)
team_join(id, CS_TEAM_SPECTATOR)
}
}
return PLUGIN_HANDLED
}
public team_join(id, CsTeams:team)
{
static restore, vgui, msgblock
restore = get_pdata_int(id, m_iVGUI)
vgui = restore & (1<<0)
if(vgui)
set_pdata_int(id, m_iVGUI, restore & ~(1<<0))
switch(team)
{
case CS_TEAM_SPECTATOR:
{
msgblock = get_msg_block(g_MsgShowMenu)
set_msg_block(g_MsgShowMenu, BLOCK_ONCE)
dllfunc(DLLFunc_ClientPutInServer, id)
set_msg_block(g_MsgShowMenu, msgblock)
set_pdata_int(id, m_fGameHUDInitialized, 1)
engclient_cmd(id, "jointeam", "6")
}
case CS_TEAM_T, CS_TEAM_CT:
{
msgblock = get_msg_block(g_MsgShowMenu)
set_msg_block(g_MsgShowMenu, BLOCK_ONCE)
engclient_cmd(id, "jointeam", (team == CS_TEAM_CT) ? "2" : "1")
engclient_cmd(id, "joinclass", "1")
set_msg_block(g_MsgShowMenu, msgblock)
g_PlayerSpect[id] = 0
}
}
if(vgui)
set_pdata_int(id, m_iVGUI, restore)
}
public msg_vguimenu(msgid, dest, id)
{
static msgarg1
static CsTeams:team
if(is_godmode())
{
if(get_msg_arg_int(1) != 2)
return PLUGIN_CONTINUE;
set_task(1.0, "auto_join", id)
}
msgarg1 = get_msg_arg_int(1)
if(msgarg1 == 2)
{
team = cs_get_user_team(id)
if((team == CS_TEAM_T) && (is_user_alive(id) || !get_pcvar_num(gp_TeamChange)))
{
client_print(id, print_center, "%L", LANG_SERVER, "JBE_TEAM_CANTCHANGE")
return PLUGIN_HANDLED
}
if(get_user_team(id) == 1 || get_user_team(id) == 2)
{
cmd_mmenu(id)
return PLUGIN_HANDLED
}
//show_menu(id, 51, TEAM_MENU, -1)
server_teamselect_new(id)
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
public msg_showmenu(msgid, dest, id)
{
static msgarg1, roundloop
static CsTeams:team
msgarg1 = get_msg_arg_int(1)
if(msgarg1 != 531 && msgarg1 != 563)
return PLUGIN_CONTINUE
roundloop = floatround(get_pcvar_float(gp_RetryTime) / 2)
team = cs_get_user_team(id)
if(is_godmode())
{
static sMenuCode[64]
get_msg_arg_string(4, sMenuCode, sizeof(sMenuCode) - 1)
if(equal(sMenuCode, "#Team_Select") || equal(sMenuCode, "#Team_Select_Spect"))
{
set_task(1.0, "auto_join", id)
return PLUGIN_HANDLED
}
}
if(team == CS_TEAM_T)
{
if((is_user_alive(id) || (g_RoundStarted >= roundloop) || !get_pcvar_num(gp_TeamChange)))
{
client_print(id, print_center, "%L", LANG_SERVER, "JBE_TEAM_CANTCHANGE")
return PLUGIN_HANDLED
}
else
{
if(get_user_team(id) == 1 || get_user_team(id) == 2)
{
cmd_mmenu(id)
return PLUGIN_HANDLED
}
server_teamselect_new(id)
return PLUGIN_HANDLED
}
}
else
{
if(get_user_team(id) == 1 || get_user_team(id) == 2)
{
cmd_mmenu(id)
return PLUGIN_HANDLED
}
//show_menu(id, 51, TEAM_MENU, -1)
server_teamselect_new(id)
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
public auto_join(id)
{
if(is_user_connected(id))
{
new iMsgBlock = get_msg_block(114)
set_msg_block(114, BLOCK_SET)
new MsgBlock = get_msg_block(96)
set_msg_block(96, BLOCK_SET)
engclient_cmd(id, "jointeam", "1")
engclient_cmd(id, "joinclass", "1")
set_msg_block(114, iMsgBlock)
set_msg_block(96, MsgBlock)
}
}
public team_count()
{
static CsTeams:team, last
g_TeamCount[CS_TEAM_UNASSIGNED] = 0
g_TeamCount[CS_TEAM_T] = 0
g_TeamCount[CS_TEAM_CT] = 0
g_TeamCount[CS_TEAM_SPECTATOR] = 0
g_TeamAlive[CS_TEAM_UNASSIGNED] = 0
g_TeamAlive[CS_TEAM_T] = 0
g_TeamAlive[CS_TEAM_CT] = 0
g_TeamAlive[CS_TEAM_SPECTATOR] = 0
for(new i = 1; i <= g_MaxClients; i++)
{
if(is_user_connected(i))
{
team = cs_get_user_team(i)
g_TeamCount[team]++
g_PlayerTeam[i] = team
if(is_user_alive(i))
{
g_TeamAlive[team]++
if(team == CS_TEAM_T)
last = i
}
}
else
g_PlayerTeam[i] = CS_TEAM_UNASSIGNED
}
if(g_TeamAlive[CS_TEAM_T] == 1)
{
if(last != g_PlayerLast && g_SafeTime)
prisoner_last(last)
}
else
{
if(g_Duel || g_DuelA || g_DuelB)
{
if(is_user_alive(g_DuelA))
{
set_user_rendering(g_DuelA, kRenderFxNone, 0, 0, 0, kRenderNormal, 0)
player_strip_weapons(g_DuelA)
}
if(is_user_alive(g_DuelB))
{
set_user_rendering(g_DuelB, kRenderFxNone, 0, 0, 0, kRenderNormal, 0)
player_strip_weapons(g_DuelB)
}
}
g_PlayerLast = 0
g_DuelA = 0
g_DuelB = 0
g_Duel = 0
}
}
public cmd_jointeam(id)
return PLUGIN_HANDLED
public cmd_joinclass(id)
return PLUGIN_HANDLED
stock get_player_num(team, alive)
{
static player_num
player_num = 0
for(new i = 0; i < g_max_clients; i++)
{
if(!is_user_connected(i))
continue
if(alive == AL_NOT)
{
if(is_user_alive(i))
continue
}else if(alive == AL_ALIVE) {
if(!is_user_alive(i))
continue
}else if(alive == AL_BOTH)
if(team == TEAM_ALL)
{
if(cs_get_user_team(i) == CS_TEAM_UNASSIGNED || cs_get_user_team(i) == CS_TEAM_SPECTATOR)
continue
} else if(team == TEAM_T) {
if(cs_get_user_team(i) != CS_TEAM_T)
continue
} else if(team == TEAM_CT) {
if(cs_get_user_team(i) != CS_TEAM_CT)
continue
}
player_num++
}
return player_num
}
public AlivePlayer()
{
CountT = 0
CountCT = 0
for(new id = 1; id <= g_max_clients; id++)
{
if(!is_user_connected(id))
continue
if(cs_get_user_team(id) == CS_TEAM_T)
CountT++
else if(cs_get_user_team(id) == CS_TEAM_CT)
CountCT++
}
}
stock ctcount_allowed()
{
static count
count = ((g_TeamCount[CS_TEAM_T] + g_TeamCount[CS_TEAM_CT]) / get_pcvar_num(gp_TeamRatio))
if(count < 3)
count = 3
else if(count > get_pcvar_num(gp_CtMax))
count = get_pcvar_num(gp_CtMax)
return count
}
/*======================================================
END Team Menu ---> M Meniu
======================================================*/
// Block Team Change
public cmd_mmenu_block_chante_t(id)
{
static team
team = fm_cs_get_user_team(id)
// Unless it's a spectator joining the game
if (team == FM_CS_TEAM_SPECTATOR || team == FM_CS_TEAM_UNASSIGNED)
return PLUGIN_CONTINUE;
// Pressing 'M' (chooseteam) ingame should show the main menu instead
if(get_user_team(id) == 1 || get_user_team(id) == 2)
cmd_mmenu(id)
else if(get_user_team(id) != 1 && get_user_team(id) != 2 || get_user_team(id) == 0)
server_teamselect_new(id)
return PLUGIN_HANDLED;
}
public clcmd_saymenu(id)
cmd_mmenu(id) // show game menu
public cmd_mmenu(id)
{
if(cs_get_user_team(id) != CS_TEAM_CT && cs_get_user_team(id) != CS_TEAM_T)
return PLUGIN_HANDLED
new szText[555 char]
formatex(szText, charsmax(szText), "\yMeniu Ajutator:");
new menu = menu_create(szText, "cmd_mmenu_handled");
formatex(szText, charsmax(szText), "Alege ECHIPA");
menu_additem(menu, szText, "1", 0);
formatex(szText, charsmax(szText), "Meniu HATS");
menu_additem(menu, szText, "2", 0);
if (get_user_team(id) == 2 && !g_Simon && !g_Freeday)
{
formatex(szText, charsmax(szText), "Punete SIMON");
menu_additem(menu, szText, "3", 0);
}
formatex(szText, charsmax(szText), "Acceseaza SHOP");
menu_additem(menu, szText, "4", 0);
menu_display(id, menu, 0);
return PLUGIN_HANDLED
}
public cmd_mmenu_handled(id, menu, item)
{
if(!is_user_alive(id))
return PLUGIN_HANDLED
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new data[6], iName[64]
new access, callback
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback)
new key = str_to_num(data)
switch(key)
{
case 1: server_teamselect_new(id)
case 2: client_cmd(id,"say /hats")
case 3: cmd_simon(id)
case 4: client_cmd(id,"say /shop")
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
public player_spawn(id)
{
static CsTeams:team
if(!is_user_connected(id))
return HAM_IGNORED
set_pdata_float(id, m_fNextHudTextArgsGameTime, get_gametime() + 999999.0)
player_strip_weapons(id)
if(g_RoundEnd)
{
g_RoundEnd = 0
g_JailDay++
}
set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderNormal, 0)
clear_bit(g_PlayerCrowbar, id)
clear_bit(g_PlayerWanted, id)
team = cs_get_user_team(id)
static weapon_ent
weapon_ent = fm_cs_get_current_weapon_ent(id)
if (pev_valid(weapon_ent))
replace_weapon_models(id, cs_get_weapon_id(weapon_ent))
switch(team)
{
case(CS_TEAM_T):
{
g_PlayerLast = 0
if(!g_PlayerReason[id])
g_PlayerReason[id] = random_num(1, 6)
player_hudmessage(id, 0, 5.0, {255, 0, 255}, "Motivul Incarcerarii: %L", LANG_SERVER, g_Reasons[g_PlayerReason[id]])
set_user_info(id, "model", "jb_cs16_2k17")
set_pev(id, pev_body, 2)
if(is_freeday() || get_bit(g_FreedayAuto, id))
{
freeday_set(0, id)
clear_bit(g_FreedayAuto, id)
}
else
{
//entity_set_int(id, EV_INT_skin, random_num(0, 2))
set_pev(id, pev_skin, random_num(0, 5))
}
if(g_CrowbarCount < get_pcvar_num(gp_CrowbarMax))
{
if(random_num(0, g_MaxClients) > (g_MaxClients / 2))
{
g_CrowbarCount++
set_bit(g_PlayerCrowbar, id)
}
}
cs_set_user_armor(id, 0, CS_ARMOR_NONE)
}
case(CS_TEAM_CT):
{
g_PlayerSimon[id]++
//if(!is_user_vip(id))
set_user_info(id, "model", "jb_cs16_2k17")
//if(is_user_vip(id)) set_user_info(id, "model", "jb_crzmdlvip004")
//entity_set_int(id, EV_INT_body, 3)
set_pev(id, pev_body, 3)
cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM)
}
}
first_join(id)
blockms[id] = false
return HAM_IGNORED
}
public player_damage(victim, ent, attacker, Float:damage, DamageType, bits)
{
if(!is_user_connected(victim) || !is_user_connected(attacker) || victim == attacker)
return HAM_IGNORED
if(!is_user_connected(attacker) || get_user_weapon(attacker) != CSW_KNIFE)
return HAM_IGNORED
if(is_grenade())
if(get_user_team(attacker) == get_user_team(victim) && bits & DMG_HEGRENADE)
return HAM_IGNORED
if(is_grenade() && is_user_connected(attacker) && is_user_connected(victim))
if(victim == attacker)
if(DamageType & DMG_HEGRENADE)
return HAM_SUPERCEDE
switch(g_Duel)
{
case(0):
{
if(attacker == ent && get_user_weapon(attacker) == CSW_KNIFE && get_bit(g_PlayerCrowbar, attacker) && cs_get_user_team(victim) != CS_TEAM_T)
{
SetHamParamFloat(4, damage * gc_CrowbarMul)
return HAM_OVERRIDE
}
}
case(2):
if(attacker != g_PlayerLast)
return HAM_SUPERCEDE
default:
{
if((victim == g_DuelA && attacker == g_DuelB) || (victim == g_DuelB && attacker == g_DuelA))
return HAM_IGNORED
return HAM_SUPERCEDE
}
}
return HAM_IGNORED
}
public player_attack(victim, attacker, Float:damage, Float:direction[3], tracehandle, damagebits)
{
static CsTeams:vteam, CsTeams:ateam
if(!is_user_connected(victim) || !is_user_connected(attacker) || victim == attacker)
return HAM_IGNORED
vteam = cs_get_user_team(victim)
ateam = cs_get_user_team(attacker)
if(ateam == CS_TEAM_CT && vteam == CS_TEAM_CT)
return HAM_SUPERCEDE
switch(g_Duel)
{
case(0):
{
if(ateam == CS_TEAM_CT && vteam == CS_TEAM_T)
{
if(get_bit(g_PlayerRevolt, victim))
{
clear_bit(g_PlayerRevolt, victim)
hud_status(0)
}
return HAM_IGNORED
}
}
case(2):
if(attacker != g_PlayerLast)
return HAM_SUPERCEDE
default:
{
if((victim == g_DuelA && attacker == g_DuelB) || (victim == g_DuelB && attacker == g_DuelA))
return HAM_IGNORED
return HAM_SUPERCEDE
}
}
if(ateam == CS_TEAM_T && vteam == CS_TEAM_T && !g_BoxStarted)
return HAM_SUPERCEDE
if(ateam == CS_TEAM_T && vteam == CS_TEAM_CT)
{
if(!g_PlayerRevolt)
revolt_start()
set_bit(g_PlayerRevolt, attacker)
}
return HAM_IGNORED
}
public button_attack(button, id, Float:damage, Float:direction[3], tracehandle, damagebits)
{
if(is_valid_ent(button) && gc_ButtonShoot)
{
ExecuteHamB(Ham_Use, button, id, 0, 2, 1.0)
entity_set_float(button, EV_FL_frame, 0.0)
}
return HAM_IGNORED
}
public player_killed(victim, attacker, shouldgib)
{
static CsTeams:vteam, CsTeams:kteam
if(!(0 < attacker <= g_MaxClients) || !is_user_connected(attacker))
kteam = CS_TEAM_UNASSIGNED
else
kteam = cs_get_user_team(attacker)
vteam = cs_get_user_team(victim)
if(g_Simon == victim)
{
g_Simon = 0
ClearSyncHud(0, g_HudSync[2][_hudsync])
emit_sound(0, CHAN_AUTO, "jbsound/FailSound.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
static szName[33];
get_user_name(victim, szName, 32);
player_hudmessage(0, 2, 5.0, {2, 132, 130}, "%L", LANG_SERVER, "JBE_STATUS_KILLED", szName);
//chatcolor(0, "%L",0,"JBE_SIMON_KILLED", szName)
}
set_pdata_int(victim, bAutoWepSwitch, true)
switch(g_Duel)
{
case(0):
{
switch(vteam)
{
case(CS_TEAM_CT):
{
if(kteam == CS_TEAM_T && !get_bit(g_PlayerWanted, attacker))
{
set_bit(g_PlayerWanted, attacker)
//entity_set_int(attacker, EV_INT_skin, 4)
set_pev(attacker, pev_skin, 7)
}
}
case(CS_TEAM_T):
{
clear_bit(g_PlayerRevolt, victim)
clear_bit(g_PlayerWanted, victim)
}
}
}
default:
{
if(g_Duel != 2 && (attacker == g_DuelA || attacker == g_DuelB))
{
set_user_rendering(victim, kRenderFxNone, 0, 0, 0, kRenderNormal, 0)
set_user_rendering(attacker, kRenderFxNone, 0, 0, 0, kRenderNormal, 0)
g_Duel = 0
g_LastDenied = 0
g_BlockWeapons = 0
g_PlayerLast = 0
team_count()
}
}
}
hud_status(0)
return HAM_IGNORED
}
public player_touchweapon(id, ent)
{
if(g_BlockWeapons)
return HAM_SUPERCEDE
return HAM_IGNORED
}
public set_client_kv(id, const info[], const key[])
{
if(equal(key, "model"))
return FMRES_SUPERCEDE
return FMRES_IGNORED
}
public sound_emit(id, channel, sample[])
{
if(is_user_alive(id) && equal(sample, "weapons/knife_", 14))
{
switch(sample[17])
{
case('b'): emit_sound(id, CHAN_WEAPON, "weapons/cbar_hitbod2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
case('w'): emit_sound(id, CHAN_WEAPON, "weapons/cbar_hitbod1.wav", 1.0, ATTN_NORM, 0, PITCH_LOW)
case('1', '2'): emit_sound(id, CHAN_WEAPON, "weapons/bullet_hit2.wav", random_float(0.5, 1.0), ATTN_NORM, 0, PITCH_NORM)
}
return FMRES_SUPERCEDE
}
return FMRES_IGNORED
}
public voice_listening(receiver, sender, bool:listen)
{
if((receiver == sender))
return FMRES_IGNORED
if(get_user_flags(sender) & ADMIN_SLAY || get_user_flags(sender) & read_flags("x") || get_bit(g_PlayerVoice, sender) && get_user_team(sender) == 1)
{
engfunc(EngFunc_SetClientListening, receiver, sender, true)
return FMRES_SUPERCEDE
}
switch(gc_VoiceBlock)
{
case(2):
{
if((sender != g_Simon) && (!get_bit(g_SimonVoice, sender) && gc_VoiceBlock))
{
engfunc(EngFunc_SetClientListening, receiver, sender, false)
return FMRES_SUPERCEDE
}
}
case(1):
{
if(!get_bit(g_SimonVoice, sender) && gc_VoiceBlock)
{
engfunc(EngFunc_SetClientListening, receiver, sender, false)
return FMRES_SUPERCEDE
}
}
}
if(!is_user_alive(sender))
{
engfunc(EngFunc_SetClientListening, receiver, sender, false)
return FMRES_SUPERCEDE
}
if(sender == g_Simon)
{
engfunc(EngFunc_SetClientListening, receiver, sender, true)
return FMRES_SUPERCEDE
}
listen = true
if(g_SimonTalking && (sender != g_Simon))
listen = false
else
{
static CsTeams:steam
steam = cs_get_user_team(sender)
switch(gc_TalkMode)
{
case(2): listen = (steam == CS_TEAM_CT)
case(1): listen = (steam == CS_TEAM_CT || steam == CS_TEAM_T)
}
}
engfunc(EngFunc_SetClientListening, receiver, sender, listen)
return FMRES_SUPERCEDE
}
public round_first()
{
g_JailDay = 0
for(new i = 1; i <= g_MaxClients; i++)
g_PlayerSimon[i] = 0
set_cvar_num("sv_alltalk", 1)
set_cvar_num("mp_roundtime", 2)
set_cvar_num("mp_limitteams", 0)
set_cvar_num("mp_autoteambalance", 0)
set_cvar_num("mp_tkpunish", 0)
set_cvar_num("mp_friendlyfire", 0)
round_end()
}
public round_end()
{
static CsTeams:team
static /*maxnosimon, */spectrounds
g_SafeTime = 0
g_PlayerRevolt = 0
g_PlayerFreeday = 0
g_PlayerLast = 0
g_BoxStarted = 0
g_CrowbarCount = 0
g_Simon = 0
g_SimonAllowed = 0
g_RoundStarted = 0
g_LastDenied = 0
g_BlockWeapons = 0
g_TeamCount[CS_TEAM_T] = 0
g_TeamCount[CS_TEAM_CT] = 0
g_Freeday = 0
g_FreedayNext = (random_num(0,99) >= 95)
g_RoundEnd = 1
g_Duel = 0
/*g_WhatDay++
if(g_WhatDay > 6) g_WhatDay = 0;*/
remove_task(TASK_STATUS)
remove_task(TASK_FREEDAY)
remove_task(TASK_FREEEND)
remove_task(TASK_ROUND)
set_cvar_string("sv_parachute", "1");
//maxnosimon = get_pcvar_num(gp_NosimonRounds)
spectrounds = get_pcvar_num(gp_SpectRounds)
for(new i = 1; i <= g_MaxClients; i++)
{
if(!is_user_connected(i))
continue
set_user_maxspeed(i, 320.0)
set_user_noclip(i, 0)
set_user_godmode(i, 0)
set_user_gravity(i, 1.0)
set_user_footsteps(i, 0)
set_user_rendering(i, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 255)
menu_cancel(i)
team = cs_get_user_team(i)
player_strip_weapons(i)
switch(team)
{
case(CS_TEAM_CT):
{
/*if(g_PlayerSimon[i] > maxnosimon && !is_game())
{
cmd_nomic(i)
}*/
}
case(CS_TEAM_SPECTATOR,CS_TEAM_UNASSIGNED):
{
g_PlayerSpect[i]++
if(g_PlayerSpect[i] > spectrounds)
{
/*client_cmd(i, "disconnect")
server_print("JBE Disconnected spectator client #%i", i)*/
}
else
{
//show_menu(i, 51, TEAM_MENU, -1)
set_task(0.5, "server_teamselect_new", i)
}
}
}
}
for(new i = 0; i < sizeof(g_HudSync); i++)
ClearSyncHud(0, g_HudSync[i][_hudsync])
}
public round_start()
{
get_pcvar_string(gp_Bind, bindstr,32)
if(g_RoundEnd)
return
team_count()
if(!g_Simon && is_freeday())
{
g_Freeday = 1
emit_sound(0, CHAN_AUTO, "jbsound/jb_ding.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
check_freeday(TASK_FREEDAY)
}
else
set_task(60.0, "check_freeday", TASK_FREEDAY)
set_task(get_pcvar_float(gp_RetryTime) + 1.0, "safe_time", TASK_SAFETIME)
set_task(120.0, "freeday_end", TASK_FREEDAY)
g_SimonRandom = get_pcvar_num(gp_SimonRandom) ? random_float(15.0, 45.0) : 0.0
g_SimonAllowed = 1
g_FreedayNext = 0
set_task(HUD_DELAY, "hud_status", TASK_STATUS, _, _, "b")
set_cvar_string("sv_parachute", "1");
set_cvar_string("jbe_camera", "1");
for(new i = 1; i <= g_MaxClients; i++)
{
if(!is_user_connected(i))
continue
set_user_maxspeed(i, 320.0)
set_user_noclip(i, 0)
set_user_godmode(i, 0)
set_user_gravity(i, 1.0)
set_user_footsteps(i, 0)
set_user_rendering(i, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 255)
}
}
public cmd_voiceon(id)
{
client_cmd(id, "+voicerecord")
set_bit(g_SimonVoice, id)
if(g_Simon == id || is_user_admin(id))
set_bit(g_SimonTalking, id)
return PLUGIN_HANDLED
}
public cmd_voiceoff(id)
{
client_cmd(id, "-voicerecord")
clear_bit(g_SimonVoice, id)
if(g_Simon == id || is_user_admin(id))
clear_bit(g_SimonTalking, id)
return PLUGIN_HANDLED
}
public cmd_simon(id)
{
static CsTeams:team, name[32]
if(!is_user_connected(id))
return PLUGIN_HANDLED
team = cs_get_user_team(id)
if(g_SimonAllowed && !g_Freeday && is_user_alive(id) && team == CS_TEAM_CT && !g_Simon)
{
g_Simon = id
get_user_name(id, name, charsmax(name))
//entity_set_int(id, EV_INT_body, 1)
set_pev(id, pev_body, 1)
g_PlayerSimon[id]--
if(get_pcvar_num(gp_GlowModels))
player_glow(id, g_Colors[0])
cmd_simonmenu(id)
hud_status(0)
}
return PLUGIN_HANDLED
}
public cmd_open(id)
{
if(id == g_Simon)
{
jail_open()
new name[32]
get_user_name(g_Simon, name, charsmax(name))
set_hudmessage(0, 255, 0, -1.0, 0.74, 0, 6.0, 5.0)
show_hudmessage(0, "Simon %s a deschis Celulele", name)
emit_sound(0, CHAN_AUTO, "jbsound/jb_open.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
}
else if(g_Freeday)
{
if(is_user_alive(id) && is_user_connected(id))
{
if(get_user_team(id) == 2)
{
jail_open()
new name[32]
get_user_name(g_Simon, name, charsmax(name))
set_hudmessage(0, 255, 0, -1.0, 0.74, 0, 6.0, 5.0)
show_hudmessage(0, "Gardianul %s a deschis Celulele", name)
emit_sound(0, CHAN_AUTO, "jbsound/jb_open.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
}
}
}
return PLUGIN_HANDLED
}
public cmd_nomic(id)
{
if(!is_user_connected(id))
return PLUGIN_HANDLED;
static CsTeams:team
team = cs_get_user_team(id)
if(team == CS_TEAM_CT)
{
server_print("JBE Transfered guard to prisoners team client #%i", id)
if(g_Simon == id)
{
g_Simon = 0
static szName[33];
get_user_name(id, szName, 32);
//player_hudmessage(0, 2, 5.0, _, "%L", LANG_SERVER, "JBE_SIMON_TRANSFERED", szName);
//chatcolor(0, "%L",0,"JBE_SIMON_TRANSFERED", szName)
}
if(!is_user_admin(id))
set_bit(g_PlayerNomic, id)
user_silentkill(id)
cs_set_user_team(id, CS_TEAM_T)
}
return PLUGIN_HANDLED
}
public user_reason(id)
{
if(is_user_alive(id) && get_user_team(id)==1)
chatcolor(0, "!g[JailBreak]!y Ai fost adus aici pentru!g %L!y.", LANG_SERVER, g_Reasons[g_PlayerReason[id]])
else
chatcolor(0, "!g[JailBreak]!y Nu poti accesa aceasta comanda deoarece esti !g CT !ysau !gMORT!y.")
return PLUGIN_HANDLED
}
/*======================================================
HelpMenu
======================================================*/
public cmd_help(id)
{
new szText[555 char];
formatex(szText, charsmax(szText), "%L", id, "HELPMENU_TITLE");
new menu = menu_create(szText, "helpmenu_handler");
formatex(szText, charsmax(szText), "%L", id, "HELPMENU_M1");
menu_additem(menu, szText, "1", 0);
formatex(szText, charsmax(szText), "%L", id, "HELPMENU_M2");
menu_additem(menu, szText, "2", 0);
formatex(szText, charsmax(szText), "%L", id, "HELPMENU_M3");
menu_additem(menu, szText, "3", 0);
menu_display(id, menu, 0)
}
public helpmenu_handler(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new data[6], iName[64]
new access, callback
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback)
new key = str_to_num(data)
switch(key)
{
case 1: helpmotd(id)
case 2: helpserver(id)
case 3: helpwhod(id)
case 4:
{
}
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
public helphud(id)
{
if(id > g_MaxClients)
id -= TASK_HELP
remove_task(TASK_HELP + id)
switch(get_bit(g_PlayerHelp, id))
{
case(0):
{
set_bit(g_PlayerHelp, id)
player_hudmessage(id, 7, 15.0, {65, 105, 225}, "%s", g_HelpText)
set_task(15.0, "helphud", TASK_HELP + id)
}
default:
{
clear_bit(g_PlayerHelp, id)
ClearSyncHud(id, g_HudSync[7][_hudsync])
}
}
}
public helpmotd(id)
{
show_motd(id,"/addons/amxmodx/configs/AdminInfo/HelpJailbreak.htm")
return 0
}
public helpserver(id)
{
show_motd(id,"/addons/amxmodx/configs/AdminInfo/server1.htm")
return 0
}
public helpwhod(id)
{
client_cmd(id,"say /who")
return 0
}
/*======================================================
End HelpMenu ---> FreeDay
======================================================*/
public cmd_freeday(id)
{
static menu, menuname[32], option[64]
if(!is_freeday() && ((is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT) || is_user_admin(id)))
{
formatex(menuname, charsmax(menuname), "%L", LANG_SERVER, "JBE_MENU_FREEDAY")
menu = menu_create(menuname, "freeday_choice")
formatex(option, charsmax(option), "%L", LANG_SERVER, "JBE_MENU_FREEDAY_PLAYER")
menu_additem(menu, option, "1", 0)
formatex(option, charsmax(option), "%L", LANG_SERVER, "JBE_MENU_FREEDAY_ALL")
menu_additem(menu, option, "2", 0)
menu_display(id, menu)
}
return PLUGIN_HANDLED
}
public cmd_freeday_player(id)
{
if((is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT))
menu_players(id, CS_TEAM_T, id, 1, "freeday_select", "%L", LANG_SERVER, "JBE_MENU_FREEDAY")
return PLUGIN_CONTINUE
}
public freeday_select(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
static dst[32], data[5], player, access, callback
menu_item_getinfo(menu, item, access, data, charsmax(data), dst, charsmax(dst), callback)
player = str_to_num(data)
freeday_set(id, player)
return PLUGIN_HANDLED
}
public freeday_choice(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
static dst[32], data[5], access, callback
menu_item_getinfo(menu, item, access, data, charsmax(data), dst, charsmax(dst), callback)
menu_destroy(menu)
get_user_name(id, dst, charsmax(dst))
switch(data[0])
{
case('1'): cmd_freeday_player(id)
case('2'):
{
if((id == g_Simon))
{
g_Simon = 0
/*get_user_name(id, dst, charsmax(dst))
chatcolor(0, "^!g[JailBreak] !g%s !ya dat la toti !gFREEDAY.",dst)*/
check_freeday(TASK_FREEDAY)
}
}
}
return PLUGIN_HANDLED
}
public cmd_ask(id)
{
static menu, menuname[32], option[64]
if(!is_freeday() && ((is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT)))
{
formatex(menuname, charsmax(menuname), "%L", LANG_SERVER, "JBE_FD_ANSWER_TITLE")
menu = menu_create(menuname, "freeday_ask")
formatex(option, charsmax(option), "%L", LANG_SERVER, "JBE_FD_ANSWER_YES")
menu_additem(menu, option, "1", 0)
formatex(option, charsmax(option), "%L", LANG_SERVER, "JBE_FD_ANSWER_NO")
menu_additem(menu, option, "2", 0)
menu_display(id, menu)
}
return PLUGIN_HANDLED
}
public freeday_ask(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
static dst[32], data[5], access, callback
menu_item_getinfo(menu, item, access, data, charsmax(data), dst, charsmax(dst), callback)
menu_destroy(menu)
get_user_name(id, dst, charsmax(dst))
switch(data[0])
{
case('1'):
{
if((id == g_Simon))
{
g_Simon = 0
/*get_user_name(id, dst, charsmax(dst))
chatcolor(0, "^!g[JailBreak] !g%s !ya dat la toti !gFREEDAY.",dst)*/
check_freeday(TASK_FREEDAY)
}
}
case('2'): cmd_freeday(id)
}
return PLUGIN_HANDLED
}
public check_freeday(task)
{
if(is_game())
{
player_hudmessage(0, 8, 3.0, {0, 104, 139}, "Ziua nu se poate TERMINA^nDEOARECE ESTE IN DESFASURARE o Zi Speciala!")
return PLUGIN_HANDLED
}
static Float:roundmax, i
if(!g_Simon && !g_PlayerLast)
{
g_Freeday = 1
hud_status(0)
roundmax = get_pcvar_float(gp_RoundMax)
//gi_FreeDayEnd = 240
if(roundmax > 0.0)
{
for(i = 1; i <= g_MaxClients; i++)
{
if(is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_T)
freeday_set(0, i)
}
emit_sound(0, CHAN_AUTO, "jbsound/jb_ding.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
player_hudmessage(0, 8, 3.0, {0, 255, 0}, "Ziua se va termina in %i secunde", floatround(roundmax - 60.0))
remove_task(TASK_ROUND)
set_task(roundmax - 60.0, "check_end", TASK_ROUND)
}
}
if(get_pcvar_num(gp_AutoOpen))
jail_open()
return PLUGIN_HANDLED
}
public freeday_end(task)
{
if(g_Freeday || g_PlayerFreeday)
{
emit_sound(0, CHAN_AUTO, "jbsound/jb_ding.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
player_hudmessage(0, 8, 3.0, {0, 255, 0}, "%L", LANG_SERVER, "JBE_STATUS_ENDFREEDAY")
/*chatcolor(0, "%L",0,"JBE_STATUS_ENDFREEDAY_TEXT")
entity_set_int(0, EV_INT_skin, random_num(0, 2))
gi_FreeDayEnd = 0*/
for(new i = 0; i <= g_max_clients; i++)
{
if(!is_user_alive(i))
continue
if(get_user_team(i) == 1 && !get_bit(g_PlayerFreeday, i) && !get_bit(g_PlayerWanted, i))
{
set_user_rendering(i, kRenderFxNone, 0, 0, 0, kRenderNormal, 0)
set_pev(i, pev_skin, random_num(0, 4))
}
}
}
}
/*======================================================
End Freeday ---> Last Request
======================================================*/
public cmd_lastrequest(id)
{
static i, num[5], menu, menuname[32], option[64]
if(!get_pcvar_num(gp_LastRequest) || g_Freeday || g_LastDenied || id != g_PlayerLast || g_RoundEnd || get_bit(g_PlayerWanted, id) || get_bit(g_PlayerFreeday, id) || !is_user_alive(id))
return PLUGIN_CONTINUE
formatex(menuname, charsmax(menuname), "%L", LANG_SERVER, "JBE_MENU_LASTREQ")
menu = menu_create(menuname, "lastrequest_select")
formatex(option, charsmax(option), "%L", LANG_SERVER, "JBE_MENU_LASTREQ_OPT1")
menu_additem(menu, option, "1", 0)
formatex(option, charsmax(option), "%L", LANG_SERVER, "JBE_MENU_LASTREQ_OPT2")
menu_additem(menu, option, "2", 0)
formatex(option, charsmax(option), "%L", LANG_SERVER, "JBE_MENU_LASTREQ_OPT3")
menu_additem(menu, option, "3", 0)
for(i = 0; i < sizeof(_Duel); i++)
{
num_to_str(i + 4, num, charsmax(num))
formatex(option, charsmax(option), "%L", LANG_SERVER, _Duel[i][_opt])
menu_additem(menu, option, num, 0)
}
/*formatex(option, charsmax(option), "%L", LANG_SERVER, "JBE_MENU_LASTREQ_OPT11")
menu_additem(menu, option, "4", 0)*/
menu_display(id, menu)
return PLUGIN_CONTINUE
}
public lastrequest_select(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
if(is_game())
{
chatcolor(id, "%L",0,"IS_DAYS_LR")
menu_destroy(menu)
return PLUGIN_HANDLED
}
if(!is_user_alive(id))
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
static dst[32], data[5], access, callback, option[64]
menu_item_getinfo(menu, item, access, data, charsmax(data), dst, charsmax(dst), callback)
get_user_name(id, dst, charsmax(dst))
switch(data[0])
{
case('1'):
{
formatex(option, charsmax(option), "%L", LANG_SERVER, "JBE_MENU_LASTREQ_SEL1", dst)
player_hudmessage(0, 6, 3.0, {0, 255, 0}, option)
set_bit(g_FreedayAuto, id)
user_silentkill(id)
}
case('2'):
{
formatex(option, charsmax(option), "%L", LANG_SERVER, "JBE_MENU_LASTREQ_SEL2", dst)
player_hudmessage(0, 6, 3.0, {0, 255, 0}, option)
cs_set_user_money(id, 4500, 1)
user_silentkill(id)
}
case('3'):
{
g_Duel = 3
menu_players(id, CS_TEAM_CT, 0, 1, "duel_cutite", "%L", LANG_SERVER, "JBE_MENU_DUEL")
}
default:
{
g_Duel = str_to_num(data)
menu_players(id, CS_TEAM_CT, 0, 1, "duel_arme", "%L", LANG_SERVER, "JBE_MENU_DUEL")
}
}
g_LastDenied = 1
menu_destroy(menu)
return PLUGIN_HANDLED
}
public duel_cutite(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
g_LastDenied = 0
return PLUGIN_HANDLED
}
static dst[32], data[5], access, callback, option[128], player, src[32]
menu_item_getinfo(menu, item, access, data, charsmax(data), dst, charsmax(dst), callback)
get_user_name(id, src, charsmax(src))
player = str_to_num(data)
formatex(option, charsmax(option), "%L^n%L", LANG_SERVER, "JBE_MENU_LASTREQ_SEL3", src, LANG_SERVER, "JBE_MENU_DUEL_SEL", src, dst)
client_cmd(0, "mp3 play ^"%s^"", game_box)
player_hudmessage(0, 6, 3.0, {0, 255, 0}, option)
g_DuelA = id
clear_bit(g_PlayerCrowbar, id)
player_strip_weapons(id)
player_glow(id, g_Colors[3])
set_user_health(id, 100)
//LrFix(id)
//set_task(3.0,"DuelEff",id)
g_DuelB = player
player_strip_weapons(player)
player_glow(player, g_Colors[2])
set_user_health(player, 100)
//LrFix(player)
set_task(2.0, "block_weapons_task", id)
set_task(2.0, "block_weapons_task", player)
return PLUGIN_HANDLED
}
public duel_arme(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
g_LastDenied = 0
g_Duel = 0
return PLUGIN_HANDLED
}
static /*gun,*/ dst[32], data[5], access, callback, option[168], player, src[32]
/*Sfarsit
duelgun = _Duel[g_Duel - 4][_sel]*/
menu_item_getinfo(menu, item, access, data, charsmax(data), dst, charsmax(dst), callback)
get_user_name(id, src, charsmax(src))
player = str_to_num(data)
/*formatex(option, charsmax(option), "%L^n%L", LANG_SERVER, _Duel[g_Duel - 4][_sel], src, LANG_SERVER, "JBE_MENU_DUEL_SEL", src, dst)
chatcolor(id, "%L",0,"JBE_MENU_DUEL_GUNS", src, dst)
player_hudmessage(0, 6, 3.0, {0, 255, 0}, option)*/
g_DuelA = id
g_DuelB = player
clear_bit(g_PlayerCrowbar, id)
strip_user_weapons(id)
set_user_health(id, 100)
player_glow(id, g_Colors[3])
strip_user_weapons(player)
set_user_health(player, 100)
player_glow(player, g_Colors[2])
set_task(2.0, "block_weapons_task", id)
set_task(2.0, "block_weapons_task", player)
switch(g_Duel)
{
case 4:
{
formatex(option, charsmax(option), "%s a ales duel cu DEAGLE^nDuel: %s vs %s", src, src, dst)
player_hudmessage(0, 6, 3.0, {0, 255, 0}, option)
if(id > 0 && is_user_connected(id) && is_user_alive(id))
{
g_DuelA = id
strip_user_weapons(id)
new iEnt = give_item(id, "weapon_deagle")
if (is_valid_ent(iEnt))
cs_set_weapon_ammo(iEnt, 1)
set_user_health(id, 100)
player_glow(id, g_Colors[3])
}
if(player > 0 && is_user_connected(player) && is_user_alive(player))
{
g_DuelB = player
strip_user_weapons(player)
new iEnt = give_item(player, "weapon_deagle")
if (is_valid_ent(iEnt))
cs_set_weapon_ammo(iEnt, 1)
set_user_health(player, 100)
player_glow(player, g_Colors[2])
}
client_cmd(0, "mp3 play sound/jbsound/lr_new_wars.mp3")
}
case 5:
{
formatex(option, charsmax(option), "%s a ales duel cu SCOUT^nDuel: %s vs %s", src, src, dst)
player_hudmessage(0, 6, 3.0, {0, 255, 0}, option)
if(id > 0 && is_user_connected(id) && is_user_alive(id))
{
g_DuelA = id
strip_user_weapons(id)
new iEnt = give_item(id, "weapon_scout")
if (is_valid_ent(iEnt))
cs_set_weapon_ammo(iEnt, 1)
set_user_health(id, 100)
player_glow(id, g_Colors[3])
}
if(player > 0 && is_user_connected(player) && is_user_alive(player))
{
g_DuelB = player
strip_user_weapons(player)
new iEnt = give_item(player, "weapon_scout")
if (is_valid_ent(iEnt))
cs_set_weapon_ammo(iEnt, 1)
set_user_health(player, 100)
player_glow(player, g_Colors[2])
}
client_cmd(0, "mp3 play sound/jbsound/lr_new_wars.mp3")
}
case 6:
{
formatex(option, charsmax(option), "%s a ales duel cu GRENADE^nDuel: %s vs %s", src, src, dst)
player_hudmessage(0, 6, 3.0, {0, 255, 0}, option)
if(id > 0 && is_user_connected(id) && is_user_alive(id))
{
g_DuelA = id
strip_user_weapons(id)
new iEnt = give_item(id, "weapon_hegrenade")
if (is_valid_ent(iEnt))
cs_set_weapon_ammo(iEnt, 1)
set_user_health(id, 100)
player_glow(id, g_Colors[3])
}
if(player > 0 && is_user_connected(player) && is_user_alive(player))
{
g_DuelB = player
strip_user_weapons(player)
new iEnt = give_item(player, "weapon_hegrenade")
if (is_valid_ent(iEnt))
cs_set_weapon_ammo(iEnt, 1)
set_user_health(player, 100)
player_glow(player, g_Colors[2])
}
client_cmd(0, "mp3 play sound/jbsound/lr_new_wars.mp3")
}
case 7:
{
formatex(option, charsmax(option), "%s a ales duel cu AWP^nDuel: %s vs %s", src, src, dst)
player_hudmessage(0, 6, 3.0, {0, 255, 0}, option)
if(id > 0 && is_user_connected(id) && is_user_alive(id))
{
g_DuelA = id
strip_user_weapons(id)
new iEnt = give_item(id, "weapon_awp")
if (is_valid_ent(iEnt))
cs_set_weapon_ammo(iEnt, 1)
set_user_health(id, 100)
player_glow(id, g_Colors[3])
}
if(player > 0 && is_user_connected(player) && is_user_alive(player))
{
g_DuelB = player
strip_user_weapons(player)
new iEnt = give_item(player, "weapon_awp")
if (is_valid_ent(iEnt))
cs_set_weapon_ammo(iEnt, 1)
set_user_health(player, 100)
player_glow(player, g_Colors[2])
}
client_cmd(0, "mp3 play sound/jbsound/lr_new_wars.mp3")
}
case 8:
{
formatex(option, charsmax(option), "%s a ales duel cu M249^nDuel: %s vs %s", src, src, dst)
player_hudmessage(0, 6, 3.0, {0, 255, 0}, option)
if(id > 0 && is_user_connected(id) && is_user_alive(id))
{
g_DuelA = id
strip_user_weapons(id)
new iEnt = give_item(id, "weapon_m249")
if (is_valid_ent(iEnt))
cs_set_weapon_ammo(iEnt, 1)
set_user_health(id, 100)
player_glow(id, g_Colors[3])
}
if(player > 0 && is_user_connected(player) && is_user_alive(player))
{
g_DuelB = player
strip_user_weapons(player)
new iEnt = give_item(player, "weapon_m249")
if (is_valid_ent(iEnt))
cs_set_weapon_ammo(iEnt, 1)
set_user_health(player, 100)
player_glow(player, g_Colors[2])
}
client_cmd(0, "mp3 play sound/jbsound/lr_new_wars.mp3")
}
case 9:
{
formatex(option, charsmax(option), "%s a ales duel cu SG3SG1^nDuel: %s vs %s", src, src, dst)
player_hudmessage(0, 6, 3.0, {0, 255, 0}, option)
if(id > 0 && is_user_connected(id) && is_user_alive(id))
{
g_DuelA = id
strip_user_weapons(id)
new iEnt = give_item(id, "weapon_g3sg1")
if (is_valid_ent(iEnt))
cs_set_weapon_ammo(iEnt, 1)
set_user_health(id, 100)
player_glow(id, g_Colors[3])
}
if(player > 0 && is_user_connected(player) && is_user_alive(player))
{
g_DuelB = player
strip_user_weapons(player)
new iEnt = give_item(player, "weapon_g3sg1")
if (is_valid_ent(iEnt))
cs_set_weapon_ammo(iEnt, 1)
set_user_health(player, 100)
player_glow(player, g_Colors[2])
}
client_cmd(0, "mp3 play sound/jbsound/lr_new_wars.mp3")
}
}
return PLUGIN_HANDLED
}
public cmd_last_start(id, handle, seed)
{
if(!is_user_alive(id) || !g_Duel)
return FMRES_IGNORED
if(g_Duel == 4)
cs_set_user_bpammo(id, CSW_DEAGLE, 1)
else if(g_Duel == 5)
cs_set_user_bpammo(id, CSW_SCOUT, 1)
else if(g_Duel == 6)
cs_set_user_bpammo(id, CSW_HEGRENADE, 1)
else if(g_Duel == 7)
cs_set_user_bpammo(id, CSW_AWP, 1)
else if(g_Duel == 8)
cs_set_user_bpammo(id, CSW_M249, 1)
else if(g_Duel == 9)
cs_set_user_bpammo(id, CSW_G3SG1, 1)
return FMRES_IGNORED
}
/*======================================================
END Last Request ----> Comenzi Admin
======================================================*/
public adm_freeday(id)
{
if(is_game())
{
chatcolor(id, "!g[JailBreak] !yNu poti da !gFreeDay !ypentru ca este in curs o !gZi Speciala !t.")
return PLUGIN_HANDLED
}
if(g_PlayerLast)
{
chatcolor(id, "!g[JailBreak] !yNu poti da !tZi Libera,!y cand este !gUltimul Prizonier!y, !tin !gviata !y!")
return PLUGIN_HANDLED
}
new arg[32], cmd[32];
read_argv(0,cmd,31);
read_argv(1,arg,31);
new player = cmd_target(id,arg,CMDTARGET_OBEY_IMMUNITY | CMDTARGET_ALLOW_SELF);
if(get_user_flags(id) & read_flags ("c"))
{
new name[32], name2[32];
get_user_name(id,name,31);
get_user_name(player,name2, 31);
if(is_user_connected(player) && cs_get_user_team(player) == CS_TEAM_T)
{
freeday_set(id, player)
chatcolor(0, "!y[!gAdminControl!y] !tAdmin-ul !y[!g%s!y] !ya dat zi libera lui !y[!g%s!y].", name, name2)
log_to_file("LogJailBreak.log","[JBE_FREEDAY] Admin-ul [%s] a dat zi libera lui [%s].", name, name2)
emit_sound(0, CHAN_AUTO, "jbsound/jb_ding.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
}
}
else
{
chatcolor(id, "!y[!gAdminControl!y] !yNu ai !gacces !yla aceasta comanda.")
return PLUGIN_CONTINUE
}
return PLUGIN_HANDLED
}
public adm_nomic(id)
{
new arg[32], cmd[32];
read_argv(0,cmd,31);
read_argv(1,arg,31);
new player = cmd_target(id, arg, CMDTARGET_OBEY_IMMUNITY | CMDTARGET_ALLOW_SELF);
if(id == 0 || get_user_flags(id) & read_flags ("b"))
{
new name[32], name2[32];
get_user_name(id,name,31);
get_user_name(player,name2, 31);
if(is_user_connected(player))
{
cmd_nomic(player);
chatcolor(0, "!y[!gAdminControl!y] !tAdmin-ul !y[!g%s!y] !yl-a mutat la !gPrizonieri !ype !y[!g%s!y].", name, name2)
log_to_file("LogJailBreak.log","[JBE_NOMIC] Admin-ul [%s] l-a mutat la T pe [%s].", name, name2)
}
}
else
{
chatcolor(id, "!y[!gAdminControl!y] !yNu ai !gacces !yla aceasta comanda.")
return PLUGIN_CONTINUE
}
return PLUGIN_HANDLED;
}
public adm_open(id)
{
if(get_user_flags(id) & ADMIN_ACCESS)
{
new name[32];
get_user_name(id, name, 31);
chatcolor(0, "!y[!gAdminControl!y] !tAdmin-ul !y[!g%s!y] !ya folosit !y[!gjbe_open!y].", name)
log_to_file("LogJailBreak.log","[JBE_OPEN] Admin-ul [%s] a deschis celulele prin JBE_OPEN ", name)
emit_sound(0, CHAN_AUTO, "jbsound/jb_open.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
jail_open()
}
else
{
chatcolor(id, "!y[!gAdminControl!y] !yNu ai !gacces !yla aceasta comanda.")
return PLUGIN_CONTINUE
}
return PLUGIN_HANDLED
}
public adm_box(id)
{
if(g_PlayerLast || is_game())
{
chatcolor(id, "!t[!gBox!t] !yNu poti activa !tBox-ul,!y acum !")
return PLUGIN_HANDLED
}
if(get_user_flags(id) & ADMIN_ACCESS)
{
new name[32];
get_user_name(id, name, 31);
chatcolor(0, "!y[!gAdminControl!y]!y Admin-ul !y[!g%s!y] !ya folosit !y[!gjbe_box!y].", name)
log_to_file("LogJailBreak.log","[JBE_BOX] Admin-ul [%s] a dat BOX prin JBE_BOX ", name)
cmd_box(id)
}
else
{
chatcolor(id, "!y[!gAdminControl!y] !yNu ai !gacces !yla aceasta comanda.")
return PLUGIN_CONTINUE
}
return PLUGIN_HANDLED
}
public adm_boxoff(id)
{
if(g_PlayerLast)
{
chatcolor(id, "!t[!gBox!t] !yNu poti dezactiva !tBox,!y cand este !gUltimul Prizonier!y, !tin !gviata !y!")
return PLUGIN_HANDLED
}
if(get_user_flags(id) & ADMIN_ACCESS)
{
new name[32];
get_user_name(id, name, 31);
chatcolor(0, "!y[!gAdminControl!y]!y Admin-ul !y[!g%s!y] !ya folosit !g[!yjbe_boxoff!g].", name)
log_to_file("LogJailBreak.log","[JBE_BOX] Admin-ul [%s] a dat BOX-OFF prin JBE_BOXOFF ", name)
cmd_boxoff(id)
}
else
{
chatcolor(id, "!y[!gAdminControl!y] !yNu ai !gacces !yla aceasta comanda.")
return PLUGIN_CONTINUE
}
return PLUGIN_HANDLED
}
public FreeDayALL(id)
{
g_Simon = 0
chatcolor(0, "!g[JailBreak] !gFreeDay ALL!y a fost dat !gAUTOMAT !ypentru aceasta!g Zi Speciala.");
check_freeday(TASK_FREEDAY)
}
/*======================================================
END Comenzi Admin
======================================================*/
public revolt_start()
{
if(is_game())
return PLUGIN_HANDLED
else
{
client_cmd(0,"speak ambience/siren")
set_task(8.0, "stop_sound")
hud_status(0)
}
return PLUGIN_HANDLED
}
public stop_sound(task)
client_cmd(0, "stopsound")
public hud_status(task)
{
//if(is_arestart()) return PLUGIN_HANDLED
AlivePlayer()
static i, n
new name[32], szStatus[64], wanted[1024], freedayed[1024]
if(g_RoundStarted < (get_pcvar_num(gp_RetryTime) / 2))
g_RoundStarted++
if(!g_Freeday && !g_Simon && g_SimonAllowed && (0.0 < g_SimonRandom < get_gametime()))
cmd_simon(random_num(1, g_MaxClients))
n = 0
formatex(wanted, charsmax(wanted), "Prizonieri cautati:")
n = strlen(wanted)
for(i = 0; i < g_MaxClients; i++)
{
if(get_bit(g_PlayerWanted, i) && is_user_alive(i) && n < charsmax(wanted))
{
get_user_name(i, name, charsmax(name))
n += copy(wanted[n], charsmax(wanted) - n, "^n^t")
n += copy(wanted[n], charsmax(wanted) - n, name)
}
}
n = 0
formatex(freedayed, charsmax(freedayed), "Prizonieri cu Zi Libera:")
n = strlen(freedayed)
for(i = 0; i < g_MaxClients; i++)
{
if(get_bit(g_PlayerFreeday, i) && is_user_alive(i) && n < charsmax(freedayed))
{
get_user_name(i, name, charsmax(name))
n += copy(freedayed[n], charsmax(freedayed) - n, "^n^t")
n += copy(freedayed[n], charsmax(freedayed) - n, name)
}
}
team_count()
for(i = 1; i <= g_MaxClients; i++)
{
if(is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_CT)
{
formatex(szStatus, charsmax(szStatus), "%L", LANG_SERVER, "JBE_STATUS", g_TeamAlive[CS_TEAM_T], g_TeamCount[CS_TEAM_T])
message_begin(MSG_BROADCAST, get_user_msgid("StatusText"), {0,0,0}, 0)
write_byte(0)
write_string(szStatus)
message_end()
}
}
new szDay[32], SetGame[32]
if(is_game())
{
//Fomatex
get_game(is_game(), szDay, charsmax(szDay))
if(get_timegame() >= 2)
formatex(SetGame, 31, "%s (%i Secunde)", szDay, get_timegame())
else
formatex(SetGame, 31, "%s", szDay)
}
else
formatex(SetGame, 31, "Ziua %i", g_JailDay)
get_user_name(g_Simon, name, charsmax(name))
if(!g_Simon && !g_Freeday) player_hudmessage(0, 5, HUD_DELAY + 1.0, {0, 255, 0}, "Nu este Simon :: Jailbreak Romania :: %s", SetGame)
if(g_Simon) player_hudmessage(0, 5, HUD_DELAY + 1.0, {0, 255, 0}, "%s este Simon :: Jailbreak Romania :: %s", name, SetGame)
if(g_Freeday) player_hudmessage(0, 5, HUD_DELAY + 1.0, {0, 255, 0}, "Zi Libera :: %s :: JailBreak Romania", SetGame)
if(g_PlayerWanted && !is_game())
player_hudmessage(0, 3, HUD_DELAY + 1.0, {255, 255, 255}, "%s", wanted)
else if(g_PlayerFreeday >= 1 && !is_game() && !g_Freeday)
player_hudmessage(0, 7, HUD_DELAY + 1.0, {0, 255, 0}, "%s", freedayed)
gc_TalkMode = get_pcvar_num(gp_TalkMode)
gc_VoiceBlock = get_pcvar_num(gp_VoiceBlock)
gc_SimonSteps = get_pcvar_num(gp_SimonSteps)
gc_ButtonShoot = get_pcvar_num(gp_ButtonShoot)
gc_CrowbarMul = get_pcvar_float(gp_CrowbarMul)
return PLUGIN_HANDLED
}
public safe_time(task)
g_SafeTime = 1
public check_end(task)
{
if(is_game())
{
player_hudmessage(0, 8, 3.0, {0, 104, 139}, "Ziua nu se poate Termina^nPentru ca este in Desfasurare o Zi Speciala")
return PLUGIN_HANDLED
}
team_count()
for(new i = 1; i <= g_MaxClients; i++)
{
if(g_PlayerTeam[i] == CS_TEAM_T && is_user_alive(i))
{
user_silentkill(i)
cs_set_user_deaths(i, get_user_deaths(i) - 1)
}
}
for(new i = 1; i <= g_MaxClients; i++)
{
if(g_PlayerTeam[i] == CS_TEAM_CT && is_user_alive(i))
{
user_silentkill(i)
cs_set_user_deaths(i, get_user_deaths(i) - 1)
}
}
player_hudmessage(0, 6, 3.0, {0, 255, 0}, "Ziua s-a terminat din cauza timpului")
return PLUGIN_HANDLED
}
public prisoner_last(id)
{
static name[32], Float:roundmax
if(is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_T)
{
roundmax = get_pcvar_float(gp_RoundMax)
get_user_name(id, name, charsmax(name))
g_PlayerLast = id
player_hudmessage(0, 6, 5.0, {0, 255, 0}, "%L", LANG_SERVER, "JBE_PRISONER_LAST", name)
remove_task(TASK_ROUND)
if(roundmax > 0.0)
{
player_hudmessage(0, 8, 3.0, {0, 255, 0}, "Ziua se va termina in %i secunde", floatround(roundmax - 60.0))
set_task(roundmax - 60.0, "check_end", TASK_ROUND)
}
if((g_TeamAlive[CS_TEAM_CT] > 0) && get_pcvar_num(gp_AutoLastresquest))
cmd_lastrequest(id)
}
return PLUGIN_HANDLED
}
public FwdSetVoice(receiver, sender, bool:listen)
{
if(!(1 <= receiver <= g_max_clients)
|| !g_connected[receiver]
|| !(1 <= sender <= g_max_clients)
|| !g_connected[sender])
return FMRES_IGNORED;
new CsTeams:team = cs_get_user_team(sender);
if((team == CS_TEAM_T || team == CS_TEAM_CT && !is_user_alive(sender)) && !access(sender, ADMIN_VOICE))
{
engfunc(EngFunc_SetClientListening, receiver, sender, 0);
return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}
public replace_weapon_models(id, weaponid)
{
if(!is_user_alive(id))
return
if(get_bit(g_PlayerCrowbar, id) && get_user_team(id) == 1)
{
set_pev(id, pev_viewmodel2, _CrowbarModels[1])
set_pev(id, pev_weaponmodel2, _CrowbarModels[0])
}
else if(get_user_weapon(id) == CSW_KNIFE)
{
if(g_BoxStarted && get_user_team(id) == 1 || g_Duel == 3)
{
switch(get_user_team(id))
{
case 1:
{
entity_set_string(id, EV_SZ_weaponmodel, "");
entity_set_string(id, EV_SZ_viewmodel, _PumniT[0]);
}
case 2:
{
entity_set_string(id, EV_SZ_viewmodel, _BulanCT[1]);
entity_set_string(id, EV_SZ_weaponmodel, _BulanCT[0]);
}
}
}
else
{
switch(get_user_team(id))
{
case 1:
{
entity_set_string(id, EV_SZ_weaponmodel, "");
entity_set_string(id, EV_SZ_viewmodel, _PumniT[0]);
}
case 2:
{
entity_set_string(id, EV_SZ_viewmodel, _BulanCT[1]);
entity_set_string(id, EV_SZ_weaponmodel, _BulanCT[0]);
}
}
}
}
else
{
switch(get_user_team(id))
{
case 1:
{
entity_set_string(id, EV_SZ_viewmodel, _PumniT[0]);
entity_set_string(id, EV_SZ_weaponmodel, "");
}
case 2:
{
entity_set_string(id, EV_SZ_viewmodel, _BulanCT[1]);
entity_set_string(id, EV_SZ_weaponmodel, _BulanCT[0]);
}
}
}
}
public fw_Item_Deploy_Post(weapon_ent)
{
static owner
owner = fm_cs_get_weapon_ent_owner(weapon_ent)
if (!pev_valid(owner))
return
static weaponid
weaponid = cs_get_weapon_id(weapon_ent)
replace_weapon_models(owner, weaponid)
}
stock fm_cs_get_current_weapon_ent(id)
{
if (pev_valid(id) != 2)
return -1
return get_pdata_cbase(id, 373, 4)
}
stock fm_cs_get_weapon_ent_owner(ent)
{
if (pev_valid(ent) != 2)
return -1
return get_pdata_cbase(ent, 41, 4)
}
public setup_buttons()
{
new ent[3]
new Float:origin[3]
new info[32]
new pos
while((pos <= sizeof(g_Buttons)) && (ent[0] = engfunc(EngFunc_FindEntityByString, ent[0], "classname", "info_player_deathmatch")))
{
pev(ent[0], pev_origin, origin)
while((ent[1] = engfunc(EngFunc_FindEntityInSphere, ent[1], origin, CELL_RADIUS)))
{
if(!is_valid_ent(ent[1]))
continue
entity_get_string(ent[1], EV_SZ_classname, info, charsmax(info))
if(!equal(info, "func_door"))
continue
entity_get_string(ent[1], EV_SZ_targetname, info, charsmax(info))
if(!info[0])
continue
if(TrieKeyExists(g_CellManagers, info))
TrieGetCell(g_CellManagers, info, ent[2])
else
ent[2] = engfunc(EngFunc_FindEntityByString, 0, "target", info)
if(is_valid_ent(ent[2]) && (in_array(ent[2], g_Buttons, sizeof(g_Buttons)) < 0))
{
g_Buttons[pos] = ent[2]
pos++
break
}
}
}
TrieDestroy(g_CellManagers)
}
public jail_open()
{
static i
for(i = 0; i < sizeof(g_Buttons); i++)
{
if(g_Buttons[i])
{
ExecuteHamB(Ham_Use, g_Buttons[i], 0, 0, 1, 1.0)
entity_set_float(g_Buttons[i], EV_FL_frame, 0.0)
}
}
}
public fw_PlayerPreThink(id)
{
if(is_game())
{
if(is_user_alive(id) && is_user_connected(id))
{
if(!is_tag() && !is_dodge() && get_user_team(id) == 1 || !is_tag() && !is_dodge() && !is_magic() && get_user_team(id) == 2)
set_user_maxspeed(id, 250.0)
if(!is_ghost() && get_user_team(id) == 1)
set_user_noclip(id, 0)
if(!is_godmode() && !is_tag() && !is_hns() && !is_hnss() && get_user_team(id) == 1)
set_user_godmode(id, 0)
clear_bit(g_PlayerCrowbar, id)
return PLUGIN_HANDLED
}
}
else if(g_PlayerLast && !is_game())
{
if(is_user_alive(id) && is_user_connected(id))
{
set_user_maxspeed(id, 250.0)
set_user_noclip(id, 0)
set_user_godmode(id, 0)
set_user_gravity(id, 1.0)
return PLUGIN_HANDLED
}
}
return FMRES_IGNORED;
}
//======================================================//
// NATIVES by TeX
//======================================================//
public plugin_natives()
{
// Natives
register_native("jb_is_user_simon", "native_get_user_simon", 1)
register_native("jb_get_simonname", "native_get_simon_name", 1)
register_native("jb_is_user_last", "native_is_last", 1)
register_native("jb_is_user_wanted", "native_is_wanted", 1)
register_native("jb_get_day", "native_get_day", 1)
register_native("jb_get_crowbar", "native_get_crowbar", 1)
register_native("jb_clear_crowbar", "native_clear_crowbar", 1)
register_native("jb_set_user_freeday", "native_set_user_freeday", 1)
register_native("jb_give_simon", "native_get_simon", 1)
register_native("jb_show_lr_menu", "native_show_lr_menu", 1)
register_native("jb_open_doors", "native_open_doors", 1)
register_native("jb_reset_user_model", "native_jb_reset_user_model", 1)
// Native Free
register_native("is_free_day", "native_is_free_day", 1)
register_native("jb_fd_all", "native_fd_all", 1)
}
public native_get_simon(id)
cmd_simon(id)
public native_show_lr_menu(id)
cmd_lastrequest(id)
public native_set_user_freeday(id)
{
new name[32]
get_user_name(id, name, charsmax(name))
set_bit(g_PlayerFreeday, id)
set_user_rendering(id, kRenderFxGlowShell, 0, 250, 0, kRenderNormal, 18)
player_hudmessage(0, 6, 3.0, {0, 255, 0}, "%s a primit FREEDAY de la SERVER", name)
}
public native_get_user_simon(id)
{
if(cs_get_user_team(id) != CS_TEAM_CT)
return 0
return g_Simon == id? 1 : 0
}
public native_jb_reset_user_model(id)
{
new iPlayers[32];
new iNum;
new ids;
get_players(iPlayers, iNum);
for(new i = 0; i < iNum; i++)
{
ids = iPlayers[i]
if(!is_user_alive(ids))
continue;
if(get_user_team(ids) == 1)
{
//if(g_PlayerMale[ids] == 0) g_PlayerMale[ids] = random_num(1, 2)
//if(g_PlayerMale[ids] == 1) set_user_info(ids, "model", "jb_man_model")
//if(g_PlayerMale[ids] == 2) set_user_info(ids, "model", "jb_girl_model")
set_user_info(ids, "model", "jb_cs16_2k17")
set_pev(ids, pev_body, 2)
set_pev(ids, pev_skin, random_num(0, 5))
}
else if(get_user_team(ids) == 2)
{
if(g_Simon == ids)
{
set_user_info(ids, "model", "jb_cs16_2k17")
set_pev(ids, pev_body, 1)
}
else
{
set_user_info(ids, "model", "jb_cs16_2k17")
set_pev(ids, pev_body, 3)
}
}
}
}
public native_get_simon_name() return g_Simon
public native_open_doors() jail_open()
public native_fd_all(id) FreeDayALL(id)
public native_is_free_day() return g_Freeday
public native_is_last() return g_PlayerLast
public native_is_wanted() return g_PlayerWanted
public native_get_day() return g_JailDay
public native_get_crowbar(index) return get_bit(g_PlayerCrowbar, index)
public native_clear_crowbar(index) return clear_bit(g_PlayerCrowbar, index)
public block_weapons_task(id) g_BlockWeapons = 1
//======================================================//
// NATIVES END ===>>>>> Stock-URI
//======================================================//
stock fm_cs_get_user_team(id)
return get_pdata_int(id, OFFSET_CSTEAMS, OFFSET_LINUX);
stock in_array(needle, data[], size)
{
for(new i = 0; i < size; i++)
if(data[i] == needle)
return i
return -1
}
stock freeday_set(id, player)
{
static src[32], dst[32]
get_user_name(player, dst, charsmax(dst))
if(is_user_alive(player) && !get_bit(g_PlayerWanted, player))
{
set_bit(g_PlayerFreeday, player)
//entity_set_int(player, EV_INT_skin, 3)
set_pev(player, pev_skin, 6)
if(get_pcvar_num(gp_GlowModels))
player_glow(player, g_Colors[1])
if(0 < id <= g_MaxClients)
{
get_user_name(id, src, charsmax(src))
player_hudmessage(0, 6, 3.0, {0, 255, 0}, "%L", LANG_SERVER, "JBE_GUARD_FREEDAYGIVE", src, dst)
}
else if(!is_freeday())
player_hudmessage(0, 6, 3.0, {0, 255, 0}, "%L", LANG_SERVER, "JBE_PRISONER_HASFREEDAY", dst)
}
}
stock first_join(id)
{
if(!get_bit(g_PlayerJoin, id))
{
set_bit(g_PlayerJoin, id)
clear_bit(g_PlayerHelp, id)
chatcolor(id, "!y[!gJBHelp!y] Pentru !t'!gAjutor!t' !ytasteaza !t'!g/help!t'!y. ")
}
}
stock player_hudmessage(id, hudid, Float:time = 0.0, color[3] = {0, 255, 0}, msg[], any:...)
{
static text[512], Float:x, Float:y
x = g_HudSync[hudid][_x]
y = g_HudSync[hudid][_y]
if(time > 0)
set_hudmessage(color[0], color[1], color[2], x, y, 0, 0.00, time, 0.00, 0.00)
else
set_hudmessage(color[0], color[1], color[2], x, y, 0, 0.00, g_HudSync[hudid][_time], 0.00, 0.00)
vformat(text, charsmax(text), msg, 6)
ShowSyncHudMsg(id, g_HudSync[hudid][_hudsync], text)
}
stock menu_players(id, CsTeams:team, skip, alive, callback[], title[], any:...)
{
static i, name[32], num[5], menu, menuname[32]
vformat(menuname, charsmax(menuname), title, 7)
menu = menu_create(menuname, callback)
for(i = 1; i <= g_MaxClients; i++)
{
if(!is_user_connected(i) || (alive && !is_user_alive(i)) || (skip == i))
continue
if(!(team == CS_TEAM_T || team == CS_TEAM_CT) || ((team == CS_TEAM_T || team == CS_TEAM_CT) && (cs_get_user_team(i) == team)))
{
get_user_name(i, name, charsmax(name))
num_to_str(i, num, charsmax(num))
menu_additem(menu, name, num, 0)
}
}
menu_display(id, menu)
}
stock player_glow(id, color[3], amount=40)
set_user_rendering(id, kRenderFxGlowShell, color[0], color[1], color[2], kRenderNormal, amount)
stock player_strip_weapons(id)
{
if(is_user_alive(id))
{
strip_user_weapons(id)
give_item(id, "weapon_knife")
set_pdata_int(id, m_iPrimaryWeapon, 0)
}
}
stock player_strip_weapons_all()
for(new i = 1; i <= g_MaxClients; i++)
if(is_user_alive(i))
player_strip_weapons(i)
stock ham_strip_user_weapon(id, iCswId, iSlot = 0, bool:bSwitchIfActive = true)
{
new iWeapon;
if(!iSlot)
{
static const iWeaponsSlots[] = {
-1,
2, //CSW_P228
-1,
1, //CSW_SCOUT
4, //CSW_HEGRENADE
1, //CSW_XM1014
5, //CSW_C4
1, //CSW_MAC10
1, //CSW_AUG
4, //CSW_SMOKEGRENADE
2, //CSW_ELITE
2, //CSW_FIVESEVEN
1, //CSW_UMP45
1, //CSW_SG550
1, //CSW_GALIL
1, //CSW_FAMAS
2, //CSW_USP
2, //CSW_GLOCK18
1, //CSW_AWP
1, //CSW_MP5NAVY
1, //CSW_M249
1, //CSW_M3
1, //CSW_M4A1
1, //CSW_TMP
1, //CSW_G3SG1
4, //CSW_FLASHBANG
2, //CSW_DEAGLE
1, //CSW_SG552
1, //CSW_AK47
3, //CSW_KNIFE
1 //CSW_P90
}
iSlot = iWeaponsSlots[iCswId];
}
const XTRA_OFS_PLAYER = 5;
const m_rgpPlayerItems_Slot0 = 367;
iWeapon = get_pdata_cbase(id, m_rgpPlayerItems_Slot0 + iSlot, XTRA_OFS_PLAYER);
const XTRA_OFS_WEAPON = 4;
const m_pNext = 42;
const m_iId = 43;
while(iWeapon > 0)
{
if(get_pdata_int(iWeapon, m_iId, XTRA_OFS_WEAPON) == iCswId)
{
break;
}
iWeapon = get_pdata_cbase(iWeapon, m_pNext, XTRA_OFS_WEAPON);
}
if(iWeapon > 0)
{
const m_pActiveItem = 373;
if(bSwitchIfActive && get_pdata_cbase(id, m_pActiveItem, XTRA_OFS_PLAYER) == iWeapon)
{
ExecuteHamB(Ham_Weapon_RetireWeapon, iWeapon);
}
if(ExecuteHamB(Ham_RemovePlayerItem, id, iWeapon))
{
user_has_weapon(id, iCswId, 0);
ExecuteHamB(Ham_Item_Kill, iWeapon);
return 1;
}
}
return 0;
}
stock is_freeday()
return (g_FreedayNext || g_Freeday || (g_JailDay == 1))
stock chatcolor(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)
replace_all(msg, 190, "!g", "^4")
replace_all(msg, 190, "!y", "^1")
replace_all(msg, 190, "!t", "^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();
}
}
}
}
//======================================================//
// END Stock-URI
//======================================================//
|