Kod:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fakemeta_util>
#include <hamsandwich>
#include <block>
#define PIESCI_VIEW_MODEL "models/jail/v_piesci.mdl"
#define PIESCI_PLAYER_MODEL "models/jail/p_piesci.mdl"
#define WIEZIEN_MODEL "wiezien"
#define KLAWISZ_MODEL "klawisz"
new wersja[] = "3.0"
new folder[] = "jailmod"
new configsdir[65]
new dzien = 0
new dni_tygodnia = 0
new karynum = 0
new kary[129][129]
new podskoki[33],kucki[33],ilesiedzi[33]
new ogranicz
new silownia_act
new last_alive[33]
new const dni[7][] = {
"Poniedzialek",
"Wtorek",
"Sroda",
"Czwartek",
"Piatek",
"Sobota",
"Niedziela"
}
public plugin_init()
{
register_plugin("JAIL Break by AmD",wersja,"1.0")
server_print("====Jail Break Mod %s BY AmD====",wersja)
new active = register_cvar("jail_on","1",ADMIN_CVAR)
if(get_pcvar_num(active) == 1)
{
get_configsdir(configsdir,64)
register_clcmd("say","handle_say")
register_clcmd("say_team","handle_say")
set_task(150.0,"reklama")
register_event("CurWeapon","set_model","b","1=1")
register_logevent("start_round",2,"1=Round_Start")
register_message(get_user_msgid("TextMsg") ,"kto_wygral")
silownia_act = register_cvar("jail_pakernia","1",ADMIN_CVAR)
register_forward(FM_PlayerPreThink,"silownia")
register_forward(FM_EmitSound,"podmien_dziwek")
sprawdz_pliki()
laduj_kary()
server_cmd("sv_maxspeed 1200")
ogranicz = register_cvar("jail_ct_limit","4",ADMIN_CVAR)
set_cvar_num("mp_limitteams",0)
set_cvar_num("mp_autoteambalance",0)
register_clcmd("jointeam","jointeam")
register_menucmd(register_menuid("Team_Select",1),(1<<0)|(1<<1)|(1<<4),"teamselect")
register_forward(FM_PlayerPreThink,"pokaz_wyniki")
RegisterHam(Ham_Spawn,"player","set_player_model",1)
block_buy_menu()
register_logevent("round_end",2,"1=Round_End")
register_clcmd("say dbg","debug1")
register_forward(FM_GetGameDescription,"gamename")
//RegisterHam(Ham_TakeDamage, "player", "obrazenia")
}
}
/*
public obrazenia(Victim, Useless, Attacker, Float:damage, damagebits)
{
client_print(0,print_chat,"%f",damage)
}
*/
public gamename()
{
new g_name[65]
format(g_name,64,"JAIL Mod %s BY AmD",wersja)
forward_return(FMV_STRING,g_name)
return FMRES_SUPERCEDE
}
public debug1(id)
{
fm_set_user_godmode(id,1)
}
public round_end()
{
new players[32],inum
get_players(players,inum,"h")
for(new a=0;a<inum;++a)
{
if(is_user_alive(players[a]))
{
last_alive[players[a]] = 1
}
else last_alive[players[a]] =0
}
}
public block_buy(id)
{
if(last_alive[id] != 1)
{
if(get_user_team(id) == 1)
{
fm_strip_user_weapons(id)
fm_give_item(id,"weapon_knife")
}
else if(get_user_team(id) == 2) show_ct_menu(id)
}
}
public show_ct_menu(id)
{
}
public set_player_model(id)
{
if(!is_user_alive(id)) return PLUGIN_HANDLED
new user_team = get_user_team(id)
if(user_team == 1)
{
cs_set_user_model(id,WIEZIEN_MODEL)
}
else if(user_team == 2)
{
cs_set_user_model(id,KLAWISZ_MODEL)
}
block_buy(id)
return PLUGIN_CONTINUE
}
public pokaz_wyniki(id)
{
if(!is_user_alive(id)) return PLUGIN_HANDLED
new id2,body
get_user_aiming(id,id2,body)
new cel_team = get_user_team(id2)
new cel_name[33]
get_user_name(id2,cel_name,32)
if(cel_team == 1)
{
set_hudmessage(255, 170, 0, -1.0, 0.70, 0, 6.0, 0.5)
if(get_pcvar_num(silownia_act) == 1) show_hudmessage(id,"%s - Siedzi %d Dzien^n^nPrzysiady: %d Podskoki: %d",cel_name,ilesiedzi[id2],kucki[id2],podskoki[id2])
else if(get_pcvar_num(silownia_act) == 0) show_hudmessage(id,"%s - Siedzi %d Dzien",cel_name,ilesiedzi[id2])
}
else if(cel_team == 2)
{
set_hudmessage(255, 170, 0, -1.0, 0.57, 0, 6.0, 0.5)
show_hudmessage(id,"Klawisz...")
}
return PLUGIN_CONTINUE
}
public jointeam(id)
{
new arg[2]
read_argv(1,arg,1)
return checkTeam(id,str_to_num(arg))
}
public teamselect(id,key)
{
return checkTeam(id,key+1)
}
checkTeam(id,NewTeam)
{
if(get_pcvar_num(ogranicz) != 0)
{
new in_ct = 0
if(NewTeam == 2 || NewTeam == 5)
{
for(new i = 1; i <= get_playersnum(); i++) if(get_user_team(i) == 2) in_ct++
if(in_ct >= get_pcvar_num(ogranicz)) engclient_cmd(id,"jointeam","T")
else return PLUGIN_CONTINUE
}
else return PLUGIN_CONTINUE
}
else return PLUGIN_CONTINUE
return PLUGIN_HANDLED
}
public podmien_dziwek(id, channel, sample[])
{
if(get_user_team(id) == 1)
{
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 client_connect(id)
{
kucki[id] = 0
podskoki[id] = 0
ilesiedzi[id] = 0
last_alive[id] = 0
}
public set_model(id)
{
if(!is_user_alive(id))
{
return PLUGIN_HANDLED
}
if(read_data(2) == 29 && get_user_team(id) == 1)
{
set_pev(id,pev_viewmodel2,PIESCI_VIEW_MODEL)
set_pev(id,pev_weaponmodel2,PIESCI_PLAYER_MODEL)
}
if(get_pcvar_num(silownia_act) == 1 && get_user_team(id) == 1)
{
switch(kucki[id])
{
case 50 .. 100: fm_set_user_maxspeed(id, fm_get_user_maxspeed(id) + 0.1)
case 101 .. 200: fm_set_user_maxspeed(id, fm_get_user_maxspeed(id) + 0.20)
case 201 .. 300: fm_set_user_maxspeed(id, fm_get_user_maxspeed(id) + 0.30)
case 301 .. 1000: fm_set_user_maxspeed(id, fm_get_user_maxspeed(id) + 0.45)
default: {}
}
switch(podskoki[id])
{
case 50 .. 100: fm_set_user_gravity(id, fm_get_user_gravity(id) - 0.10)
case 101 .. 200: fm_set_user_gravity(id, fm_get_user_gravity(id) - 0.2)
case 201 .. 300: fm_set_user_gravity(id, fm_get_user_gravity(id) - 0.30)
case 301 .. 1000: fm_set_user_gravity(id, fm_get_user_gravity(id) - 0.40)
default: {}
}
}
return PLUGIN_CONTINUE
}
public silownia(id)
{
if(!is_user_alive(id) && get_pcvar_num(silownia_act) != 1) return FMRES_IGNORED
if(pev(id, pev_oldbuttons) & IN_DUCK && !(pev(id, pev_button) & IN_DUCK) && get_user_team(id) == 1)
{
static s_iFlags
s_iFlags = pev(id, pev_flags)
if(s_iFlags & FL_DUCKING)
{
kucki[id]++
}
}
if(pev(id, pev_oldbuttons) & IN_JUMP && !(pev(id, pev_button) & IN_JUMP) && get_user_team(id) == 1)
{
static s_iFlags
s_iFlags = pev(id, pev_flags)
if(!(s_iFlags & FL_ONGROUND))
{
podskoki[id]++
}
}
return FMRES_IGNORED
}
public sprawdz_silownie(id)
{
if(get_pcvar_num(silownia_act) == 1)
{
if(get_user_team(id) == 1)
{
client_print(id,print_chat,"Twoje wyniki na silowni:")
client_print(id,print_chat,"Przysiady : %d, Podskoki: %d",kucki[id],podskoki[id])
}
else
{
client_print(id,print_chat,"Musisz byc wiezniem aby pakowac")
}
}
else client_print(id,print_chat,"Silownia ZAMKNIETA")
}
public sprawdz_pliki()
{
new dir[65]
format(dir,64,"%s/%s",configsdir,folder)
if(!dir_exists(dir)) mkdir(dir)
new file_config[129]
format(file_config,128,"%s/%s/jailmod.cfg",configsdir,folder)
if(!file_exists(file_config))
{
write_file(file_config,"//Tutaj Wpisujemy configi do Jail Moda")
write_file(file_config,"jail_on ^"1^"")
write_file(file_config,"jail_ct_limit ^"0^"")
write_file(file_config,"jail_pakernia ^"1^"")
}
server_cmd("exec %s",file_config)
new file_kary[129]
format(file_kary,128,"%s/%s/kary.ini",configsdir,folder)
if(!file_exists(file_kary)) write_file(file_kary,"pobicie")
new file_zasady[129]
format(file_zasady,128,"%s/%s/zasady.html",configsdir,folder)
if(!file_exists(file_zasady)) write_file(file_zasady,"UZUPELNIJ ZASADY!!")
}
public laduj_kary()
{
new file[129]
format(file,128,"%s/%s/kary.ini",configsdir,folder)
new text[65],dummy
for(new a=0;a<file_size(file,1);++a)
{
read_file(file,a,text,64,dummy)
if(!equal(text,""))
{
kary[karynum] = text
karynum++
}
}
}
public kto_wygral(const MsgId,const MsgDest,const MsgEntity )
{
static message[33]
get_msg_arg_string(2, message, 32)
if(equal(message, "#Terrorists_Win"))
{
set_msg_arg_string(2, "Wiezniowie wygrali!")
}
else if(equal(message, "#CTs_Win"))
{
set_msg_arg_string(2, "Klawisze wygrali!")
}
}
public plugin_precache()
{
precache_model(PIESCI_VIEW_MODEL)
precache_model(PIESCI_PLAYER_MODEL)
new player_model[129]
format(player_model,128,"models/player/%s/%s.mdl",WIEZIEN_MODEL,WIEZIEN_MODEL)
precache_model(player_model)
format(player_model,128,"models/player/%s/%s.mdl",KLAWISZ_MODEL,KLAWISZ_MODEL)
precache_model(player_model)
precache_sound("weapons/cbar_hitbod1.wav")
precache_sound("weapons/cbar_hitbod2.wav")
precache_sound("weapons/bullet_hit2.wav")
}
public start_round()
{
dzien++
set_hudmessage(0, 255, 0, -1.0, 0.30, 0, 6.0, 12.0)
ShowSyncHudMsg(0,CreateHudSyncObj(),"Zaczyna sie %d dzien^n(%s)",dzien,dni[dni_tygodnia])
dni_tygodnia++
if(dni_tygodnia >= 7) dni_tygodnia = 0
new players[32],inum
get_players(players,inum)
for(new a=0;a<inum;++a)
{
if(is_user_alive(players[a]) == 1 && get_user_team(players[a]) == 1)
{
ilesiedzi[players[a]]++
set_hudmessage(255, 0, 0, -1.0, 0.60, 0, 6.0, 12.0)
ShowSyncHudMsg(players[a],CreateHudSyncObj(),"Siedzisz %d Dzien za %s",ilesiedzi[players[a]],losuj_kare())
}
}
}
public losuj_kare()
{
return kary[random_num(0,karynum-1)]
}
public reklama()
{
client_print(0,print_chat,"Wpisz /rules lub /zasady aby zobaczyc jak grac")
}
public handle_say(id)
{
new arg1[65]
read_argv(1,arg1,64)
if(equal(arg1,"/rules")) zasady(id)
if(equal(arg1,"/zasady")) zasady(id)
if(equal(arg1,"/silownia")) sprawdz_silownie(id)
}
public zasady(id)
{
new file[129]
format(file,128,"%s/%s/zasady.html",configsdir,folder)
show_motd(id,file,"Zasady:")
}
Plugin z cscenter.pl (już trochę zmieniony przeze mnie)