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

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

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

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

> Важная информация

Перед тем как создать тему или задать вопрос, ознакомьтесь с данной темой, там собраны наиболее распространенные уязвимости и способы устранения.
Так же не поленитесь воспользоваться поиском, вполне возможно, что ваш вопрос уже поднимался на форуме.
При создании новой темы уделите внимание ее названию, оно должно кратко описывать суть вашего вопроса/проблемы. Все вновь созданные темы с названиями "Помогите", "Объясните", "Подскажите" и т.д. будут удалены, а их авторы наказаны.
460 страниц V  « 16 17 18 ... 458 459 »

Fresh Bans

, как замена amxbans_main
Статус пользователя Fake`
сообщение 16.11.2013, 18:08
Сообщение #321


Стаж: 14 лет

Сообщений: 1524
Благодарностей: 320
Полезность: 457

Добавь квар для изменения показа сообщения при бане в чате, так же изменения цвета худ сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя perfectblood0
сообщение 16.11.2013, 18:48
Сообщение #322
Стаж: 17 лет

Сообщений: 5065
Благодарностей: 2685
Полезность: 488

Цитата(mazdan @ 16.11.2013, 19:29) *
Что дальше то?
Нужно ли кеширование полное, а не только для банов?
Пример - игрок входит на сервер - его кикает по причине бана. Нужно ли запоминать это чтобы при перезаходе его кикнуло без обращения к БД (если он попробует в течение установленного кваром значении минут)
Что еще нужно добавить или пока хватит? Есть ли баги?

Да, вещь полезная.
Ты смотрел по поводу времени бана? Иногда неправильно показывает
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 16.11.2013, 18:53
Сообщение #323


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

perfectblood0, последние правильно должны показывать версии. Конкретика нужна.


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя xoymiii
сообщение 16.11.2013, 19:48
Сообщение #324


Стаж: 13 лет

Сообщений: 769
Благодарностей: 244
Полезность: 567

можно сделать показ мотд при бане.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 16.11.2013, 20:28
Сообщение #325


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

xoymiii, можно, для этого есть форварды
Код:
CreateMultiForward("fbans_player_checked", ET_IGNORE, FP_CELL, FP_CELL) // ID, UID
CreateMultiForward("fbans_player_banned_pre", ET_IGNORE, FP_CELL, FP_CELL) // ID, UID
CreateMultiForward("amxbans_player_banned", ET_IGNORE, FP_CELL, FP_CELL) // ID, BID compatibility ;)
CreateMultiForward("fbans_player_banned_post", ET_IGNORE, FP_CELL, FP_CELL, FP_CELL) // ID, UID, BID
CreateMultiForward("fbans_sql_connected", ET_IGNORE, FP_CELL) // ID, UID, BID


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Spieler
сообщение 17.11.2013, 12:34
Сообщение #326


Стаж: 13 лет

Сообщений: 108
Благодарностей: 53
Полезность: 381

кто хочет выводить motd окно при бане, вот fb_forwards

Вместо "http://site.ru/bans/motd.php?sid=_%d&adm=0&lang=ru" вставляем свой путь к motd окну. Плюс нужно поиграться со временем fb_kick_delay "1" чтобы не кикало слишком быстро не успев показать motd окно.

P.S. Спасибо Даниилу, что помучился со мной в выходной день :))

Код
Код:
#include <amxmodx>
#include <amxmisc>

#define PLUGIN "fb_forwards"
#define VERSION "0.2"
#define AUTHOR "kanagava + Spieler"


forward fbans_player_banned_pre(id, userid)
forward amxbans_player_banned(id, bid)
forward fbans_player_banned_post(id, userid, bid)


public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
}

public fbans_player_banned_pre(id, userid)
{
server_cmd("amx_screen #%d 3", userid)
}

public amxbans_player_banned(id, bid)
{
static url[128]
formatex(url, 127, "http://site.ru/bans/motd.php?sid=_%d&adm=0&lang=ru", bid)
show_motd(id, url, "You are banned")
}

public fbans_player_banned_post(id, userid, bid)
{
// тут ничего не делаем вроде как :)
}


Отредактировал: Spieler, - 17.11.2013, 14:04
Прикрепленные файлы:
Прикрепленный файл  fb_forwards.sma ( 709 байт ) Кол-во скачиваний: 517
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 12 раз
   + Цитировать сообщение
Статус пользователя San4aus
сообщение 20.11.2013, 22:19
Сообщение #327
Стаж: 15 лет

Сообщений: 383
Благодарностей: 237
Полезность: 612

Поставил форвард на скрин, но при бане скрин не делается ни в какую(

Пробывал стандартный скриннер от Амхбанс, поменял в форварде просто с amx_screen на amx_ssban, исходник этого плагина ниже:

Скрытый текст
Код:
#include < amxmodx >
#include < amxmisc >
#include < fakemeta >
#include < colorchat >

#define PLUGIN "AMXBans: Screens"
#define VERSION "0.4"
#define AUTHOR "GmStaff"

new victim
new CvarMaxss, CvarInterval, CvarTimestamptype, CvarHUDText;
new CvarBanTime, CvarBanReason;

new CountMenu
new CvarCountScreens
new g_max_players
new g_user_ids[33]
new g_player[33]

public plugin_init ( ) {
register_plugin ( PLUGIN, VERSION, AUTHOR );

register_clcmd ( "amx_ssban", "cmdScreen", ADMIN_BAN, "<authid, nick or #userid> <count of screens>" );
register_clcmd ( "amx_ssbanmenu", "cmdScreenMenu", ADMIN_BAN, " - display screens menu" );

CvarMaxss = register_cvar ( "amx_maxscreens", "10" );
CvarInterval = register_cvar ( "amx_interval", "1.0" );
CvarTimestamptype = register_cvar ( "amx_stamptype", "3" );
CvarHUDText = register_cvar ( "amx_hudtext", "Cheese! :)" );
CvarCountScreens = register_cvar ( "amx_screenscount", "1 2 3 4 5 6 7 8 9");

CvarBanTime = register_cvar ( "amx_ssbantime", "0" );
CvarBanReason = register_cvar ( "amx_ssbanreason", "Screens, go gm-community.net" );

register_cvar ( "amxbans_ssversion", VERSION, FCVAR_SERVER | FCVAR_SPONLY );
g_max_players = get_maxplayers();

new configsDir [ 64 ];
get_configsdir ( configsDir, 63 );

server_cmd ( "exec %s/amxbans-ssban.cfg", configsDir );

}

public plugin_cfg ( ) {
new line[ 128 ], token[ 10 ], szKey[ 16 ];
get_pcvar_string ( CvarCountScreens, line, 127 );

CountMenu = menu_create ( "\rCount of screens\w", "CountScreensMenu" );
while ( contain ( line, " " ) != -1 ) {
strbreak ( line, token, 9, line, 127 );
format( szKey, charsmax ( szKey ), "Make %s screen(s)", token )
menu_additem ( CountMenu, szKey, token );
}
}

public cmdScreenMenu ( id, level, cid ) {
if ( !cmd_access ( id, level, cid, 1 ) )
return PLUGIN_HANDLED;

new menu = menu_create ( "\rChoose player", "PlayersMenu" );

new i, name[ 32 ], tempid[ 10 ];

for ( i = 1; i <= g_max_players; i++ ) {
if ( is_user_connected ( i ) ) {
get_user_name ( i, name, 31 );
num_to_str ( i, tempid, 9 );
g_user_ids[ i ] = get_user_userid ( i );
menu_additem ( menu, name, tempid, 0 );
}
}

menu_display ( id, menu, 0 );
return PLUGIN_HANDLED;
}

public PlayersMenu ( id, menu, item ) {
if ( item == MENU_EXIT ) {
return PLUGIN_HANDLED;
}

new data[ 6 ], iName[ 64 ];
new access, callback;
menu_item_getinfo ( menu, item, access, data, 5, iName, 63, callback );

g_player[ id ] = str_to_num ( data );
menu_display ( id, CountMenu, 0 );

return PLUGIN_HANDLED;
}

public CountScreensMenu ( id, menu, item ) {
if ( item == MENU_EXIT ) {
return PLUGIN_HANDLED;
}

new data[ 6 ], iName[ 64 ];
new access, callback;
new player = g_player[id];

menu_item_getinfo ( menu, item, access, data,5, iName, 63, callback );

if ( g_user_ids[ player ] == get_user_userid ( player ) ) {
client_cmd ( id, "amx_ssban #%d %s", g_user_ids[ player ], data );
}

return PLUGIN_HANDLED;
}

public cmdScreen ( id, level, cid ) {
if ( !cmd_access ( id, level, cid, 3 ) ) {
return PLUGIN_HANDLED;
}

new arg1[ 24 ], arg2[ 4 ];

read_argv ( 1, arg1, 23 );
read_argv ( 2, arg2, 3 );

new screens = str_to_num ( arg2 );
victim = cmd_target ( id, arg1, 1 );

if ( screens > get_pcvar_num ( CvarMaxss ) ) {
console_print ( id, "Gm# You cannot take that many screenshots!" );

return PLUGIN_HANDLED;
}

if ( !victim ) {
return PLUGIN_HANDLED;
}

new Float: interval = get_pcvar_float ( CvarInterval );
new array[ 2 ];

array[ 0 ] = id;
array[ 1 ] = victim;

set_task ( interval, "takeScreen", 0, array, 2, "a", screens );
set_task ( interval * screens + 1.0, "victimBan", 0, array, 2 );

return PLUGIN_HANDLED;
}

public takeScreen ( array[ 2 ] ) {
new victim = array[ 1 ];
new id = array[ 0 ];

new timestamp[ 32 ], HUDText[ 32 ], name[ 32 ], adminname[ 32 ];
get_time ( "%m/%d/%Y - %H:%M:%S", timestamp, 31 );
get_user_name ( victim, name, 31 );
get_user_name ( id, adminname, 31 );
get_pcvar_string ( CvarHUDText, HUDText, 31 );

switch( get_pcvar_num ( CvarTimestamptype ) ) {
case 0: {
ColorChat( id, RED, "Gm#^x01 Screenshot taken on player ^x03%s^x01 by admin ^x04%s^x01", name, adminname );
client_cmd ( victim, "snapshot" );
}

case 1: {
ColorChat( id, RED, "Gm#^x01 Screenshot taken on player ^x03%s^x01 by admin ^x04%s^x01 (Date: %s)", name, adminname, timestamp );
client_cmd(victim, "snapshot");
}

case 2: {
set_hudmessage( 225, 225, 225, 0.02, 0.90, 0, 1.0, 2.0 );
show_hudmessage ( victim, "%s", HUDText );
client_cmd ( victim, "snapshot" );
}

case 3: {
set_hudmessage( 225, 225, 225, 0.02, 0.90, 0, 1.0, 2.0 );
show_hudmessage ( victim, "%s", HUDText );
ColorChat ( id, RED, "Gm#^x01 Screenshot taken on player ^x03%s^x01 by admin ^x04%s^x01 (Date: %s)", name, adminname, timestamp );
client_cmd ( victim, "snapshot" );
}
}

return PLUGIN_CONTINUE;
}

public victimBan ( array[ 2 ] ) {
new Reason[ 50 ];

new victimId = get_user_userid ( array[ 1 ] );
get_pcvar_string ( CvarBanReason, Reason, 31 );

client_cmd ( array[ 0 ], "amx_ban %i #%i ^"%s^"", get_pcvar_num ( CvarBanTime ), victimId, Reason);
}




Попробывал GM Screens. исходник ниже:

Скрытый текст

Код:
/* 
Plugin: gmScreens
Version: 2.1
Original author: uTg | bigpapajiggs
© [gm-project.net] #Staff.

*/

// Plugin
#define PLUGIN "gmScreens"
#define VERSION "2.1"
#define AUTHOR "[gm-project.net] #Staff"

#include <amxmodx>
#include <amxmisc>
#include <colorchat>

new player

//PCVAR
new maxss, ssinterval, timestamptype

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)

register_concmd("amx_screen", "concmd_screen", ADMIN_BAN, "<authid, nick or #userid> <number of screens>")

maxss = register_cvar("amx_maxscreens", "10")
ssinterval = register_cvar("amx_ssinterval", "1.0")
timestamptype = register_cvar("amx_timestamptype", "3")

register_cvar("gm_screens", VERSION, FCVAR_SERVER | FCVAR_SPONLY)
}

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, "[gmScreen] 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], 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)
{
ColorChat(id, RED, "[gmScreens]^x01 Screenshot taken on player ^x03%s^x01 by admin ^x04%s^x01", name, adminname)

//Take the screenshot
client_cmd(player, "snapshot")
}
//Client Print only
else if(get_pcvar_num(timestamptype) == 1)
{
//client_print Timestamp Message
ColorChat(id, RED, "[gmScreens]^x01 Screenshot taken on player ^x03%s^x01 by admin ^x04%s^x01 (Date: %s)", 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(255, 255, 0, 0.93, 0.0, 0, 6.0, 12.0)
show_hudmessage(player, "gm")

//Take the screenshot
client_cmd(player, "snapshot")
}
//Both
else if(get_pcvar_num(timestamptype) == 3)
{
//HUD Timestamp Message
set_hudmessage(255, 255, 0, 0.93, 0.0, 0, 6.0, 12.0)
show_hudmessage(player, "gm")

//client_print Timestamp Message
ColorChat(id, RED, "[gmScreens]^x01 Screenshot taken on player ^x03%s^x01 by admin ^x04%s^x01 (Date: %s)", name, adminname, timestamp)

//Take the screenshot
client_cmd(player, "snapshot")
}
return PLUGIN_CONTINUE
}


Тоже не делается автоматом при бане, мб я что-то делаю не так?

P.S. Форвард использую тот что в самом 1-ом посту и который выше, с motd окном.

Отредактировал: San4aus, - 20.11.2013, 22:24
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ex3m777
сообщение 20.11.2013, 23:07
Сообщение #328


Стаж: 13 лет
Город: Москва

Сообщений: 2037
Благодарностей: 1135
Полезность: 968

Меценат Меценат

Цитата(San4aus @ 21.11.2013, 0:19) *
Поставил форвард на скрин, но при бане скрин не делается ни в какую(

Пробывал стандартный скриннер от Амхбанс, поменял в форварде просто с amx_screen на amx_ssban, исходник этого плагина ниже:

Скрытый текст
Код:
#include < amxmodx >
#include < amxmisc >
#include < fakemeta >
#include < colorchat >

#define PLUGIN "AMXBans: Screens"
#define VERSION "0.4"
#define AUTHOR "GmStaff"

new victim
new CvarMaxss, CvarInterval, CvarTimestamptype, CvarHUDText;
new CvarBanTime, CvarBanReason;

new CountMenu
new CvarCountScreens
new g_max_players
new g_user_ids[33]
new g_player[33]

public plugin_init ( ) {
register_plugin ( PLUGIN, VERSION, AUTHOR );

register_clcmd ( "amx_ssban", "cmdScreen", ADMIN_BAN, "<authid, nick or #userid> <count of screens>" );
register_clcmd ( "amx_ssbanmenu", "cmdScreenMenu", ADMIN_BAN, " - display screens menu" );

CvarMaxss = register_cvar ( "amx_maxscreens", "10" );
CvarInterval = register_cvar ( "amx_interval", "1.0" );
CvarTimestamptype = register_cvar ( "amx_stamptype", "3" );
CvarHUDText = register_cvar ( "amx_hudtext", "Cheese! :)" );
CvarCountScreens = register_cvar ( "amx_screenscount", "1 2 3 4 5 6 7 8 9");

CvarBanTime = register_cvar ( "amx_ssbantime", "0" );
CvarBanReason = register_cvar ( "amx_ssbanreason", "Screens, go gm-community.net" );

register_cvar ( "amxbans_ssversion", VERSION, FCVAR_SERVER | FCVAR_SPONLY );
g_max_players = get_maxplayers();

new configsDir [ 64 ];
get_configsdir ( configsDir, 63 );

server_cmd ( "exec %s/amxbans-ssban.cfg", configsDir );

}

public plugin_cfg ( ) {
new line[ 128 ], token[ 10 ], szKey[ 16 ];
get_pcvar_string ( CvarCountScreens, line, 127 );

CountMenu = menu_create ( "\rCount of screens\w", "CountScreensMenu" );
while ( contain ( line, " " ) != -1 ) {
strbreak ( line, token, 9, line, 127 );
format( szKey, charsmax ( szKey ), "Make %s screen(s)", token )
menu_additem ( CountMenu, szKey, token );
}
}

public cmdScreenMenu ( id, level, cid ) {
if ( !cmd_access ( id, level, cid, 1 ) )
return PLUGIN_HANDLED;

new menu = menu_create ( "\rChoose player", "PlayersMenu" );

new i, name[ 32 ], tempid[ 10 ];

for ( i = 1; i <= g_max_players; i++ ) {
if ( is_user_connected ( i ) ) {
get_user_name ( i, name, 31 );
num_to_str ( i, tempid, 9 );
g_user_ids[ i ] = get_user_userid ( i );
menu_additem ( menu, name, tempid, 0 );
}
}

menu_display ( id, menu, 0 );
return PLUGIN_HANDLED;
}

public PlayersMenu ( id, menu, item ) {
if ( item == MENU_EXIT ) {
return PLUGIN_HANDLED;
}

new data[ 6 ], iName[ 64 ];
new access, callback;
menu_item_getinfo ( menu, item, access, data, 5, iName, 63, callback );

g_player[ id ] = str_to_num ( data );
menu_display ( id, CountMenu, 0 );

return PLUGIN_HANDLED;
}

public CountScreensMenu ( id, menu, item ) {
if ( item == MENU_EXIT ) {
return PLUGIN_HANDLED;
}

new data[ 6 ], iName[ 64 ];
new access, callback;
new player = g_player[id];

menu_item_getinfo ( menu, item, access, data,5, iName, 63, callback );

if ( g_user_ids[ player ] == get_user_userid ( player ) ) {
client_cmd ( id, "amx_ssban #%d %s", g_user_ids[ player ], data );
}

return PLUGIN_HANDLED;
}

public cmdScreen ( id, level, cid ) {
if ( !cmd_access ( id, level, cid, 3 ) ) {
return PLUGIN_HANDLED;
}

new arg1[ 24 ], arg2[ 4 ];

read_argv ( 1, arg1, 23 );
read_argv ( 2, arg2, 3 );

new screens = str_to_num ( arg2 );
victim = cmd_target ( id, arg1, 1 );

if ( screens > get_pcvar_num ( CvarMaxss ) ) {
console_print ( id, "Gm# You cannot take that many screenshots!" );

return PLUGIN_HANDLED;
}

if ( !victim ) {
return PLUGIN_HANDLED;
}

new Float: interval = get_pcvar_float ( CvarInterval );
new array[ 2 ];

array[ 0 ] = id;
array[ 1 ] = victim;

set_task ( interval, "takeScreen", 0, array, 2, "a", screens );
set_task ( interval * screens + 1.0, "victimBan", 0, array, 2 );

return PLUGIN_HANDLED;
}

public takeScreen ( array[ 2 ] ) {
new victim = array[ 1 ];
new id = array[ 0 ];

new timestamp[ 32 ], HUDText[ 32 ], name[ 32 ], adminname[ 32 ];
get_time ( "%m/%d/%Y - %H:%M:%S", timestamp, 31 );
get_user_name ( victim, name, 31 );
get_user_name ( id, adminname, 31 );
get_pcvar_string ( CvarHUDText, HUDText, 31 );

switch( get_pcvar_num ( CvarTimestamptype ) ) {
case 0: {
ColorChat( id, RED, "Gm#^x01 Screenshot taken on player ^x03%s^x01 by admin ^x04%s^x01", name, adminname );
client_cmd ( victim, "snapshot" );
}

case 1: {
ColorChat( id, RED, "Gm#^x01 Screenshot taken on player ^x03%s^x01 by admin ^x04%s^x01 (Date: %s)", name, adminname, timestamp );
client_cmd(victim, "snapshot");
}

case 2: {
set_hudmessage( 225, 225, 225, 0.02, 0.90, 0, 1.0, 2.0 );
show_hudmessage ( victim, "%s", HUDText );
client_cmd ( victim, "snapshot" );
}

case 3: {
set_hudmessage( 225, 225, 225, 0.02, 0.90, 0, 1.0, 2.0 );
show_hudmessage ( victim, "%s", HUDText );
ColorChat ( id, RED, "Gm#^x01 Screenshot taken on player ^x03%s^x01 by admin ^x04%s^x01 (Date: %s)", name, adminname, timestamp );
client_cmd ( victim, "snapshot" );
}
}

return PLUGIN_CONTINUE;
}

public victimBan ( array[ 2 ] ) {
new Reason[ 50 ];

new victimId = get_user_userid ( array[ 1 ] );
get_pcvar_string ( CvarBanReason, Reason, 31 );

client_cmd ( array[ 0 ], "amx_ban %i #%i ^"%s^"", get_pcvar_num ( CvarBanTime ), victimId, Reason);
}




Попробывал GM Screens. исходник ниже:

Скрытый текст

Код:
/* 
Plugin: gmScreens
Version: 2.1
Original author: uTg | bigpapajiggs
© [gm-project.net] #Staff.

*/

// Plugin
#define PLUGIN "gmScreens"
#define VERSION "2.1"
#define AUTHOR "[gm-project.net] #Staff"

#include <amxmodx>
#include <amxmisc>
#include <colorchat>

new player

//PCVAR
new maxss, ssinterval, timestamptype

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)

register_concmd("amx_screen", "concmd_screen", ADMIN_BAN, "<authid, nick or #userid> <number of screens>")

maxss = register_cvar("amx_maxscreens", "10")
ssinterval = register_cvar("amx_ssinterval", "1.0")
timestamptype = register_cvar("amx_timestamptype", "3")

register_cvar("gm_screens", VERSION, FCVAR_SERVER | FCVAR_SPONLY)
}

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, "[gmScreen] 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], 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)
{
ColorChat(id, RED, "[gmScreens]^x01 Screenshot taken on player ^x03%s^x01 by admin ^x04%s^x01", name, adminname)

//Take the screenshot
client_cmd(player, "snapshot")
}
//Client Print only
else if(get_pcvar_num(timestamptype) == 1)
{
//client_print Timestamp Message
ColorChat(id, RED, "[gmScreens]^x01 Screenshot taken on player ^x03%s^x01 by admin ^x04%s^x01 (Date: %s)", 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(255, 255, 0, 0.93, 0.0, 0, 6.0, 12.0)
show_hudmessage(player, "gm")

//Take the screenshot
client_cmd(player, "snapshot")
}
//Both
else if(get_pcvar_num(timestamptype) == 3)
{
//HUD Timestamp Message
set_hudmessage(255, 255, 0, 0.93, 0.0, 0, 6.0, 12.0)
show_hudmessage(player, "gm")

//client_print Timestamp Message
ColorChat(id, RED, "[gmScreens]^x01 Screenshot taken on player ^x03%s^x01 by admin ^x04%s^x01 (Date: %s)", name, adminname, timestamp)

//Take the screenshot
client_cmd(player, "snapshot")
}
return PLUGIN_CONTINUE
}


Тоже не делается автоматом при бане, мб я что-то делаю не так?

P.S. Форвард использую тот что в самом 1-ом посту и который выше, с motd окном.


Ставишь это
Скрытый текст

Код:
/* AMX Mod X script.
*
* Admin Screen 2 v1.0 by uTg | bigpapajiggs
*
* Based on Admin Screen by Rav
*
* amx_screen <authid/nick/userid> <number of screens>
*
*/

#include <amxmodx>
#include <amxmisc>

new player

//PCVAR
new maxss, ssinterval, timestamptype

public plugin_init()
{
register_plugin("Admin Screen 2", "1.1", "uTg | bigpapajiggs")

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, "** Screenshot taken on player ^"%s^" by admin ^"%s^" **", 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, "** Screenshot taken on player ^"%s^" by admin ^"%s^" (%s) **", 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, "** TIMESTAMP - %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, "** TIMESTAMP - %s **", timestamp)
show_hudmessage(player, timestampmsg)

//client_print Timestamp Message
client_print(player, print_chat, "** Screenshot taken on player ^"%s^" by admin ^"%s^" (%s) **", name, adminname, timestamp)

//Take the screenshot
client_cmd(player, "snapshot")
}
return PLUGIN_CONTINUE
}


И это

Код:
#include <amxmodx>
#include <amxmisc>

#define PLUGIN "fb_forwards"
#define VERSION "0.1"
#define AUTHOR "kanagava"


forward fbans_player_banned_pre(id, userid) // Объявляем forward - функция которая будет вызвана дургим плагином
forward fbans_player_banned_post(id, userid, bid) // Объявляем forward - функция которая будет вызвана дургим плагином


public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
}

public fbans_player_banned_pre(id, userid)
{
server_cmd("amx_screen #%d 4", userid)
}

public fbans_player_banned_post(id, userid, bid)
{
// тут ничего не делаем вроде как :)
}


И все будет работать, ну точнее у меня все работает


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 21.11.2013, 7:27
Сообщение #329


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

amx_ssban там clcmd, она вроде как не сработает при выполнении сервером.
В Admin Screen 2 по идее должно работать. Логов добавьте если не работает.


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя xoymiii
сообщение 22.11.2013, 8:41
Сообщение #330


Стаж: 13 лет

Сообщений: 769
Благодарностей: 244
Полезность: 567

у меня что то ошибки в логах выдаёт...
Скрытый текст
Цитата
L 11/22/2013 - 08:45:19: [AMXX] Plugin not compiled with debug option (plugin "fresh_bans.amxx")
L 11/22/2013 - 08:45:49: Start of error session.
L 11/22/2013 - 08:45:49: Info (map "de_dust2_2x2") (file "addons/amxmodx/logs/error_20131122.log")
L 11/22/2013 - 08:45:49: [AMXX] Plugin not compiled with debug option (plugin "fresh_bans.amxx")
L 11/22/2013 - 09:53:21: Start of error session.


Отредактировал: xoymiii, - 22.11.2013, 8:42
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 22.11.2013, 9:08
Сообщение #331


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

дебаг отключите


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя xoymiii
сообщение 22.11.2013, 9:10
Сообщение #332


Стаж: 13 лет

Сообщений: 769
Благодарностей: 244
Полезность: 567

Цитата(mazdan @ 22.11.2013, 11:08) *
дебаг отключите

просто до этого были ошибки и я включил дебаг чтоб посмотреть...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 22.11.2013, 9:16
Сообщение #333


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

xoymiii, были ошибки, но я вам их не скину?


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя xoymiii
сообщение 22.11.2013, 9:25
Сообщение #334


Стаж: 13 лет

Сообщений: 769
Благодарностей: 244
Полезность: 567

Цитата(mazdan @ 22.11.2013, 11:16) *
xoymiii, были ошибки, но я вам их не скину?

я удалил логи. будет еще скину
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 22.11.2013, 19:53
Сообщение #335


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

Просьба, соберите кто-нибудь квары все в одно сообщение, и желательно обновлять его, а я в шапке ссылку на него дам.

Спасибо.


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя gudaus
сообщение 22.11.2013, 20:29
Сообщение #336


Стаж: 14 лет

Сообщений: 1571
Благодарностей: 1211
Полезность: 741

Cvars
Цитата
fb_kick_delay "1" // Задержка перед киком игрока в секундах.
fb_server_ip "IP" // IP Вашего сервера
fb_server_port "port" // Порт Вашего сервера
fb_server_name "name" // Имя админа при банах сервером (например, при voteban'е)

fb_sql_host "host" // Имя/адрес хоста БД
fb_sql_user "user" // Ваш логин к БД
fb_sql_pass "pass" // Ваш пароль к БД
fb_sql_db "bd_name" // Название используемой БД (при использовании Amx Bans - указать его БД)
fb_sql_table "amx_bans" //Название таблицы БД (при использовании Amx Bans - указать его таблицу)
fb_servers_table "amx_serverinfo" // при добавлении сервера в список серверов
fb_ip_ban_time "299" // Время дополнительного бана по IP в минутах для созданных банов длительностью больше данного значения
fb_showhud "0" // Отображать худ-сообщение при бане (0 - выкл., 1 - вкл.)
fb_offline_time "20" // Время в минутах на которое системой банов запоминается игрок, для осуществления бана после его дисконекта от сервера
fb_unban_self "b" //флаги для возможности разбанивать свои баны
fb_unban_all "h" //Флаги для возможности разбана всех банов

fb_oldmap_players 32 - число оффлайн строк с игроками для переноса на следующую карту. Из минусов туда же попадают и онлайн игроки так как делают дисконнект.

fb_bantime_access "l" - флаг для лимита времени бана (если нету то лимит есть)
fb_bantime_limit "10080" - время для лимита, неделя по умолчанию
fb_debug 0 отладочные логи.
fb_use_sql 0/1/2 // использовать 0 - файл, 1 - базу данных MySql, 2 - базу данных SqLite
При использовании SqLite желательно прописать в configs/modules.ini строки sqlite и mysql. Баны будут храниться в файле \cstrike\addons\amxmodx\data\sqlite3\fresh_bans.sq3
fb_nvault_clear 60 // Удалять из файла баны старше чем fb_nvault_clear дней
fb_force_check "1" - выбор момента проверки (пораньше или попозже :)) 1 - на client_connect, 0 на putinserver
fb_cachetime 5 //Время жизни банкеша в минутах. То есть 5 минут бан будет в кэше, что позволит избежать лишних запросов к БД при перезаходе после бана.
fb_cachetime_kick 0 аналогично fb_cachetime, только для кика.
fb_cacheonly 1
Код
0 - всё по старому
1 - если время бана меньше чем fb_cachetime то бан не заносится в БД
2 - если время бана меньше чем fb_cachetime то бан не заносится в БД, если смена карты планируется ранее чем через fb_cachetime то бан заносится в БД



fb_oldkickinfo 1 //Выводить старую ифнормацию о кике
fb_logtype "2" //Тип логов (отдельная папка или стандартный лог папку FB лучше создать руками в папке amxmodx/logs иначе на хостингах могут случиться сложности)
fb_logtype, начиная с версии 0.8b, может принимать значение 2, при значении 2 идет запись в файл \cstrike\addons\amxmodx\logs\FB\*.log, но функция работает гораздо быстрее чем стандартная.
тест на 1000 записях в лог прошел за 0 сек. против 5-13 сек при значении квара = 1
fb_loglevel "2" //уровень ведения логов от 0 до 10.
Код
fb_loglevel 0 - критичные ошибки + баны\разбаны
fb_loglevel 1 - всякий шлак + ошибки неважнецкие
fb_loglevel 2 - кики за баны
fb_loglevel 3 - кики кэшбан
fb_loglevel 5 - сервисные логи
fb_loglevel 10 - дебаг логи

fb_logdays "14" // Время хранения лог файлов, старше чем этот квар в днях будут удаляться (только для fb_logtype 1)
fb_use_russian 1 //Если вы тру админ, то не используете русские причины и название сервера, выставьте переменную в 0 (по умолчанию 1), это позволит убрать два лишних mysql запроса
fb_sql_clear 180 - очистка истекших банов старее чем fb_sql_clear дней, рекомендуемо для sqlite т.к. они не имеют веб морды где это можно сделать нажав на кнопку =) Да и для mysql неплохо
fb_subnet_clients 0 - бан клиентов с определёнными эмуляторами с подсетей.
Бан подсети имеет вид бана с ником SUBNETBAN в STEAM_ID указывается конечный айпи адрес, в IP начальный айпи адрес. Все клиенты из этого диапазона и попадающие под действие квара будут забанены

как правильно выставить значение квара

dproto client [1]: "Dproto" - 2
dproto client [2]: "Native Steam" - 4
dproto client [3]: "SteamEmu" - 8
dproto client [4]: "RevEmu" - 16
dproto client [5]: "Old RevEmu" - 32
dproto client [6]: "HLTV" - 64
dproto client [7]: "SteamClient2009" - 128
dproto client [8]: "AVSMP" - 256
dproto client [9]: "SXEI" - 512
dproto client [10]: "RevEmu2013" - 1024

Чтобы заблокировать RevEmu и Old RevEmu введите 32 + 16 = 48 => fb_subnet_clients 48
Т.е. вы должны посчитать сумму тех значений, которые хотите банить таким баном
Для работы квара в amxbans (стандартном) поправить /include/functions.inc.php
строка 54 код
Код
if(!preg_match("/^STEAM_0:(0|1):[0-9]{1,10}$/",$value)) { $msg="_STEAMIDINVALID"; return false; }

заменить на код
Код
if(!preg_match("/^STEAM_0:(0|1):[0-9]{1,10}$/",$value) and !preg_match("/^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$/",$value)) { $msg="_STEAMIDINVALID"; return false; }


fb_prefix_clients 0 клиенты для проверки со старым префиксом. Нужно, если вы изменили (или хотите изменить) настройку префиксов в связи со всяким софтом подмены стимайди, но не хотите потерять старые баны Настраивать так же, как и квар fb_subnet_clients.
fb_subnet_recheck 10 время в секундах после бана подсети для выполнения перепроверки всех игроков (в зависимости от шустрости вашей БД)
fb_subnet_except_ucp 0 - для исключения UCP поставить на 1 - баны подсети проверяться не будут для игроков с UCP

fb_chatinfo пример "Player [%1%%player%%3%] banned for %lenght% for %reason% test01"
шаблон стандарта [%4%%алиас%%1%]
Понимает алиасы:
Код
%admin%
%reason%
%lenght%
%player_steam%
%player_ip%
%player%

цвета
Код
%1%
%2%
%3%
%4%

fb_hudinfo пример "Player %player% banned %n%for %lenght% for %reason% test01"
Понимает:
Код
%admin%
%reason%
%lenght%
%player_steam%
%player_ip%
%player%

%n% - перенос строки
fb_hudcolor "250 250 0" формат R G B
fb_hudpos "0.05 0.3" x y

"команды чата"

Цитата
/fb
Примеры использования:
/fb pro100 1440 MAT (предложит меню для подтверждения бана игрока pro100 на "Бан на 1 день" с причиной "Мат / оскорбления",
если pro100 это часть ника игрока и с этими символами еще есть игроки онлайн - выдаст меню с именами игроков при совпадении ников, далее необходимо выбрать требуемого игрока и подтвердить бан)
Вместо времени в минутах можно указать нативное время, например, 1y2m - выдаст бан на 1 год и 2 месяца.

messagemode fb_sayban
Код
комада работает так же как и команда в чат say /fb. Сделана для того чтобы можно было забиндить на кнопочку :) bind F7 "messagemode fb_sayban" после этого вводим команду бана, например: PL 1y wh
По такой команде система понимает что нужно забанить игрока megaPLayer на 1 год за Wallhack
При вводе pl плагин соответственно предложит выбрать время и причину для бана. Если на сервере несколько игроков с pl в нике, то соответственно надо будет выбрать конкретного из них.

Консольные команды
Цитата
fb_menu или amx_banmenu Бан меню

fb_ban <time in mins> <#userid> <reason> бан
amx_ban <time in mins> <steamID or nickname or #authid or IP> <reason> тоже бан
Важно отметить что команда fb_ban работает только с userid и желательно использовать её, особенно в античитах

fb_unban [ часть ника | стимайди | айпи ] Разбан игроков
amx_unban - аналог fb_unban.

fb_bb - просмотр истекших банов игроков

fb_offban или amx_bandisconnectedmenu меню offline банов(тех, кто отсоединился).
Фильтрация:
fb_offban pla - покажет только тех у кого в нике было pla или pLA

fb_flushcache - очистить кэш
При разбане игрока серверной командой по ip требуется так же разбан по steamid и наоборот, либо выполнение fb_flushcache
fb_showchat 1 - показ сообщения при бане в чате
fb_add_replace_admin <reason> <admin name>- при бане с причиной <reason> ник админа будет выставлен как <admin_name>
Код
примеры:
fb_add_replace_admin "test test" "replace working"
fb_add_replace_admin voteban VoteBan
Вписать в любой конфиг любое число строк (например в reason.cfg)


Бан подсети описан здесь
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 8 раз
   + Цитировать сообщение
Статус пользователя TarikYuzkiv
сообщение 22.11.2013, 20:50
Сообщение #337
Стаж: 13 лет

Сообщений: 509
Благодарностей: 196
Полезность: 635

Прошу автора добавить возможность сделать фиксированное время бана для причин + возможность выбора своей причины. Пример:
"Своя причина" "300"
"WH" "1440"
"AIM" "1440"
"SH" "2880"

Спасибо.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 22.11.2013, 21:32
Сообщение #338


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

TarikYuzkiv, для своей причины - не уверен, для остального непонятна логика немного.
Если Время предустановлено, то его можно менять? или как. Выбрал причину - выбрало время автоматом? просто логики там много заложено, та же работа с чатом. Как бы не поломать всё это


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя TarikYuzkiv
сообщение 22.11.2013, 21:44
Сообщение #339
Стаж: 13 лет

Сообщений: 509
Благодарностей: 196
Полезность: 635

Цитата(mazdan @ 22.11.2013, 22:32) *
TarikYuzkiv, для своей причины - не уверен, для остального непонятна логика немного.
Если Время предустановлено, то его можно менять? или как. Выбрал причину - выбрало время автоматом? просто логики там много заложено, та же работа с чатом. Как бы не поломать всё это


Если время предустановлено - нет, нельзя.
Выбрал причину - поставило время автоматически. Если выбираешь свою причину - тоже предустановленное время. Есть такая штука в amxbans'e, не думаю, что я один таким пользуюсь.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя perfectblood0
сообщение 22.11.2013, 21:47
Сообщение #340
Стаж: 17 лет

Сообщений: 5065
Благодарностей: 2685
Полезность: 488

Легче дать админам правила и постановку времени.
Допустим за оскорбления максимум сутки и все.
Чем такое пилить=)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
460 страниц V  « 16 17 18 ... 458 459 »
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 7 гостей читают эту тему: