cuz terrorist kills cts in 1 hit with a bullet dosnt matter wich wepon and also i want to remove so terrorist aint start with a crowbar! hope some1 nows whats wrong :S
Code:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <cstrike>
#include <fakemeta_util>
#define PLUGIN "JailBreak Manager"
#define VERSION "1.8"
#define AUTHOR "Sn!ff3r"
#define USERTASK 921
#define USERTASK2 721
#define UPDATEDELAY 1.0
#define OFFSET_TEAM 114
#define fm_cs_set_user_nobuy(%1) set_pdata_int(%1, 235, get_pdata_int(%1, 235) & ~(1<<0))
#define TERRMODEL "wiezien"
#define CTMODEL "straznik"
new static reasons[][] = {
"robbery",
"kidnapping",
"hijacking",
"murder",
"battery"
}
new wanted[512]
new cvar_countdays, cvar_terroinfo, cvar_winmessages, cvar_models, cvar_fists, cvar_wanted, cvar_revolt, cvar_stripweapons, cvar_maxcts, cvar_nobuy, cvar_crowbar, cvar_playerinfo
new days, hudmessage, hudmessage2, hudmessage3, hudmessage4, nowanted, crowbaruser
new userreason[33], bool:changedModel[33 char]
new bool:revolt_started, StatusText, terronum, terroalive, bool:disabled_weapons
new static fist_models[][] = { "models/p_bknuckles.mdl", "models/v_bknuckles.mdl" }
new static crowbar_models[][] = { "models/p_crowbar.mdl", "models/v_crowbar.mdl" }
new static fist_sounds[][] = { "weapons/cbar_hitbod2.wav", "weapons/cbar_hitbod1.wav", "weapons/bullet_hit1.wav", "weapons/bullet_hit2.wav" }
new weapons[][] = {
"weaponbox",
"armoury_entity",
"weapon_shield"
}
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("chooseteam", "client_chooseteam")
register_logevent("round_end", 2, "1=Round_End")
register_event("TextMsg","restart_roundsnum","a","2&#Game_C"/*,"2&#Game_w"*/)
register_event("CurWeapon", "CurWeapon", "be", "1=1", "2=29")
register_event("HLTV", "new_round", "a", "1=0", "2=0")
register_event("DeathMsg","client_death","a")
register_event("StatusValue", "showStatus", "be", "1=2", "2!0")
register_event("StatusValue", "hideStatus", "be", "1=1", "2=0")
register_message(get_user_msgid("TextMsg") ,"TextMsg")
register_message(get_user_msgid("ShowMenu"), "ShowMenu")
register_message(get_user_msgid("VGUIMenu"), "VGUIMenu")
register_message(get_user_msgid("StatusIcon") , "StatusIcon")
register_forward(FM_SetClientKeyValue,"SetClientKeyValue")
register_forward(FM_EmitSound, "EmitSound")
RegisterHam(Ham_Spawn, "player", "client_spawn", 1)
RegisterHam(Ham_TakeDamage, "player", "client_damage")
for(new slot = 0; slot < sizeof weapons; slot++) {
RegisterHam(Ham_Touch, weapons[slot], "WeapEntTouch")
disabled_weapons = true
}
hudmessage = CreateHudSyncObj()
hudmessage2 = CreateHudSyncObj()
hudmessage3 = CreateHudSyncObj()
hudmessage4 = CreateHudSyncObj()
StatusText = get_user_msgid("StatusText")
cvar_countdays = register_cvar("jailbreak_countdays", "1")
cvar_terroinfo = register_cvar("jailbreak_terroinfo", "1")
cvar_winmessages = register_cvar("jailbreak_winmessages", "1")
cvar_models = register_cvar("jailbreak_newmodels", "1")
cvar_fists = register_cvar("jailbreak_fists", "1")
cvar_wanted = register_cvar("jailbreak_wanted", "1")
cvar_revolt = register_cvar("jailbreak_revolt", "1")
cvar_stripweapons = register_cvar("jailbreak_stripweapons", "1")
cvar_maxcts = register_cvar("jailbreak_maxcts", "4")
cvar_nobuy = register_cvar("jailbreak_blockbuy", "1")
cvar_crowbar = register_cvar("jailbreak_terrocrowbar", "1")
cvar_playerinfo = register_cvar("jailbreak_playerinfo", "1")
}
public plugin_cfg()
{
static cfgdir[32]
get_configsdir(cfgdir, charsmax(cfgdir))
server_cmd("exec %s/jailbreak.cfg", cfgdir)
}
public plugin_precache()
{
static modelname[128], i
formatex(modelname, 127, "models/player/%s/%s.mdl",TERRMODEL, TERRMODEL)
engfunc(EngFunc_PrecacheModel, modelname)
formatex(modelname, 127, "models/player/%s/%s.mdl", CTMODEL, CTMODEL)
engfunc(EngFunc_PrecacheModel, modelname)
for(i = 0; i < sizeof fist_models; i++)
engfunc(EngFunc_PrecacheModel,fist_models[i])
for(i = 0; i < sizeof fist_sounds; i++)
engfunc(EngFunc_PrecacheSound,fist_sounds[i])
for(i = 0; i < sizeof crowbar_models; i++)
engfunc(EngFunc_PrecacheModel,crowbar_models[i])
}
public round_end()
{
days ++
if(get_pcvar_num(cvar_stripweapons)) {
static players[32], inum, i
get_players(players, inum, "ah")
for (i = 0; i < inum; ++i)
if(cs_get_user_team(players[i]) == CS_TEAM_T) fm_strip_user_weapons(players[i])
disabled_weapons = true
}
}
public restart_roundsnum()
{
days = 0
}
public new_round()
{
formatex(wanted, 511, "No one is wanted")
update_terro()
nowanted = true
revolt_started = false
crowbaruser = 0
if(get_pcvar_num(cvar_crowbar)) set_task(5.0, "random_crowbar")
}
public random_crowbar()
{
static players[32], inum, id
get_players(players, inum, "ahe", "TERRORIST")
if(inum) {
id = players[random(inum)]
set_hudmessage(random_num(0,255), random_num(0,255), random_num(0,255), -1.0, 0.3, 2, 0.5, 5.0)
ShowSyncHudMsg(id, hudmessage3, "= You gave a crowbar = ")
crowbaruser = id
CurWeapon(id)
}
}
public TextMsg(iMsgid, iDest, id)
{
if(get_pcvar_num(cvar_winmessages)) {
static message[32]
get_msg_arg_string(2, message, charsmax(message))
if(equal(message, "#Terrorists_Win")) set_msg_arg_string(2, "Prisoners won!")
else if(equal(message, "#CTs_Win")) set_msg_arg_string(2, "Security boys won!")
}
}
public StatusIcon(iMsgid, iDest, id)
{
if(get_pcvar_num(cvar_nobuy)) {
static szIcon[5]
get_msg_arg_string(2, szIcon, 4)
if(szIcon[0] == 'b' && szIcon[2] == 'y' && szIcon[3] == 'z') {
if(get_msg_arg_int(1)) {
fm_cs_set_user_nobuy(id)
return PLUGIN_HANDLED
}
}
}
return PLUGIN_CONTINUE
}
public SetClientKeyValue(id, const infobuffer[], const key[])
{
return equal(key,"model") && changedModel{id} ? FMRES_SUPERCEDE : FMRES_IGNORED
}
public CurWeapon(id)
{
if(is_user_alive(id)) {
if(get_pcvar_num(cvar_fists) && id != crowbaruser) {
set_pev(id, pev_viewmodel2, fist_models[1])
set_pev(id, pev_weaponmodel2, fist_models[0])
}
else if(get_pcvar_num(cvar_crowbar) && id == crowbaruser) {
set_pev(id, pev_viewmodel2, crowbar_models[1])
set_pev(id, pev_weaponmodel2, crowbar_models[0])
}
}
}
public EmitSound(id, channel, sample[])
{
if(get_pcvar_num(cvar_fists)) {
if(is_user_alive(id)) {
if(equal(sample, "weapons/knife_", 14)) {
if(equal(sample, "weapons/knife_hit", 17)) {
emit_sound(id, CHAN_WEAPON, "weapons/bullet_hit2.wav", random_float(0.5, 1.0), ATTN_NORM, 0, PITCH_NORM)
return FMRES_SUPERCEDE
}
else if(equal(sample,"weapons/knife_stab.wav")) {
emit_sound(id, CHAN_WEAPON, "weapons/cbar_hitbod2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
return FMRES_SUPERCEDE
}
else if(equal(sample,"weapons/knife_hitwall1.wav")) {
emit_sound(id, CHAN_WEAPON, "weapons/cbar_hitbod1.wav", 1.0, ATTN_NORM, 0, PITCH_LOW)
return FMRES_SUPERCEDE
}
}
}
}
return FMRES_IGNORED
}
public showStatus(id)
{
if(get_pcvar_num(cvar_playerinfo)) {
if(is_user_alive(id)) {
static name[33], pid
pid = read_data(2)
get_user_name(pid, name, 32)
switch(cs_get_user_team(pid)) {
case CS_TEAM_T: {
set_hudmessage(100, 255, 0, -1.0, 0.80, 0, 0.01, 3.0, 0.01, 0.01, -1)
ShowSyncHudMsg(id, hudmessage4, "Prisoner: %s [%d HP]", name, get_user_health(pid))
}
case CS_TEAM_CT: {
set_hudmessage(0, 255, 100, -1.0, 0.80, 0, 0.01, 3.0, 0.01, 0.01, -1)
ShowSyncHudMsg(id, hudmessage4, "Security boy: %s [%d HP]", name, get_user_health(pid))
}
}
}
}
}
public hideStatus(id)
{
if(get_pcvar_num(cvar_playerinfo)) ClearSyncHud(id, hudmessage4)
}
public start_revolt()
{
set_hudmessage(random_num(0,255), random_num(0,255), random_num(0,255), -1.0, 0.3, 2, 0.5, 5.0)
ShowSyncHudMsg(0, hudmessage3, "= Prisoners started the revolt ! =")
client_cmd(0,"speak ambience/siren")
set_task(8.0, "stop_sound", 0)
revolt_started = true
}
public ShowMenu(iMsgid, iDest, id)
{
static code[32]
get_msg_arg_string(4, code, charsmax(code))
if(equal(code, "#Team_Select") || equal(code, "#IG_Team_Select") && cs_get_user_team(id) != CS_TEAM_CT) {
static ctcount
ctcount = active_players(CS_TEAM_CT)
if(ctcount >= get_pcvar_num(cvar_maxcts)) {
static param[2]
param[0] = iMsgid
set_task(0.1, "join_terrorist", id, param, sizeof(param))
return PLUGIN_HANDLED
}
}
return PLUGIN_CONTINUE
}
public VGUIMenu(iMsgid, iDest, id)
{
if(get_msg_arg_int(1) != 2) return PLUGIN_CONTINUE
static ctcount
ctcount = active_players(CS_TEAM_CT)
if(ctcount >= get_pcvar_num(cvar_maxcts) && cs_get_user_team(id) != CS_TEAM_CT) {
static param[2]
param[0] = iMsgid
set_task(0.1, "join_terrorist", id, param, sizeof(param))
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
public join_terrorist(param[], id)
{
handle_join(id, param[0], /*CS_TEAM_T*/ 1)
set_task(5.0, "check_valid_team", id)
}
public check_valid_team(id)
{
if(cs_get_user_team(id) != CS_TEAM_T) cs_set_user_team(id, CS_TEAM_T)
}
public client_connect(id)
{
client_cmd(id, "hud_centerid 0")
}
public client_chooseteam(id)
{
static ctcount
ctcount = active_players(CS_TEAM_CT)
if(ctcount >= get_pcvar_num(cvar_maxcts) && cs_get_user_team(id) == CS_TEAM_T) {
client_print(id, print_chat, "= prison: You're prisoner and can't change a team.")
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
public client_damage(victim, entid, attacker, Float:damage, damagebits)
{
if(!is_user_connected(victim) || !is_user_connected(attacker))
return HAM_IGNORED
if(get_pcvar_num(cvar_revolt)) {
if(cs_get_user_team(attacker) == CS_TEAM_T && cs_get_user_team(victim) == CS_TEAM_CT) {
if(!revolt_started) start_revolt()
}
}
if(get_pcvar_num(cvar_crowbar)) {
if(cs_get_user_team(attacker) == CS_TEAM_T && attacker == crowbaruser) {
damage *= 50.0
SetHamParamFloat(4, damage)
return HAM_OVERRIDE
}
}
return HAM_IGNORED
}
public client_spawn(id)
{
if(get_pcvar_num(cvar_countdays)) {
set_hudmessage(random_num(0,255), random_num(0,255), random_num(0,255), -1.0, 0.3, 2, 0.5, 5.0)
ShowSyncHudMsg(id, hudmessage3, "= Day %d is coming = ", days)
}
if(get_pcvar_num(cvar_terroinfo)) {
if(task_exists(id + USERTASK)) remove_task(id + USERTASK)
if(cs_get_user_team(id) == CS_TEAM_T) {
userreason[id] = random_num(0, sizeof reasons - 1)
set_task(UPDATEDELAY, "client_jailinfo", id + USERTASK, _, _, "b")
}
}
if(get_pcvar_num(cvar_wanted)) {
if(task_exists(id + USERTASK2)) remove_task(id + USERTASK2)
if(cs_get_user_team(id) == CS_TEAM_CT) set_task(UPDATEDELAY, "client_wantedinfo", id + USERTASK2, _, _, "b")
update_terro()
}
if(get_pcvar_num(cvar_models)) {
static CsTeams:team
team = cs_get_user_team(id)
if(team == CS_TEAM_T) {
set_user_model(id, TERRMODEL)
changedModel{id} = true
}
else if (team == CS_TEAM_CT) {
set_user_model(id, CTMODEL)
changedModel{id} = true
}
}
if(get_pcvar_num(cvar_stripweapons)) set_task(0.1, "give_weapons", id)
}
public give_weapons(id)
{
if(is_user_alive(id)) {
fm_strip_user_weapons(id)
fm_give_item(id, "weapon_knife")
if(cs_get_user_team(id) == CS_TEAM_CT) {
switch(random_num(0,3)) {
case 0: {
fm_give_item(id, "weapon_m3")
cs_set_user_bpammo(id, CSW_M3, 120)
}
case 1: {
fm_give_item(id, "weapon_mp5navy")
cs_set_user_bpammo(id, CSW_MP5NAVY, 120)
}
case 2: {
fm_give_item(id, "weapon_xm1014")
cs_set_user_bpammo(id, CSW_XM1014, 120)
}
case 3: {
fm_give_item(id, "weapon_mac10")
cs_set_user_bpammo(id, CSW_MAC10, 120)
}
}
fm_give_item(id, "weapon_usp")
cs_set_user_bpammo(id, CSW_USP, 100)
}
}
disabled_weapons = false
}
public WeapEntTouch(this, idother)
{
if(disabled_weapons)
return HAM_SUPERCEDE
static model[33]
pev(this, pev_model, model, 32)
if(equal(model, "models/w_glock18.mdl")) {
if(pev_valid(this)) {
fm_remove_weaponbox(this)
return HAM_SUPERCEDE
}
}
return HAM_IGNORED
}
public client_disconnect(id)
{
userreason[id] = -1
if(task_exists(id + USERTASK)) remove_task(id + USERTASK)
changedModel{id} = false
}
public client_death()
{
if(get_pcvar_num(cvar_wanted)) {
static victim, killer
victim = read_data(2)
killer = read_data(1)
if(is_user_connected(victim) && is_user_connected(killer)) {
if(cs_get_user_team(victim) == CS_TEAM_CT && cs_get_user_team(killer) == CS_TEAM_T) {
static name[33]
get_user_name(killer, name, charsmax(name))
if(contain(wanted, name) == -1) {
if(nowanted) replace_all(wanted, 511, "No one is wanted", "")
replace_all(wanted, charsmax(wanted), "Wanted prisoners: ^n", "")
format(wanted, charsmax(wanted), "Wanted prisoners: ^n%s^n%s", wanted, name)
nowanted = false
}
}
if(cs_get_user_team(victim) == CS_TEAM_T) {
static name[33]
get_user_name(victim, name, charsmax(name))
if(contain(wanted, name) != -1) {
static buffer[64]
formatex(buffer, charsmax(buffer), "^n%s", name)
replace_all(wanted, charsmax(wanted), buffer, "")
if(strlen(wanted) < 20) {
formatex(wanted, 511, "No one is wanted")
nowanted = true
}
}
update_terro()
}
}
}
}
public client_jailinfo(TASKID)
{
static id
id = TASKID - USERTASK
set_hudmessage(0, 255, 0, 0.8, 0.1, 0, 6.0, 12.0)
ShowSyncHudMsg(id, hudmessage, "Day %d | You're banned for %s.", days, reasons[userreason[id]])
}
public client_wantedinfo(TASKID)
{
static id
id = TASKID - USERTASK2;
(nowanted) ? set_hudmessage(255, 255, 255, 0.01, 0.4, 0, 0.5, UPDATEDELAY) : set_hudmessage(255, 0, 0, 0.01, 0.4, 2, 0.5, UPDATEDELAY)
ShowSyncHudMsg(id, hudmessage2, "%s", wanted)
static text[128]
formatex(text,127,"Prisoners: %d alive, %d total", terroalive, terronum)
message_begin(MSG_ONE_UNRELIABLE, StatusText, {0,0,0}, id)
write_byte(0)
write_string(text)
message_end()
}
public stop_sound(id)
{
client_cmd(id, "stopsound")
}
stock set_user_model(id,model[])
{
engfunc(EngFunc_SetClientKeyValue, id, engfunc(EngFunc_GetInfoKeyBuffer,id), "model", model)
}
stock active_players(CsTeams:team, bool:aliveonly = false)
{
static players[32], inum, i, active, CsTeams:playerteam
(aliveonly) ? get_players(players, inum, "ah") : get_players(players, inum, "h")
active = 0
for (i = 0; i < inum; ++i)
{
playerteam = cs_get_user_team(players[i])
if(playerteam == team) active++
}
return active
}
stock handle_join(id, iMsgid, iTeam)
{
static iMsgBlock
iMsgBlock = get_msg_block(iMsgid)
set_msg_block(iMsgid, BLOCK_SET)
static team[2]
num_to_str(iTeam, team, charsmax(team))
engclient_cmd(id, "jointeam", team)
engclient_cmd(id, "joinclass", "1")
set_msg_block(iMsgid, iMsgBlock)
client_print(id, print_chat, "=prison: You cannot change team.")
}
stock update_terro()
{
terronum = active_players(CS_TEAM_T, false)
terroalive = active_players(CS_TEAM_T, true)
}