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

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

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

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

> Правила раздела

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

Все вновь созданные темы, с названием типа "Помогите найти", "А что это за плагин", "Ищу плагин", "Нужен плагин", "Подскажите пожалуйста название плагина" - будут удалены.
При создании темы постарайтесь максимально понятно сформулировать её заголовок так, чтобы он соответствовал функциям плагина который Вы ищите. В том случае, если Вам не удается сформулировать мысль и правильно расписать всё в теме, воспользуйтесь графическим редактором, к примеру Paint, что бы примерно изобразить функции нужного Вам плагина.

amx_gag

Статус пользователя adin
сообщение 11.2.2015, 15:50
Сообщение #1
Стаж: 14 лет

Сообщений: 87
Благодарностей: 12
Полезность: 107

В тырнетах гуляет куча гагов для админов, но они то работают, то не работают, то после рестарта слетают.

Может кто подсобить, оторвать от души рабочий gag? Заранее благодарен.

Отредактировал: Bloo, - 11.2.2015, 15:52
Причина: Выдано устное предупреждение!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
BariN
сообщение 11.2.2015, 16:34
Сообщение #2
Стаж: 12 лет

Сообщений: 761
Благодарностей: 324
Полезность: 0

adin,
Код:
//
// модификаиця от serfreeman1337
// * быстрая смена времени гага
// * использование нативных функций AMXX 1.8.3
// + запоминание последней страницы меню
// http://gf.hldm.org/
// 21.07.2014
//

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#if AMXX_VERSION_NUM < 183
#include <colorchat>

#define print_team_default DontChange
#define print_team_grey Grey
#define print_team_red Red
#define print_team_blue Blue
#endif

#define PLUGIN "Admin Gag"
#define VERSION "1.0sf1"
#define AUTHOR "AndrewZ"

#define GAG_IMMUNITY ADMIN_IMMUNITY
#define GAG_ACCESS ADMIN_KICK
#define MAX_PLAYERS 32

#define TID 88897

const MAX_SAVED = 64

new g_user_menu_page[ MAX_PLAYERS + 1 ],
g_user_menu_players[ MAX_PLAYERS + 1 ][ MAX_PLAYERS ],
g_user_time[ MAX_PLAYERS + 1 ]

new g_user_gagged[ MAX_PLAYERS + 1 ]

new g_times[] = { 5, 10, 20, 30 }

new db_steamid[MAX_SAVED][32]
new db_gag[MAX_SAVED]
new db_slot_i

new g_SorryWait[33]

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

register_forward( FM_Voice_SetClientListening, "fwd_voice_setclientlistening" )

register_clcmd( "amx_gagmenu", "show_gag_main_menu" )

register_clcmd( "say", "hook_say" )
register_clcmd( "say_team", "hook_say" )

register_menu( "gag_players_menu", 1023, "handler_gag_players_menu" )
}

public client_putinserver( id )
{
g_SorryWait[id] = 0
load_gag(id)
}

public client_disconnect( id )
{
save_gag(id)
_remove_user_gag( id )
}

_remove_user_gag( id ){
g_user_time[ id ] = 0
g_user_gagged[ id ] = 0

if( task_exists( TID + id ) )
remove_task( TID + id )
}

public fwd_voice_setclientlistening( receiver, sender, listen )
{
if( receiver != sender )
{
if( g_user_gagged[ sender ] )
{
engfunc( EngFunc_SetClientListening, receiver, sender, 0 )
return FMRES_SUPERCEDE
}
}

return FMRES_IGNORED
}

public hook_say( id ){
if( g_user_gagged[ id ] ) {
new said[ 8 ]
read_args( said, 7 )

if( contain( said, "/sorry" ) != -1 && (!g_SorryWait[id] || get_systime() - g_SorryWait[id] > 30))
{
for( new i = 1; i <= MAX_PLAYERS; i ++ )
{
if( is_user_connected( i ) && get_user_flags( i ) & GAG_ACCESS )
{
new name[ 32 ]; get_user_name( id, name, 31 )
client_print_color( i, print_team_blue, "^3[GAG]^1 ^4%s^1 извиняется и просит снять с него молчанку.", name )
}
}

g_SorryWait[id] = get_systime()
client_print_color( id, print_team_blue, "^3[GAG]^1 Вы попросили прощение у администраторов." )
return PLUGIN_HANDLED
}else{
client_print_color( id, print_team_red, "^3[GAG]^1 Вам запрещено писать в чат, можете попросить прощение командой /sorry." )
return PLUGIN_HANDLED
}
}

return PLUGIN_CONTINUE
}

