Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

admin_screen

Статус пользователя !?!
сообщение 28.8.2010, 10:03
Сообщение #1
Стаж: 17 лет

Сообщений: 119
Благодарностей: 17
Полезность: 25

Помогите пожалуйста добавить в плагин админ скрин логирование.
Надо чтоб в отдельный лог писало: Админ такой-то сделал скрин на игроке таком-то, желательно, чтоб указывался IP игрока на ком сделали скрины.
admin_screen2.sma
Код
/* AMX Mod X script.

#include <amxmodx>
#include <amxmisc>

new player

//PCVAR
new maxss, ssinterval, timestamptype

public plugin_init()
{
    register_plugin("Admin Screen 2", "2.0", "k01x0zn1k")
    
    register_concmd("amx_screen", "concmd_screen", ADMIN_LEVEL_A, "<authid, nick or #userid> <screens>")
    
    maxss = register_cvar("amx_maxscreens", "10")
    ssinterval = register_cvar("amx_ssinterval", "1.0")
    timestamptype = register_cvar("amx_timestamptype", "3")
}

public concmd_screen(id, level, cid)
{
    //Is the amx_screen'er an admin?
    if(!cmd_access(id, level, cid, 3))
    {
        return PLUGIN_HANDLED
    }
    
    //Read the arguements
    new arg1[24], arg2[4]
    read_argv(1, arg1, 23)
    read_argv(2, arg2, 3)
    
    new screens = str_to_num(arg2)
    new maxscreens = get_pcvar_num(maxss)
    
    //Let us make sure that there aren't too many screenshots taken
    if(screens > maxscreens)
    {
        console_print(id, "[AMXX] You cannot take that many screenshots!")
        
        return PLUGIN_HANDLED
    }
    
    //Does the target exist?
    player = cmd_target(id, arg1, 1)
    if (!player)
    {
        return PLUGIN_HANDLED
    }
    
    //How many screenshots?
    new Float:interval = get_pcvar_float(ssinterval)
    new array[2]
    array[0] = id
    array[1] = player
    set_task(interval, "takeScreen", 0, array,2, "a", screens)
        
    return PLUGIN_HANDLED
}

public takeScreen(array[2])
{
    new player = array[1]
    new id = array[0]
            
    //Get time, admin name, and target name
    new timestamp[32], timestampmsg[128], name[32], adminname[32]
    get_time("%m/%d/%Y - %H:%M:%S", timestamp, 31)
    get_user_name(player, name, 31)
    get_user_name(id, adminname, 31)
            
    //No timestamp
    if(get_pcvar_num(timestamptype) == 0)
    {
        client_print(player, print_chat, "", name, adminname)
        
        //Take the screenshot
        client_cmd(player, "snapshot")
    }
    //Client Print only
    else if(get_pcvar_num(timestamptype) == 1)
    {
        //client_print Timestamp Message
        client_print(player, print_chat, "", name, adminname, timestamp)
    
        //Take the screenshot
        client_cmd(player, "snapshot")
    }
    //HUD Message only
    else if(get_pcvar_num(timestamptype) == 2)
    {
        //HUD Timestamp Message
        set_hudmessage(player, 255, 0, -1.0, 0.3, 0, 0.25, 1.0, 0.0, 0.0, 4)
        format(timestampmsg, 127, "** o0ps... %s **", timestamp)
        show_hudmessage(player, timestampmsg)
        
        //Take the screenshot
        client_cmd(player, "snapshot")
    }
    //Both
    else if(get_pcvar_num(timestamptype) == 3)
    {
        //HUD Timestamp Message
        set_hudmessage(player, 255, 0, -1.0, 0.3, 0, 0.25, 1.0, 0.0, 0.0, 4)
        format(timestampmsg, 127, "** o0ps... %s **", timestamp)
        show_hudmessage(player, timestampmsg)
            
        //client_print Timestamp Message
        client_print(player, print_chat, "", name, adminname, timestamp)
    
        //Take the screenshot
        client_cmd(player, "snapshot")
    }
    return PLUGIN_CONTINUE
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя STR@TEG
сообщение 28.8.2010, 12:19
Сообщение #2
Стаж: 16 лет

Сообщений: 4186
Благодарностей: 1763
Полезность: 837

Код
new name[32], name2[32], authid[32], authid2[32], ip[32], ip2[32], map[32], date[32], log[256], logfile[64]
get_user_name(id, name, 31)
get_user_name(player, name2, 31)
get_user_authid(id, authid, 31)
get_user_authid(player, authid2, 31)
get_user_ip(id, ip, 31, 1)
get_user_ip(player, ip2, 31, 1)
get_mapname(map, 31)
get_time("%m%d%Y", date, 31)

formatex(log, 255, "Screen: ^"%s<%s><%s>^" has made <%s> screenshots to player ^"%s<%s><%s>^" on map <%s>", name, authid, ip, arg2, name2, authid2, ip2, map)
formatex(logfile, 63, "screenshots_%s.log", date)
log_to_file(logfile, log)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя !?!
сообщение 28.8.2010, 12:27
Сообщение #3
Стаж: 17 лет

Сообщений: 119
Благодарностей: 17
Полезность: 25

Подскажи пожалуйста, в какую часть плагина это надо вставить ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя STR@TEG
сообщение 28.8.2010, 12:38
Сообщение #4
Стаж: 16 лет

Сообщений: 4186
Благодарностей: 1763
Полезность: 837

Код
new Float:interval = get_pcvar_float(ssinterval)
new array[2]
array[0] = id
array[1] = player
set_task(interval, "takeScreen", 0, array,2, "a", screens)

// Здесь код логирования

return PLUGIN_HANDLED
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя !?!
сообщение 28.8.2010, 13:06
Сообщение #5
Стаж: 17 лет

Сообщений: 119
Благодарностей: 17
Полезность: 25

При попытке компилирования, выскакивает ошибка
//// admin_screen3.sma
Код
// E:\GameAction. CS1.6 #1 Classic\Server xD1\cstrike\addons\amxmodx\scripting\a
dmin_screen2.sma(131) : error 001: expected token: "*/", but found "-end of file
-"
// E:\GameAction. CS1.6 #1 Classic\Server xD1\cstrike\addons\amxmodx\scripting\a
dmin_screen2.sma(131) : error 013: no entry point (no public functions)
//
// 2 Errors.
// Could not locate output file E:\GameAction. CS1.6 #1 Classic\Server xD1\cstri
ke\addons\amxmodx\scripting\compiled\admin_screen2.amx (compile failed).
//
// Compilation Time: 0,08 sec
// ----------------------------------------

