Ultimate SS - mała przeróbka
bartu233
01.10.2009
Siema, mógłby mi ktoś przerobić w kodzie sma, żeby plugin automatycznie po zrobieniu screenów graczowi od razu go banował ? Bo teraz jest tak że gracz jeszcze jest z 10-15 sek (nie wiem dokładnie, nie liczyłem) i dopiero dostaje bana.
Kod:
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) }
mgr inż. Pavulon
01.10.2009
set_task(30.0,"ban",id);zmień 30.0 na dowolny czas np 0.5 - pół sekundy lub daj:
ban(id)aby zbanować natychmiast.
p.s.
no i oczywiście skompiluj ponownie

bartu233
01.10.2009
Ok dzięki :>
A dałbyś rade dodać do tego Ultimate SS Taker zeby amxbans banowało gracza ?? On podobno lepszy jest.
A dałbyś rade dodać do tego Ultimate SS Taker zeby amxbans banowało gracza ?? On podobno lepszy jest.
#include <amxmodx> #include <amxmisc> new gmsgFade public plugin_init() { register_plugin("Ultimate SS Taker", "V 2.0", "navir") register_concmd("amx_ss", "plmm", ADMIN_KICK, "Usage: amx_ss <player>") register_dictionary("ultimate_ss.txt") gmsgFade = get_user_msgid("ScreenFade") } new name2[32],param,pozes,poze public plmm(id, level, cid) { if (!cmd_access(id, level, cid, 2)) return PLUGIN_HANDLED new arg[32], tname[32] read_argv(1, arg, 31) new player = cmd_target(id, arg, 4) if (!player) return PLUGIN_HANDLED get_user_name(player, name2, 31) get_user_ip(player, tname, 31, 1) client_print(id, print_chat, "%L", id, "ADMIN_INFO_1", name2,tname) client_print(id, print_chat, "%L", id, "ADMIN_INFO_1", name2,tname) client_print(id, print_chat, "%L", id, "ADMIN_INFO_1", name2,tname) pozes=5 poze=1 client_print(id, print_chat, "%L", id, "ADMIN_INFO_2", name2) new hostname[64], usrip[32], admin[32], timer[32]; get_cvar_string("hostname",hostname,63); get_user_name(player,tname,31); get_user_ip(param,usrip,31); get_user_name(id, admin, 31); get_time("%m/%d/%Y - %H:%M:%S", timer,31); client_print(player, print_center, "%L", id, "PHOTO_COUNT", poze+1) client_print(player, print_chat, "-------------------------------------------------------------------") client_print(player, print_chat, "%L", id, "PHOTO_2") client_print(player, print_chat, "%L", id, "MESSAGE_01", admin) client_print(player, print_chat, "%L", id, "MESSAGE_02", timer,hostname) client_print(player, print_chat, "-------------------------------------------------------------------") client_cmd(player,"snapshot") poze++ param=player set_task(1.0,"ssmaker",3322,_,_,"b"); return PLUGIN_HANDLED } public ssmaker(id, level, cid) { if(poze < pozes) { if(poze==3) { message_begin(MSG_ONE, gmsgFade, {0,0,0},param) write_short(14<<7) write_short(58<<6) write_short(1<<0) write_byte(5) write_byte(255) write_byte(0) write_byte(255) message_end() } new hostname[64], tname[32], usrip[32], timer[32]; get_cvar_string("hostname",hostname,63); get_user_name(param,tname,31); get_user_ip(param, usrip, 31, 1) get_time("%m/%d/%Y - %H:%M:%S", timer,31); client_print(param, print_center, "%L", id, "PHOTO_COUNT", poze+1) client_print(param, print_chat, "-------------------------------------------------------------------") client_print(param, print_chat, "%L", id, "PHOTO_COUNT", poze+1) client_print(param, print_chat, "%L", id, "MESSAGE_03", tname, usrip) client_print(param, print_chat, "%L", id, "MESSAGE_02", timer,hostname) client_print(param, print_chat, "-------------------------------------------------------------------") client_cmd(param,"snapshot") poze++ } else { client_cmd(param,"snapshot") client_cmd(param,"kill;wait;jointeam 6") get_user_name(param, name2, 31) client_print(0, print_chat, "%L", id, "SS_TAKEN", name2) client_print(param, print_chat, "%L", id, "USER_INFO_1", name2) client_print(param, print_chat, "%L", id, "USER_INFO_2") remove_task(3322) } }
mgr inż. Pavulon
01.10.2009
Znaczy się żeby po zabiciu od razu go banowało ? Powód i czas na stałe zapisany czy w cvarze ?A dałbyś rade dodać do tego Ultimate SS Taker zeby amxbans banowało gracza ?? On podobno lepszy jest.
bartu233
01.10.2009
Ta, od razu jak mu zrobi screeny zeby był banik. Powód i czas najlepiej jakbyły w cvarach i jakby dało rade to żeby pokazywało że zbanował go admin "Ultimate SS" a nie nazwa serwera.Znaczy się żeby po zabiciu od razu go banowało ? Powód i czas na stałe zapisany czy w cvarze ?
mgr inż. Pavulon
02.10.2009
#include <amxmodx> #include <amxmisc> new gmsgFade new name2[32],param,pozes,poze new gServerNick[33] new gBanTime, gBanReason, gBanNick, gServNick public plugin_init() { register_plugin("Ultimate SS Taker", "V 2.0", "navir") register_concmd("amx_ss", "plmm", ADMIN_KICK, "Usage: amx_ss <player>") register_dictionary("ultimate_ss.txt") gmsgFade = get_user_msgid("ScreenFade") gBanTime = register_cvar("uss_bantime", "60") gBanReason = register_cvar("uss_banreason", "Wrzuc screen'y na WWW") gBanNick = register_cvar("uss_bannick", "Ultimate SS") gServNick = get_cvar_pointer("amxbans_servernick") if (gServNick) get_pcvar_string(gServNick, gServerNick, 32) } public plmm(id, level, cid) { if (!cmd_access(id, level, cid, 2)) return PLUGIN_HANDLED new arg[32], tname[32] read_argv(1, arg, 31) new player = cmd_target(id, arg, 4) if (!player) return PLUGIN_HANDLED get_user_name(player, name2, 31) get_user_ip(player, tname, 31, 1) client_print(id, print_chat, "%L", id, "ADMIN_INFO_1", name2,tname) client_print(id, print_chat, "%L", id, "ADMIN_INFO_1", name2,tname) client_print(id, print_chat, "%L", id, "ADMIN_INFO_1", name2,tname) pozes=5 poze=1 client_print(id, print_chat, "%L", id, "ADMIN_INFO_2", name2) new hostname[64], usrip[32], admin[32], timer[32]; get_cvar_string("hostname",hostname,63); get_user_name(player,tname,31); get_user_ip(param,usrip,31); get_user_name(id, admin, 31); get_time("%m/%d/%Y - %H:%M:%S", timer,31); client_print(player, print_center, "%L", id, "PHOTO_COUNT", poze+1) client_print(player, print_chat, "-------------------------------------------------------------------") client_print(player, print_chat, "%L", id, "PHOTO_2") client_print(player, print_chat, "%L", id, "MESSAGE_01", admin) client_print(player, print_chat, "%L", id, "MESSAGE_02", timer,hostname) client_print(player, print_chat, "-------------------------------------------------------------------") client_cmd(player,"snapshot") poze++ param=player set_task(1.0,"ssmaker",3322,_,_,"b"); return PLUGIN_HANDLED } public ssmaker(id, level, cid) { if(poze < pozes) { if(poze==3) { message_begin(MSG_ONE, gmsgFade, {0,0,0},param) write_short(14<<7) write_short(58<<6) write_short(1<<0) write_byte(5) write_byte(255) write_byte(0) write_byte(255) message_end() } new hostname[64], tname[32], usrip[32], timer[32]; get_cvar_string("hostname",hostname,63); get_user_name(param,tname,31); get_user_ip(param, usrip, 31, 1) get_time("%m/%d/%Y - %H:%M:%S", timer,31); client_print(param, print_center, "%L", id, "PHOTO_COUNT", poze+1) client_print(param, print_chat, "-------------------------------------------------------------------") client_print(param, print_chat, "%L", id, "PHOTO_COUNT", poze+1) client_print(param, print_chat, "%L", id, "MESSAGE_03", tname, usrip) client_print(param, print_chat, "%L", id, "MESSAGE_02", timer,hostname) client_print(param, print_chat, "-------------------------------------------------------------------") client_cmd(param,"snapshot") poze++ } else { client_cmd(param,"snapshot") client_cmd(param,"kill;wait;jointeam 6") static BanNick[33] get_pcvar_string(gBanNick, BanNick, 32) static BanReason[65] get_pcvar_string(gBanReason, BanReason, 64) set_pcvar_string(gServNick, BanNick) server_cmd("amx_ban %d #%d %s", get_pcvar_num(gBanTime), get_user_userid(id), BanReason) get_user_name(param, name2, 31) client_print(0, print_chat, "%L", id, "SS_TAKEN", name2) client_print(param, print_chat, "%L", id, "USER_INFO_1", name2) client_print(param, print_chat, "%L", id, "USER_INFO_2") set_task(2.0, "przywroc_servernick") remove_task(3322) } } public przywroc_servernick() { set_pcvar_string(gServNick, gServerNick) }
Co prawda nie testowałem, ale mam nadzieje że działa.
Co do zmiany nick'a admina na "Ultimate SS" to zmienia cvar'a przed ban'em i przywraca go 2sek po banie. Więc jeżeli akurat ktoś w tym czasie dostanie bana od serwera to również będzie taki nick, ale to małe szanse są.
Cvar'y:
uss_bantime "60" uss_banreason "Wrzuc screen'y na WWW" uss_bannick "Ultimate SS"
bartu233
04.10.2009
Tak jak wspomniałem wcześniej, amxbans.Masz amxbans czy zwykłe bany amxxa?
naven
04.10.2009
Skomentuj niepotrzebne cvary, a zamiast
server_cmd("amx_ban %d #%d %s", get_pcvar_num(gBanTime), get_user_userid(id), BanReason)Daj po prostu
server_cmd("amx_ban 0 #%d ss na forum", get_user_userid(id))
bartu233
05.10.2009
Skomentuj niepotrzebne cvary, a zamiast
server_cmd("amx_ban %d #%d %s", get_pcvar_num(gBanTime), get_user_userid(id), BanReason)Daj po prostuserver_cmd("amx_ban 0 #%d ss na forum", get_user_userid(id))
Nadal nie banuje