public show_gag_main_menu( id, page ){
if( !( get_user_flags( id ) & GAG_ACCESS ) )
return PLUGIN_HANDLED

if( page < 0 )
return PLUGIN_HANDLED

new players[ 32 ], num
get_players( players, num, "h" )

new i = min( page * 7, num )
new start = i - ( i % 7 )
new end = min( start + 7, num )
page = start / 7

g_user_menu_page[ id ] = page
g_user_menu_players[ id ] = players

new menu[ 512 ]
new len = formatex( menu, 511, "\yЗаткнуть игрока\R%d/%d^n^n", page + 1, ( ( num - 1 ) / 7 ) + 1 )
new keys = MENU_KEY_0 + MENU_KEY_8

new item

for( i = start; i < end; i ++ )
{
new name[ 32 ]
new g_id = players[ i ]

get_user_name( g_id, name, 31 )

if( id == g_id )
len += formatex( menu[ len ], 511 - len, "\d%d. \y%s^n", ++ item, name )

else
{
if( get_user_flags( g_id ) & GAG_IMMUNITY )
len += formatex( menu[ len ], 511 - len, "\d%d. %s \r*^n", ++ item, name )

else
{
keys |= ( 1 << item )

if( g_user_gagged[ g_id ] )
len += formatex( menu[ len ], 511 - len, "\w%d. \w%s \r[Р—РђРўРљРќРЈРў]^n", ++ item, name )
else
len += formatex( menu[ len ], 511 - len, "\w%d. \w%s^n", ++ item, name )
}
}
}

// dont over index arrays? net, ne sliwal
len += formatex( menu[ len ], 511 - len, "^n\w8. Время: \y%d минут^n",
g_times[
g_user_time[ id ]
]
)

if( end < num )
{
keys |= MENU_KEY_9
formatex( menu[ len ], 511 - len, "^n\w9. Далее^n0. %s", page ? "Назад" : "Выход" )
}

else formatex( menu[ len ], 511 - len, "^n\w0. %s", page ? "Назад" : "Выход" )

show_menu( id, keys, menu, -1, "gag_players_menu" )

return PLUGIN_HANDLED
}

public handler_gag_players_menu( id, key )
{
switch( key )
{
case 0..6:
{
new g_id = g_user_menu_players[ id ][ g_user_menu_page[ id ] * 7 + key ]

if( is_user_connected( g_id ) )
{
if( !( get_user_flags( g_id ) & GAG_IMMUNITY ) )
{
new name[ 32 ]; get_user_name( id, name, 31 )
new g_name[ 32 ]; get_user_name( g_id, g_name, 31 )

if( !g_user_gagged[ g_id ] )
{
new time = g_times[
g_user_time[ id ]
]

g_user_gagged[ g_id ] = 1
client_print_color( 0, print_team_red, "^3[GAG]^1 ^4%s^1 заткнул ^4%s^1 на ^3%d^1 минут. Попросить прощение: /sorry.", name, g_name, time )
set_task( float( time ) * 60.0, "task_ungag", g_id + TID )
}
else
{
_remove_user_gag( g_id )
client_print_color( 0, print_team_blue, "^3[GAG]^1 ^4%s^1 снял молчанку с ^4%s^1.", name, g_name )
}
}

else client_print_color( id, print_team_blue, "^3[GAG] ^1Этот игрок имеет иммунитет." )
}

else client_print_color( id, print_team_blue, "^3[GAG] ^1Этот игрок отключился от сервера." )

show_gag_main_menu( id, g_user_menu_page[ id ] )
}

case 7: {
g_user_time[id] ++

if(g_user_time[id] >= sizeof g_times)
g_user_time[id] = 0

show_gag_main_menu(id,g_user_menu_page[id])
}
case 8: show_gag_main_menu( id, ++ g_user_menu_page[ id ] )
case 9: show_gag_main_menu( id, -- g_user_menu_page[ id ] )
}
}