Press enter to exit ...

admin_screen2.sma
Код
/* AMX Mod X script.

#include <amxmodx>
#include <amxmisc>

new player

//PCVAR
new maxss, ssinterval, timestamptype

public plugin_init()
{
    register_plugin("Admin Screen 2", "32", "k01x0zn1k")
    
    register_concmd("amx_screen", "concmd_screen", ADMIN_LEVEL_A, "<authid, nick or #userid> <screens>")
    
    maxss = register_cvar("amx_maxscreens", "10")
    ssinterval = register_cvar("amx_ssinterval", "1.0")
    timestamptype = register_cvar("amx_timestamptype", "3")
}

public concmd_screen(id, level, cid)
{
    //Is the amx_screen'er an admin?
    if(!cmd_access(id, level, cid, 3))
    {
        return PLUGIN_HANDLED
    }
    
    //Read the arguements
    new arg1[24], arg2[4]
    read_argv(1, arg1, 23)
    read_argv(2, arg2, 3)
    
    new screens = str_to_num(arg2)
    new maxscreens = get_pcvar_num(maxss)
    
    //Let us make sure that there aren't too many screenshots taken
    if(screens > maxscreens)
    {
        console_print(id, "[AMXX] You cannot take that many screenshots!")
        
        return PLUGIN_HANDLED
    }
    
    //Does the target exist?
    player = cmd_target(id, arg1, 1)
    if (!player)
    {
        return PLUGIN_HANDLED
    }
    
    //How many screenshots?
    new Float:interval = get_pcvar_float(ssinterval)
    new array[2]
    array[0] = id
    array[1] = player
    set_task(interval, "takeScreen", 0, array,2, "a", screens)

    new name[32], name2[32], authid[32], authid2[32], ip[32], ip2[32], map[32], date[32], log[256], logfile[64]
    get_user_name(id, name, 31)
    get_user_name(player, name2, 31)
    get_user_authid(id, authid, 31)
    get_user_authid(player, authid2, 31)
    get_user_ip(id, ip, 31, 1)
    get_user_ip(player, ip2, 31, 1)
    get_mapname(map, 31)
    get_time("%m%d%Y", date, 31)

    formatex(log, 255, "Screen: ^"%s<%s><%s>^" has made <%s> screenshots to player ^"%s<%s><%s>^" on map <%s>", name, authid, ip, arg2, name2, authid2, ip2, map)
    formatex(logfile, 63, "screenshots_%s.log", date)
    log_to_file(logfile, log)

    return PLUGIN_HANDLED
}

public takeScreen(array[2])
{
    new player = array[1]
    new id = array[0]
            
    //Get time, admin name, and target name
    new timestamp[32], timestampmsg[128], name[32], adminname[32]
    get_time("%m/%d/%Y - %H:%M:%S", timestamp, 31)
    get_user_name(player, name, 31)
    get_user_name(id, adminname, 31)
            
    //No timestamp
    if(get_pcvar_num(timestamptype) == 0)
    {
        client_print(player, print_chat, "", name, adminname)
        
        //Take the screenshot
        client_cmd(player, "screen")
    }
    //Client Print only
    else if(get_pcvar_num(timestamptype) == 1)
    {
        //client_print Timestamp Message
        client_print(player, print_chat, "", name, adminname, timestamp)
    
        //Take the screenshot
        client_cmd(player, "screen")
    }
    //HUD Message only
    else if(get_pcvar_num(timestamptype) == 2)
    {
        //HUD Timestamp Message
        set_hudmessage(player, 255, 0, -1.0, 0.3, 0, 0.25, 1.0, 0.0, 0.0, 4)
        format(timestampmsg, 127, "** o0ps... %s **", timestamp)
        show_hudmessage(player, timestampmsg)
        
        //Take the screenshot
        client_cmd(player, "screen")
    }
    //Both
    else if(get_pcvar_num(timestamptype) == 3)
    {
        //HUD Timestamp Message
        set_hudmessage(player, 255, 0, -1.0, 0.3, 0, 0.25, 1.0, 0.0, 0.0, 4)
        format(timestampmsg, 127, "** o0ps... %s **", timestamp)
        show_hudmessage(player, timestampmsg)
            
        //client_print Timestamp Message
        client_print(player, print_chat, "", name, adminname, timestamp)
    
        //Take the screenshot
        client_cmd(player, "screen")
    }
    return PLUGIN_CONTINUE
}


Причина: впредь используй спойлер.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя STR@TEG
сообщение 28.8.2010, 13:18
Сообщение #6
Стаж: 16 лет

Сообщений: 4186
Благодарностей: 1763
Полезность: 837

Код
/* AMX Mod X script.
Комментарий не закрыт. Должно быть так:
Код
/* AMX Mod X script. */


Автор плагина не k01x0zn1k, а uTg | bigpapajiggs :butcher:
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя !?!
сообщение 28.8.2010, 14:14
Сообщение #7
Стаж: 17 лет

Сообщений: 119
Благодарностей: 17
Полезность: 25

Я не знаю кто автор, но там так было написано изначально.
Спасибо еще раз.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: