Witamy w Nieoficjalnym polskim support'cie AMX Mod X
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|
Screenshot dla gracza i admina
#1
Napisano 10.10.2012 17:03
Nie wiem czy jest coś takiego, ale wydaje mi się, że widziałem gdzieś taki plugin.
Z góry dzięki za pomoc.
#2
Napisano 10.10.2012 17:19
#3
Napisano 10.10.2012 17:44
Nie wiem czy coś takiego istnieje, ale można byłoby pobrać pod id gracza, id admina -> może by zadzialało.
Masz może coś takiego? Skąd pobrać?
#4
Napisano 10.10.2012 18:00
#5
Napisano 10.10.2012 18:19
#include <amxmodx> #include <amxmisc> #define SQL_ZAPIS #define TASK_SCREEN 56323 enum _:cvary { HOST, USER, PASS, DBNAME, MAXSS, INTERVAL, SITE, BAN, BANTIME, BANREASON } enum { BMP, TGA } new const menu_ss[][] = { { 3, BMP }, { 5, BMP }, // Ilosc, Typ { 3, TGA }, { 5, TGA } }; new const menu_sname[][] = { "BMP", "TGA" }; new const tag[] = "[USS]"; new const name[] = "Ultimate ScreenShot"; new gCvars[cvary]; new gScreens[33]; new gScreened[33]; new g_SyncHud; #if defined SQL_ZAPIS #include <sqlx> new gMapa[33]; new gNazwa[101]; new Handle: g_SqlTuple; public SqlInit() { new t[4][33]; get_pcvar_string(gCvars[HOST], t[HOST], 32); get_pcvar_string(gCvars[USER], t[USER], 32); get_pcvar_string(gCvars[PASS], t[PASS], 32); get_pcvar_string(gCvars[DBNAME], t[DBNAME], 32); g_SqlTuple = SQL_MakeDbTuple(t[HOST], t[USER], t[PASS], t[DBNAME]); if(g_SqlTuple == Empty_Handle) set_fail_state("Nie mozna utworzyc uchwytu do polaczenia"); new iErr, szError[32]; new Handle:link = SQL_Connect(g_SqlTuple, iErr, szError, 31); if(link == Empty_Handle) { log_amx("Error (%d): %s", iErr, szError); set_fail_state("Brak polaczenia z baza danych"); } new Handle:query; query = SQL_PrepareQuery(link, "CREATE TABLE IF NOT EXISTS `screeny` ( \ `id` int(11) NOT NULL auto_increment, \ `uname` varchar(32) NOT NULL, \ `aname` varchar(32) NOT NULL, \ `uip` varchar(20) NOT NULL, \ `usid` varchar(32) NOT NULL, \ `map` varchar(32) NOT NULL, \ `time` int(15) NOT NULL, \ `type` int(1) NOT NULL, \ `amount` int(3) NOT NULL, \ `server` varchar(100) NOT NULL, \ PRIMARY KEY (`id`) \ )"); SQL_Execute(query); SQL_FreeHandle(query); } public Query(failstate, Handle:query, error[]) { if(failstate != TQUERY_SUCCESS) { log_amx("SQL Insert error: %s", error); return; } } #endif public plugin_init() { register_plugin(name, "1.1", "byCZEK"); gCvars[HOST] = register_cvar("ss_hostname", ""); gCvars[USER] = register_cvar("ss_username", ""); gCvars[PASS] = register_cvar("ss_password", ""); gCvars[DBNAME] = register_cvar("ss_database", ""); gCvars[MAXSS] = register_cvar("ss_mscreens", "10"); gCvars[INTERVAL] = register_cvar("ss_interval", "1.0"); gCvars[SITE] = register_cvar("ss_sitemap", "http://amxx.pl"); gCvars[BAN] = register_cvar("ss_banplayer", "1"); gCvars[BANTIME] = register_cvar("ss_bantime", "0"); gCvars[BANREASON] = register_cvar("ss_banreason", "Wrzuc screeny na forum"); register_concmd("amx_ss", "ZrobScreena", ADMIN_BAN, "<authid, nick or #userid> [screens] [type 0/1]"); register_concmd("amx_screen", "ZrobScreena", ADMIN_BAN, "<authid, nick or #userid> [screens] [type 0/1]"); register_concmd("amx_screenm", "MenuScreenow", ADMIN_BAN, " - pokazuje menu screenow"); g_SyncHud = CreateHudSyncObj(); set_task(0.1, "Init"); } public Init() { #if defined SQL_ZAPIS get_mapname(gMapa, 32); get_user_name(0, gNazwa, 100); SqlInit(); #endif AddMenuItem("ScreenShot", "amx_screenm", ADMIN_BAN, name); } public client_putinserver(id) { gScreens[id] = 0; } public ZrobScreena(id, level, cid) { if(!cmd_access(id, level, cid, 2)) { return PLUGIN_HANDLED; } new t[3][33], pid; read_argv(1, t[0], 32); read_argv(2, t[1], 3); read_argv(3, t[2], 3); new Screens = str_to_num(t[1]); new Type = str_to_num(t[2]); new MScreens = get_pcvar_num(gCvars[MAXSS]); if(!Screens) Screens = 5; if(Screens > MScreens) { console_print(id, "%s Nie mozesz zrobic tylu screenow.", tag); return PLUGIN_HANDLED; } pid = cmd_target(id, t[0]); if(!pid) return PLUGIN_HANDLED; new dane[4]; new Float: Interval = get_pcvar_float(gCvars[INTERVAL]); dane[0] = id; dane[1] = pid; dane[2] = Type; dane[3] = Screens; gScreens[pid] = Screens; set_task(Interval, "ZrobScreena_", TASK_SCREEN + pid, dane, 4, "a", Screens); #if defined SQL_ZAPIS new z[4][33], buffer[512]; get_user_name(id, z[0], 32); get_user_name(pid, z[1], 32); get_user_ip(pid, z[2], 32, 1); get_user_authid(pid, z[3], 32); replace_all(z[0], 32, "'", "\'"); replace_all(z[0], 32, "`", "\`"); replace_all(z[1], 32, "'", "\'"); replace_all(z[1], 32, "`", "\`"); formatex(buffer, charsmax(buffer), "INSERT INTO `screeny` VALUES (NULL, '%s', '%s', '%s', '%s', '%s', %d, %d, %d, '%s');", z[1], z[0], z[2], z[3], gMapa, get_systime(), Type, Screens, gNazwa); SQL_ThreadQuery(g_SqlTuple, "Query", buffer); #endif return PLUGIN_HANDLED; } public ZrobScreena_(dane[4]) { new id = dane[0]; new pid = dane[1]; new tid = dane[2]; new t[6][33]; get_user_name(id, t[0], 32); get_user_name(pid, t[1], 32); get_user_ip(pid, t[2], 20, 1); get_time("%m/%d/%Y - %H:%M:%S", t[3], 31); set_hudmessage(0, 255, 0, -1.0, 0.3, 0, 0.25, 1.0, 0.0, 0.0, 4); ShowSyncHudMsg(pid, g_SyncHud, "** %s **^n%s", t[1], t[3]); client_print(0, print_chat, "%s Admin: %s zrobil screen graczowi: %s (%s) %s %s", tag, t[0], t[1], t[2], t[3], menu_sname[tid]); client_cmd(pid, tid ? "screenshot" : "snapshot"); if(get_pcvar_num(gCvars[BAN]) && !--gScreens[pid]) { new czas = get_pcvar_num(gCvars[BANTIME]); get_pcvar_string(gCvars[BANREASON], t[4], 32); get_pcvar_string(gCvars[SITE], t[5], 32); console_print(pid, "%s ==========================================", tag); console_print(pid, "%s Admin %s zrobil Ci screeny", tag, t[0]); console_print(pid, "%s Ilosc: %d", tag, dane[3]); console_print(pid, "%s Typ: %s", tag, menu_sname[tid]); console_print(pid, "%s Umiesc screeny na: %s", tag, t[5]); console_print(pid, "%s Pozdro od autora (byCZEK)", tag); console_print(pid, "%s ==========================================", tag); client_cmd(id, "amx_ban %d #%d ^"%s^"", czas, get_user_userid(pid), t[4]); } } public MenuScreenow(id, level, cid) { if(!cmd_access(id, level, cid, 1)) { return PLUGIN_HANDLED; } new players[32], name[33], temp[2][128], num, pl; get_players(players, num); new m = menu_create("Lista Graczy", "MenuScreenow_"); for(new i = 0; i < num; i++) { pl = players[i]; get_user_name(pl, name, 32); num_to_str(pl, temp[0], 2); formatex(temp[1], 127, "%s%s", name, (get_user_flags(pl) & ADMIN_KICK) ? "\r *" : ""); menu_additem(m, temp[1], temp[0], _, menu_makecallback("MenuScreenow_c")); } menu_setprop(m, MPROP_EXIT, MEXIT_ALL); menu_display(id, m, 0); return PLUGIN_HANDLED; } public MenuScreenow_(id, m, i) { if(i == MENU_EXIT) { menu_destroy(m); return PLUGIN_CONTINUE; } new data[6], iName[64], access, callback; menu_item_getinfo(m, i, access, data,5, iName, 63, callback); gScreened[id] = get_user_userid(str_to_num(data)); new me = menu_create("Ilosc screenow", "MenuScreenow__"); for(new j = 0; j < sizeof(menu_ss); j++) { formatex(iName, 63, "%d \y%s", menu_ss[j][0], menu_sname[menu_ss[j][1]]); menu_additem(me, iName); } menu_display(id, me, 0); return PLUGIN_CONTINUE; } public MenuScreenow_c(id, m, i) { new data[6], iName[64], access, callback; menu_item_getinfo(m, i, access, data,5, iName, 63, callback); new pl = str_to_num(data); if(get_user_flags(pl) & ADMIN_IMMUNITY || pl == id) return ITEM_DISABLED; return ITEM_ENABLED; } public MenuScreenow__(id, m, i) { new screens = menu_ss[i][0]; new type = menu_ss[i][1]; client_cmd(id, "amx_ss #%d %d %d", gScreened[id], screens, type); }
#6
Napisano 12.10.2012 00:32
Używam również tego zwykłego z amxbans'em gm 1.6
#7
Napisano 15.10.2012 15:29
Użytkownik bossik edytował ten post 15.10.2012 15:32
#8
Napisano 16.10.2012 10:14
#9
Napisano 18.10.2012 19:53
Nie prawda był kiedyś taki tylko nie pamiętam nazwy.nie ma pluginu ktory robi ss graczowi i zapisuje je u gracza oraz admina...
Lecz nie wiem po co ci ss'y także u admina ?
Użytkownik Luffy edytował ten post 18.10.2012 19:53
#10
Napisano 18.10.2012 20:38
Jeśli dobrze zrozumiałem to chodzi mu o to że zrobię Ci ss'y a mam je u siebie na komputerze.Nie prawda był kiedyś taki tylko nie pamiętam nazwy.
Lecz nie wiem po co ci ss'y także u admina ?
#11
Napisano 19.10.2012 08:45
Jeśli dobrze zrozumiałem to chodzi mu o to że zrobię Ci ss'y a mam je u siebie na komputerze.Nie prawda był kiedyś taki tylko nie pamiętam nazwy.
Lecz nie wiem po co ci ss'y także u admina ?
Od razu piszę szukałem chwilę w bazie tematów i nie zauważyłem nic interesującego, chodzi mi o pluginek, który robi ss i zapisuje je na komputerze gracza oraz admina banującego.
Nie wiem czy jest coś takiego, ale wydaje mi się, że widziałem gdzieś taki plugin.
Z góry dzięki za pomoc.
Czytaj
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych