Kod:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <cstrike>
#define PLUGIN "Ultimate SS"
#define VERSION "1.2"
#define AUTHOR "Hack, edited by Yetj"
new player
new ip[32]
new finish;
new maxscreens //maksymalna ilosc screenow zrobionych graczowi
new screeninterval //czas pomiedzy 2 ss
new design //visual stuff
new site //stron/forum gdzie gracz ma wrzucic ss w celu unbana
new reason
new oslep
new save
new czas
public plugin_init()
{
register_plugin( PLUGIN, VERSION, AUTHOR )
register_concmd("amx_ss", "concmd_screen", ADMIN_BAN, "<authid, nick lub #userid> <screens>")
register_clcmd("say /ip", "show_ip")
maxscreens = register_cvar("amx_ss_max", "5") //Maksymalna ilosc ss
screeninterval = register_cvar("amx_ss_interval", "2.0") //odstep pomiedzy 2 ss
design = register_cvar("amx_ss_design", "3") //wyglad podczas i po zrobieniu ss
site = register_cvar("amx_ss_site","www.amxx.pl") //strona/forum gdzie ma wrzucic ss
reason = register_cvar("amx_ss_reason","Wrzuc_screeny_na_")
save = register_cvar("amx_ss_save","1")
czas = register_cvar("amx_ss_ban","0")
oslep = get_user_msgid("ScreenFade")
}
public concmd_screen(id, level, cid)
{
if(!cmd_access(id, level, cid, 3)) //if the one who requests an ss isnt admin exit
{
return PLUGIN_HANDLED
}
new arg1[24], arg2[4]
read_argv(1, arg1, 23)
read_argv(2, arg2, 3)
new screens = str_to_num(arg2)
new maxss = get_pcvar_num(maxscreens)
if(screens > maxss) //too many ss?
{
console_print(id, "[SS]Za duzo screenow na raz!")
return PLUGIN_HANDLED
}
player = cmd_target(id, arg1, 1)
if (!player) //the player has exited the sv or he didnt existed
{
return PLUGIN_HANDLED
}
finish = screens
new Float:interval = get_pcvar_float(screeninterval) //a set_task for each "amx_ss nickname nr_of_ss"
new array[2]
array[0] = id //save usefull data in a vector so it can be reused
array[1] = player
set_task(interval, "ss_propriuzis", 0, array,2, "a", screens)
return PLUGIN_HANDLED
}
public ss_propriuzis(array[2])
{
//take data and set them accordingly
new player = array[1]
new id = array[0]
new logfile[128],text[256]
//save time,adminname,playername so that the player cant give us other ss's and because it LOOKS COOOL!
new timestamp[32], timestampmsg[128], name[32], adminname[32]
get_time("%d/%m/%Y - %H:%M:%S", timestamp, 31)
get_user_name(player, name, 31)
get_user_name(id, adminname, 31)
get_user_ip(player, ip, 31)
//Clasic Design
if(get_pcvar_num(design) == 0)
{
client_print(player, print_chat, "** ** Screenshot zrobiony graczowi ^"%s^" przez admina ^"%s^" **", name, adminname)
client_cmd(player, "snapshot") //ss
if(get_pcvar_num(save) == 0)
{
console_print(id, "[SS]Nie zapisano ss w logach");
}
else if(get_pcvar_num(save) == 1)
{
format (text, 256, "[%s] %s zrobil screeny %s [%s]",timestamp,adminname,name,ip)
format( logfile, 128, "addons/amxmodx/logs/screeny.log", logfile)
write_file( logfile, text )
console_print(id, "[SS]Zapisano ss w logach");
}
}
//Doar Playerului
else if(get_pcvar_num(design) == 1)
{
client_print(player, print_chat, "** Screenshot zrobiony graczowi ^"%s^" przez admina ^"%s^" (%s) **", name, adminname, timestamp)
client_cmd(player, "snapshot") //ss
if(get_pcvar_num(save) == 0)
{
console_print(id, "[SS]Nie zapisano ss w logach");
}
else if(get_pcvar_num(save) == 1)
{
format (text, 256, "[%s] %s zrobil screeny %s [%s]",timestamp,adminname,name,ip)
format( logfile, 128, "addons/amxmodx/logs/screeny.log", logfile)
write_file( logfile, text )
console_print(id, "[SS]Zapisano ss w logach");
}
}
//HUD Message doar Playerului
else if(get_pcvar_num(design) == 2)
{
set_hudmessage(player, 255, 0, -1.0, 0.3, 0, 0.25, 0.5, 0.0, 0.0, 4)
format(timestampmsg, 127, "** CZAS: - %s **", timestamp)
show_hudmessage(player, timestampmsg)
client_cmd(player, "snapshot") //ss
if(get_pcvar_num(save) == 0)
{
console_print(id, "[SS]Nie zapisano ss w logach");
}
else if(get_pcvar_num(save) == 1)
{
format (text, 256, "[%s] %s zrobil screeny %s [%s]",timestamp,adminname,name,ip)
format( logfile, 128, "addons/amxmodx/logs/screeny.log", logfile)
write_file( logfile, text )
console_print(id, "[SS]Zapisano ss w logach");
}
}
//Full
else if(get_pcvar_num(design) == 3)
{
//HUD Timestamp Message
set_hudmessage(player, 255, 0, -1.0, 0.3, 0, 0.25, 0.5, 0.0, 0.0, 4)
format(timestampmsg, 127, "** GRACZ %s CZAS: - %s **",name,timestamp)
show_hudmessage(player, timestampmsg)
console_print(id, "** Screenshot zrobiony graczowi ^"%s^" przez admina ^"%s^" (%s) **", name, adminname, timestamp )
//client_print(0, print_chat, "** Screenshot zrobiony graczowi ^"%s^" przez admina ^"%s^" (%s) **", name, adminname, timestamp)
client_cmd(player, "snapshot") //ss
if(get_pcvar_num(save) == 0)
{
console_print(id, "[SS]Nie zapisano ss w logach");
}
else if(get_pcvar_num(save) == 1)
{
format (text, 256, "[%s] %s zrobil screeny %s [%s]",timestamp,adminname,name,ip)
format( logfile, 128, "addons/amxmodx/logs/screeny.log", logfile)
write_file( logfile, text )
console_print(id, "[SS]Zapisano ss w logach");
}
}
console_print(id, "[SS]%s ma ip %s!",name,ip)
console_print(id, "[SS]%s ma ip %s!",name,ip)
console_print(id, "[SS]%s ma ip %s!",name,ip)
finish = finish - 1;
if(finish == 0)
{
set_task(0.1,"slepy",id);
set_task(0.1,"info",id);
client_cmd(player, "kill")
cs_set_user_team(player,CS_TEAM_SPECTATOR);
set_task(30.0,"ban",id);
}
return PLUGIN_CONTINUE;
}
public slepy(id) {
message_begin(MSG_ONE,oslep,{0,0,0},id)
write_short(~0)
write_short(~0)
write_short(60)
write_byte(0)
write_byte(0)
write_byte(0)
write_byte(255)
message_end()
}
public info(id)
{
new timestampmsg[128]
new forum[51]
get_pcvar_string(site,forum,50)
set_hudmessage(player, 255, 0, -1.0, 0.3, 0, 0.25, 60.0, 0.0, 0.0, 4);
format(timestampmsg, 127, "**** Wrzuc screeny na %s ****^n^n^n^n**** Wrzuc screeny na %s ****", forum, forum, forum);
show_hudmessage(player, timestampmsg);
set_task(1.5,"info",id);
}
public ban(id)
{
new name[32]
new forum[51]
new powod[41]
new time[41]
get_pcvar_string(site,forum,50)
get_pcvar_string(reason,powod,40)
get_pcvar_string(czas,time,40)
get_user_name(player, name, 31)
server_cmd("amx_ban %s %s %s%s", time, name, powod, forum);
}
public show_ip(id)
{
console_print(id, "[SS]Ostatnie IP: %s!",ip)
}


Dodatki SourceMod



Temat jest zamknięty









