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) }