public task_ungag( task_id )
{
new id = task_id - TID

_remove_user_gag( id )

new name[ 32 ]; get_user_name( id, name, 31 )
client_print_color( 0, print_team_blue, "^3[GAG] ^1C игрока ^4%s^1 снята молчанка.", name )
}

save_gag(id){
new g_steamid[32]
get_user_authid(id, g_steamid, charsmax(g_steamid))
if (db_steamid[id][0] && !equal(g_steamid, db_steamid[id]))
{
if (db_slot_i >= sizeof db_steamid)
db_slot_i = get_maxplayers()+1

copy(db_steamid[db_slot_i], charsmax(db_steamid[]), db_steamid[id])
db_gag[db_slot_i] = db_gag[id]
db_slot_i++
}

copy(db_steamid[id], charsmax(db_steamid[]), g_steamid)
db_gag[id] = g_user_gagged[id]
}

load_gag(id){
new g_steamid[32]
get_user_authid(id, g_steamid, charsmax(g_steamid))

static i
for (i = 0; i < sizeof db_steamid; i++)
{
if (equal(g_steamid, db_steamid[i]))
{
g_user_gagged[id] = db_gag[i]
return;
}
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя BornToBeFree
сообщение 11.2.2015, 17:12
Сообщение #3


Стаж: 12 лет

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

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

BariN, кодировку не пробовал исправить, прежде чем скидывать?


Скидка 5% при заказе сервера
Чтобы получить 5% скидку при заказе сервера на хостинге Serva4ok.ru
Необходимо ввести это кодовое слово gKUt-FENO-ZonE-aIaa
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
aTaH177
сообщение 11.2.2015, 17:41
Сообщение #4
Стаж: 12 лет

Сообщений: 28
Благодарностей: 4
Полезность: 0

Нужен 100% рабочий плагин, обращайся в лс.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя adin
сообщение 11.2.2015, 17:46
Сообщение #5
Стаж: 14 лет

Сообщений: 87
Благодарностей: 12
Полезность: 107

Цитата(aTaH177 @ 11.2.2015, 17:41) *
Нужен 100% рабочий плагин, обращайся в лс.

Ожидаю ответ
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя l3x1s
сообщение 11.2.2015, 17:47
Сообщение #6


Стаж: 17 лет

Сообщений: 495
Благодарностей: 300
Полезность: 543

BariN, Ага, хотелось бы с норм кодировкой и он рабочий?))
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 11.2.2015, 17:48
Сообщение #7


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

aTaH177, Неугомоновский?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя valve
сообщение 11.2.2015, 17:54
Сообщение #8


Стаж: 13 лет

Сообщений: 79
Благодарностей: 50
Полезность: 359

Цитата(Bloo @ 11.2.2015, 18:48) *
aTaH177, Неугомоновский?

Тоже через раз срабатывает. Я про платный. Да и вообще частенько сайт не доступен его - плагин так же уходит в спячку.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя adin
сообщение 11.2.2015, 17:54
Сообщение #9
Стаж: 14 лет

Сообщений: 87
Благодарностей: 12
Полезность: 107

Цитата(l3x1s @ 11.2.2015, 17:47) *
BariN, Ага, хотелось бы с норм кодировкой и он рабочий?))