naven
05.10.2009
aaa bo tam inne id masz, tak:
server_cmd("amx_ban 0 #%d ss na forum", get_user_userid(param))
bartu233
08.10.2009
Nadal mi nie chce zbanować graczaaaa bo tam inne id masz, tak:
server_cmd("amx_ban 0 #%d ss na forum", get_user_userid(param))

naven
08.10.2009
no wk... sie zaraz
server_cmd("amx_ban 0 #%d ss na forum", get_user_userid(player))
bartu233
08.10.2009
No raczej -.- Taki tępy to ja nie jestem jeszczePytanie za 100pkt
Kompilujesz w ogóle ten plugin ?

Przy kompilowaniu teraz mi wyrzuca:no wk... sie zaraz
Kod:
server_cmd("amx_ban 0 #%d ss na forum", get_user_userid(player))
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright © 1997-2006 ITB CompuPhase, AMX Mod X Team
/home/groups/amxmodx/tmp3/phpl1szwV.sma(122) : error 017: undefined symbol "player"
/home/groups/amxmodx/tmp3/phpl1szwV.sma(122 -- 124) : error 001: expected token: ",", but found "-identifier-"
/home/groups/amxmodx/tmp3/phpl1szwV.sma(139) : warning 204: symbol is assigned a value that is never used: "gBanTime"
2 Errors.
Could not locate output file /home/groups/amxmodx/public_html/websc3/phpl1szwV.amx (compile failed).
naven
08.10.2009
Widać wtedy nie kompilowałeś, bo ten błąd powinno ci wywalać i wtedy
: symbol is assigned a value that is never used: "gBanTime"
bartu233
08.10.2009
Wyrzuciło mi błąd, ale przekompilowało i mogłem normalnie plik sciągnąć.Widać wtedy nie kompilowałeś, bo ten błąd powinno ci wywalać i wtedy
: symbol is assigned a value that is never used: "gBanTime"
Edit:
proszę bardzo dowód
Your plugin successfully compiled! Use the link below to download your plugin. It will be valid for ten minutes. http://www.amxmodx.org/webcompiler.cgi?go=dl&id=655967 Welcome to the AMX Mod X 1.8.1-300 Compiler. Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team /groups/amxmodx/tmp3/texticdvum.sma(139) : warning 204: symbol is assigned a value that is never used: "gBanTime" Header size: 840 bytes Code size: 6916 bytes Data size: 4608 bytes Stack/heap size: 16384 bytes; estimated max. usage=781 cells (3124 bytes) Total requirements: 28748 bytes 1 Warning. Done.
[ Dodano: 10-10-2009, 17:14 ]
Dobra jednak to działa :> Macie +no wk... sie zaraz
server_cmd("amx_ban 0 #%d ss na forum", get_user_userid(player))
Temat do zamknięcia