Рабочий, вот сейчас залил, но максмолчанка - 30 мин, и голос не блокирует :(
Прикрепленные файлы:
Прикрепленный файл  admin_gag.sma ( 7,91 килобайт ) Кол-во скачиваний: 47
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ex3m777
сообщение 11.2.2015, 18:01
Сообщение #10


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

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

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

единственный гаг который меня никогда не подводил это гаг который выдавал через Voices Management автор ConnorMcLeod

Код:
// Required admin access level
#define ADMIN_VOICE ADMIN_BAN

// Delay before a connected player see the text announce
#define ANNOUNCE_TASK_DELAY 30.0

// Comment this out if you don't want that a "no sound" player can hear admins using +adminvoice
// All other player settings are respected whatever this is commented or not.
// #define SUPER_ADMIN_PRIORITY

/* ** END OF EDITABLE ** */

/* Changelog
*
* v1.1.0 (10/23/13)
* -cleaned up code
*
* v1.0.2 (04/19/08)
* -few code corrections
* -updated player spawn detection
* -added HLTV & BOT checks
*
* v1.0.1 (03/31/08)
* -added colored chat
* -added chat command /vm that display voices settings
* -inform new players about /vm command
* -display adminlisten status when toggle_adminlisten command is used
* -added support for amx_show_activity cvar on amx_(un)mute command
*
* v1.0.0 (03/26/08)
* First release
*
*/

/*
Flags :
1 : hear dead terrorists
2 : hear alive terrorists
4 : hear dead cts
8 : hear alive cts
16 : hear specs
*/

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>

#pragma semicolon 1

#define VERSION "1.1.alpha"

#define cm(%0) ( sizeof(%0) - 1 )

#define MaskPlayerVoice(%0) ( 1<<((%0-1) & 31) )

enum _:mStates
{
DEAD_T,
ALIVE_T,
DEAD_CT,
ALIVE_CT,
SPEC
}

enum _:mStatesFlags ( <<= 1 )
{
FL_DEAD_T = 1,
FL_ALIVE_T,
FL_DEAD_CT,
FL_ALIVE_CT,
FL_SPEC
}

const MAX_PLAYERS = 32;

const m_iTeam = 114;
const TEAM_T = 1;
const TEAM_CT = 2;

new g_bHasVoicesOn[33 char];
new g_bitBannedClients[33];
#define CanPlayerHearPlayer(%0,%1) ( ~g_bitBannedClients[%0] & MaskPlayerVoice(%1) )

new g_iAdminVoice;
new g_bAdmin[33 char];
new g_bInterAdminVoice[33 char];
new g_bAdminListen[33 char];

new g_bMuted[33 char];
new g_szClientsIp[MAX_PLAYERS+1][22];
new Trie:g_tMutedPlayersIps;

new g_iMaxPlayers;
new g_pcvarVoicesRules[mStates];
new g_amx_show_activity;

public plugin_init()
{
register_plugin("Voices Management", VERSION, "ConnorMcLeod");
register_dictionary("voicesmanagement.txt");
register_dictionary("common.txt");

g_pcvarVoicesRules[DEAD_T] = register_cvar("amx_vm_dead_t", "abcde");
g_pcvarVoicesRules[ALIVE_T] = register_cvar("amx_vm_alive_t", "bd");
g_pcvarVoicesRules[DEAD_CT] = register_cvar("amx_vm_dead_ct", "abcde");
g_pcvarVoicesRules[ALIVE_CT] = register_cvar("amx_vm_alive_ct", "bd");
g_pcvarVoicesRules[SPEC] = register_cvar("amx_vm_spec", "abcde");

register_forward(FM_Voice_SetClientListening, "OnVoice_SetClientListening");

register_clcmd("VModEnable", "ClCmd_VModEnable");
register_clcmd("vban", "ClCmd_vban");

register_clcmd("+adminvoice", "AdminCommand_VoiceOn");
register_clcmd("-adminvoice", "AdminCommand_VoiceOff");

register_clcmd("+interadminvoice", "AdminCommand_InterAdminOn");
register_clcmd("-interadminvoice", "AdminCommand_InterAdminOff");

register_clcmd("+adminlisten", "AdminCommand_ListenOn");
register_clcmd("-adminlisten", "AdminCommand_ListenOff");
register_clcmd("toggle_adminlisten", "AdminCommand_ListenToggle");

register_concmd("amx_mute", "AdminCommand_Mute", ADMIN_VOICE, "<name/#userid>");
register_concmd("amx_unmute", "AdminCommand_UnMute", ADMIN_VOICE, "<name/#userid>");

// register_clcmd("say /vm", "ClCmd_SayStatus");
// register_clcmd("say_team /vm", "ClCmd_SayStatus");
}

public plugin_cfg()
{
g_iMaxPlayers = get_maxplayers();
g_tMutedPlayersIps = TrieCreate();
g_amx_show_activity = get_cvar_pointer("amx_show_activity");
if( g_amx_show_activity )
{
g_amx_show_activity = register_cvar("amx_show_activity", "2");
}
}

// public ClCmd_SayStatus(id)
// {
// new iDeads = get_pcvar_num(g_pcvarDeadsHear),
// iAlives = get_pcvar_num(g_pcvarAlivesHear);

// new szDeadsStatus[18], szAlivesStatus[19];

// switch( iAlives )
// {
// case 0:szAlivesStatus = "VM_ALIVES_TEAMATES";
// case 1:szAlivesStatus = "VM_ALIVES";
// case 2:szAlivesStatus = "VM_ALL";
// }

// switch( iDeads )
// {
// case 0:szDeadsStatus = "VM_DEADS_TEAMATES";
// case 1:szDeadsStatus = "VM_DEADS";
// case 2:szDeadsStatus = "VM_ALL";
// }

// client_print_color(id, id, "%L", id, "VM_ALIVES_STATUS", id, szAlivesStatus);
// client_print_color(id, id, "%L", id, "VM_DEADS_STATUS", id, szDeadsStatus);
// }

// public taskAnnounce(id)
// {
// if( is_user_connected(id) )
// {
// client_print_color(id, id, "%L", id, "VM_ANNOUCE");
// }
// }

public client_authorized(id)
{
g_bAdmin{ id } = bool:(get_user_flags(id) & ADMIN_VOICE);
}

public client_putinserver(id)
{
g_bAdminListen{ id } = false;
g_bInterAdminVoice{ id } = false;

if(is_user_bot(id) || is_user_hltv(id))
return;

static szIp[22];
get_user_ip(id, szIp, cm(szIp));
g_szClientsIp[id] = szIp;

if( TrieKeyExists(g_tMutedPlayersIps, szIp) )
{
g_bMuted{ id } = true;
TrieDeleteKey(g_tMutedPlayersIps, szIp);
}

// set_task(ANNOUNCE_TASK_DELAY, "taskAnnounce", id);
}

public client_disconnect(id)
{
if(g_iAdminVoice == id)
{
g_iAdminVoice = 0;
}
if(g_bMuted{ id })
{
TrieSetCell(g_tMutedPlayersIps, g_szClientsIp[id], 1);
g_bMuted{ id } = false;
}
}

public ClCmd_VModEnable(id)
{
if( read_argc() >= 2 )
{
new arg[32];
read_argv(1, arg, cm(arg));
g_bHasVoicesOn{ id } = !!str_to_num(arg);
}
}

public ClCmd_vban(id)
{
if( read_argc() >= 2 )
{
new arg[32];
read_argv(1, arg, cm(arg));
g_bitBannedClients[id] = strtol(arg, .base = 16);
}
}

public OnVoice_SetClientListening(id, iSender, bool:bListen)
{
if( !is_user_connected(iSender) )
{
return FMRES_IGNORED;
}
static bool:bShouldListen;
bShouldListen = false;
#if defined SUPER_ADMIN_PRIORITY
if(g_iAdminVoice)
{
bShouldListen = (g_iAdminVoice == iSender);
}
else if( !g_bHasVoicesOn{ id } || CanPlayerHearPlayer(id, iSender) )
{
return FMRES_IGNORED;
}
#else
if( !g_bHasVoicesOn{ id } || CanPlayerHearPlayer(id, iSender) )
{
return FMRES_IGNORED;
}
else if(g_iAdminVoice)
{
bShouldListen = (g_iAdminVoice == iSender);
}
#endif
else if( !g_bMuted{ iSender } )
{
if( g_bInterAdminVoice{ iSender } )
{
bShouldListen = !!g_bAdmin{ id };
}
else if(g_bAdminListen{ id })
{
bShouldListen = true;
}
else
{
static pcvar;
switch( get_pdata_int(id, m_iTeam) )
{
case TEAM_T:
{
pcvar = g_pcvarVoicesRules[ is_user_alive(id) ? ALIVE_T : DEAD_T];
}
case TEAM_CT:
{
pcvar = g_pcvarVoicesRules[ is_user_alive(id) ? ALIVE_CT : DEAD_CT];
}
default:
{
pcvar = g_pcvarVoicesRules[SPEC];
}
}

static szRules[6], iRules;
get_pcvar_string(pcvar, szRules, cm(szRules));
iRules = read_flags(szRules);

switch( get_pdata_int(iSender, m_iTeam) )
{
case TEAM_T:
{
bShouldListen = !!(iRules & ( is_user_alive(iSender) ? FL_ALIVE_T : FL_DEAD_T ));
}
case TEAM_CT:
{
bShouldListen = !!(iRules & ( is_user_alive(iSender) ? FL_ALIVE_CT : FL_DEAD_CT ));
}
default:
{
bShouldListen = !!(iRules & FL_SPEC);
}
}
}
}

if( bShouldListen != bListen )
{
forward_return
(
FMV_CELL,
engfunc(EngFunc_SetClientListening, id, iSender, bShouldListen)
);
return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}

public AdminCommand_ListenOn(id)
{
if( !g_bAdmin{ id } )
{
return PLUGIN_HANDLED;
}

g_bAdminListen{ id } = true;

return PLUGIN_HANDLED;
}

public AdminCommand_ListenOff(id)
{
if( g_bAdminListen{ id } )
{
g_bAdminListen{ id } = false;
}

return PLUGIN_HANDLED;
}

public AdminCommand_ListenToggle(id)
{
if( !g_bAdmin{ id } )
{
return PLUGIN_HANDLED;
}

g_bAdminListen{ id } = !g_bAdminListen{ id };

client_print_color(id, id, "%L", id, "VM_LISTEN_STATUS", g_bAdminListen{ id } ? "ON" : "OFF");

return PLUGIN_HANDLED;
}

public AdminCommand_VoiceOn(id)
{
if( !g_bAdmin{ id } )
{
return PLUGIN_HANDLED;
}

if(g_iAdminVoice)
{
client_print_color(id, id, "%L", id, "VM_ALREADY_INUSE");
return PLUGIN_HANDLED;
}

g_iAdminVoice = id;

new name[32];
pev(id, pev_netname, name, cm(name));

for(new player = 1; player <= g_iMaxPlayers; player++)
{
if( is_user_connected(player) && !is_user_hltv(player) && !is_user_bot(player) )
{
client_print_color(player, id, "%L", player, "VM_ADMIN_TALK", name);
}
}

client_cmd(id, "+voicerecord");

return PLUGIN_HANDLED;
}

public AdminCommand_VoiceOff(id)
{
if( !g_bAdmin{ id } )
{
return PLUGIN_HANDLED;
}

if(g_iAdminVoice != id)
{
client_cmd(id, "-voicerecord");
return PLUGIN_HANDLED;
}

client_cmd(id, "-voicerecord");
g_iAdminVoice = 0;
return PLUGIN_HANDLED;
}

public AdminCommand_InterAdminOn(id)
{
if( !g_bAdmin{ id } )
{
return PLUGIN_HANDLED;
}

g_bInterAdminVoice{ id } = true;
client_cmd(id, "+voicerecord");

new name[32];
get_user_name(id, name, cm(name));
for(new i=1; i<=g_iMaxPlayers; i++)
{
if( !g_bAdmin{ i } || !is_user_connected(i) )
{
continue;
}
client_print_color(i, id, "%L", i, "VM_INTER_START", name);
}

return PLUGIN_HANDLED;
}

public AdminCommand_InterAdminOff(id)
{
if( !g_bInterAdminVoice{ id } )
return PLUGIN_HANDLED;

g_bInterAdminVoice{ id } = false;
client_cmd(id, "-voicerecord");

new name[32];
get_user_name(id, name, cm(name));
for(new i=1; i<=g_iMaxPlayers; i++)
{
if( !g_bAdmin{ i } || !is_user_connected(i) )
{
continue;
}
client_print_color(i, id, "%L", i, "VM_INTER_STOP", name);
}

return PLUGIN_HANDLED;
}

public AdminCommand_Mute(id, level, cid)
{
if( !cmd_access(id, level, cid, 2, true) )
{
return PLUGIN_HANDLED;
}

new szPlayer[32];
read_argv(1, szPlayer, cm(szPlayer));
new iPlayer = cmd_target(id, szPlayer, CMDTARGET_OBEY_IMMUNITY | CMDTARGET_NO_BOTS);

if( !iPlayer )
{
return PLUGIN_HANDLED;
}

if( g_bAdmin{ iPlayer } )
{
client_print(id, print_console, "%L", id ? id : LANG_SERVER, "VM_MUTE_ADMIN");
return PLUGIN_HANDLED;
}

if( g_bMuted{ iPlayer } )
{
client_print(id, print_console, "%L", id ? id : LANG_SERVER, "VM_AR_MUTED");
return PLUGIN_HANDLED;
}

g_bMuted{ iPlayer } = true;
client_print(id, print_console, "%L", id ? id : LANG_SERVER, "VM_MUTED");

if(g_amx_show_activity)
{
new name[32], name2[32];
get_user_name(id, name, cm(name));
get_user_name(iPlayer, name2, cm(name2));
// show_activity_col(id, name, name2, "VM_MUTE_ACTIVITY");
show_activity_key_color(id, "VM_MUTE_ACTIVITY_NO_NAME", "VM_MUTE_ACTIVITY_NAME", name, name2);
}
return PLUGIN_HANDLED;
}

public AdminCommand_UnMute(id, level, cid)
{
if( !cmd_access(id, level, cid, 2, true) )
{
return PLUGIN_HANDLED;
}

new szPlayer[32], iPlayer;
read_argv(1, szPlayer, cm(szPlayer));
iPlayer = cmd_target(id, szPlayer, CMDTARGET_OBEY_IMMUNITY | CMDTARGET_NO_BOTS);

if( !iPlayer )
{
return PLUGIN_HANDLED;
}

if( !g_bMuted{ iPlayer } )
{
client_print(id, print_console, "%L", id ? id : LANG_SERVER, "VM_NOT_MUTED");
return PLUGIN_HANDLED;
}

g_bMuted{ iPlayer } = false;
client_print(id, print_console, "%L", id ? id : LANG_SERVER, "VM_UNMUTED");

if(g_amx_show_activity)
{
new name[32], name2[32];
get_user_name(id, name, cm(name));
get_user_name(iPlayer, name2, cm(name2));

// show_activity_col(id, name, name2, "VM_UNMUTE_ACTIVITY");
show_activity_key_color(id, "VM_UNMUTE_ACTIVITY_NO_NAME", "VM_UNMUTE_ACTIVITY_NAME", name, name2);
}

return PLUGIN_HANDLED;
}

show_activity_key_color(sender, const KeyWithoutName[], const KeyWithName[], const ___AdminName[], any:...)
{
// The variable gets used via vformat, but the compiler doesn't know that, so it still cries.
#pragma unused ___AdminName
static activity;
activity = get_show_activity_value();
if( !activity )
{
return;
}

new buffer[512];
new keyfmt[256];
new id;
new players[32];
new num;
new isadmin;
new activityBit = 1<<activity;

get_players(players, num, "ch");
for(--num; num>=0; num--)
{
id = players[num];
isadmin = is_user_admin(id);

if( activity == 2 || (activityBit & 0b1100 && isadmin) ) // show name
{
LookupLangKey(keyfmt, charsmax(keyfmt), KeyWithName, id);
vformat(buffer, charsmax(buffer), keyfmt, 4);
client_print_color(id, sender, "%s", buffer);
}
else if( activity == 1 || (activityBit & 12 /* 0b1100 */ && !isadmin) || (activity == 5 && isadmin ) ) // show without name
{
LookupLangKey(keyfmt, charsmax(keyfmt), KeyWithoutName, id);
// skip the "adminname" argument if not showing name
vformat(buffer, charsmax(buffer), keyfmt, 5);
client_print_color(id, sender, "%s", buffer);
}
}
}

get_show_activity_value()
{
static amx_show_activity;
static const string_amx_show_activity[] = "amx_show_activity";
if (amx_show_activity == 0)
{
amx_show_activity = get_cvar_pointer(string_amx_show_activity);

// if still not found, then register the cvar as a dummy
if (amx_show_activity == 0)
{
amx_show_activity = register_cvar(string_amx_show_activity, "2");
}
}
return get_pcvar_num(amx_show_activity);
}


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя adin
сообщение 11.2.2015, 18:04
Сообщение #11
Стаж: 14 лет

Сообщений: 87
Благодарностей: 12
Полезность: 107

Спасибо за код, но я ищу совмещенный GAG (2B1).

В инетах такой гуляет, даже в файл заткнутых пишет, но после рестарта(changelevel) кляп слетает.

Отредактировал: Bloo, - 11.2.2015, 18:26
Причина: Выдано устное предупреждение!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя l3x1s
сообщение 11.2.2015, 18:11
Сообщение #12


Стаж: 17 лет

Сообщений: 495
Благодарностей: 300
Полезность: 543

valve, А может ли из-за его плагина сервер не отвечать на запросы от хостинга?
У меня просто 1-2 раза сервер "сервер не отвечает на запросы.отключение"
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
BariN
сообщение 11.2.2015, 18:20
Сообщение #13
Стаж: 12 лет

Сообщений: 761
Благодарностей: 324
Полезность: 0

l3x1s,
Вот вам все рабочее)
Link
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя valve
сообщение 11.2.2015, 18:23
Сообщение #14


Стаж: 13 лет

Сообщений: 79
Благодарностей: 50
Полезность: 359

Цитата(l3x1s @ 11.2.2015, 19:11) *
valve, А может ли из-за его плагина сервер не отвечать на запросы от хостинга?
У меня просто 1-2 раза сервер "сервер не отвечает на запросы.отключение"

У меня постоянно так, плагин не работает - сервер не включается.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
XyLiGaN
сообщение 11.2.2015, 18:24
Сообщение #15
Стаж: 13 лет
Город: Югорск

Сообщений: 11668
Благодарностей: 6450
Полезность: 1052

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

Ну и накидали вы тут...
Самый нормальный ГАГ, находится тут - https://github.com/xPaw/AMXX-Gag
Который умеет работать как с БД SQL, так и без неё, но при этом инфа, хранится в файле gags.txt
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
BariN
сообщение 11.2.2015, 18:25
Сообщение #16
Стаж: 12 лет

Сообщений: 761
Благодарностей: 324
Полезность: 0

XyLiGaN,
так дал бы стразу нормально, какого мягко говоря писюлька ты щас тут выёживаешся??
или это у тебя в крови? Умок!
Как же меня бесят такого типажа люди.
Знаю где вовремя подлизать, а где с острить!

Отредактировал: umprex, - 11.2.2015, 18:30
Причина: Выдано предупреждение!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
XyLiGaN
сообщение 11.2.2015, 18:28
Сообщение #17
Стаж: 13 лет
Город: Югорск

Сообщений: 11668
Благодарностей: 6450
Полезность: 1052

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

BariN, Ты разговаривай нормально и не язви.
Я не сижу на форуме круглые сутки в отличии от тебя не читаю всё сразу, появилось время, зашёл прочитал тему. Обычно с телефона сижу, вся остальная информация берётся, только с компа.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя l3x1s
сообщение 11.2.2015, 18:32
Сообщение #18


Стаж: 17 лет

Сообщений: 495
Благодарностей: 300
Полезность: 543

XyLiGaN, Затыкает и чат и микро?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
XyLiGaN
сообщение 11.2.2015, 18:36
Сообщение #19
Стаж: 13 лет
Город: Югорск

Сообщений: 11668
Благодарностей: 6450
Полезность: 1052

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

l3x1s, Ну как бы там написано, что затыкает - чат, командный чат и микро.


Отредактировал: XyLiGaN, - 11.2.2015, 18:36
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя l3x1s
сообщение 11.2.2015, 20:18
Сообщение #20


Стаж: 17 лет

Сообщений: 495
Благодарностей: 300
Полезность: 543

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