Иммунитет админов к вотебану
Автор
2429
, фев 15 2013 15:44
- Авторизуйтесь для ответа в теме
Сообщений в теме: 14
#1
2429
Отправлено 15 Февраль 2013 — 15:44
захожу в вотебан, иммунитета нет((
подскажите как сделать, чтобы админы ваще не отображались в вотебане
#2
kilokil
kilokil
- Пользователь
- 26 сообщений
Новичок
Отправлено 27 Февраль 2013 — 15:36
Такой же вопрос, тема ап
#3
Xattab058rus
Отправлено 27 Февраль 2013 — 15:49
Емли админ отоброжаеться в вотебане,он там другого же цвета светлее чем другие игроки, забанить нельзя его.а если можно банить смотри права которые ты ставишь админам.а через что прописываешь админов кстати.
#4
kilokil
kilokil
- Пользователь
- 26 сообщений
Новичок
Отправлено 27 Февраль 2013 — 16:04
через АМХBANS админ центр.. Флаги высталяю на имунитет, но все равно,обычный пользователь может забанить
#5
Xattab058rus
Отправлено 27 Февраль 2013 — 16:17
Напиши какие права прописываешь админам.
#6
kilokil
kilokil
- Пользователь
- 26 сообщений
Новичок
Отправлено 27 Февраль 2013 — 16:28
я отмечаю просто все, если конечно ты имел это ввиду
ставлю полный доступ
Сообщение отредактировал kilokil: 27 Февраль 2013 — 16:29
#7
Xattab058rus
Отправлено 27 Февраль 2013 — 16:46
А «z» то же ставишь?
#8
Santiago
Santiago
- Модератор
- 5 052 сообщений
Постоянный пользователь
Отправлено 27 Февраль 2013 — 16:56
z не надо ставить
#9
Xattab058rus
Отправлено 27 Февраль 2013 — 16:59
Если » z» ставишь то он становиться обычным пользователем.
#10
kilokil
kilokil
- Пользователь
- 26 сообщений
Новичок
Отправлено 27 Февраль 2013 — 19:22
Но парни, ведь админ меню работает. Да я ставлю «Z» .. сейчас попробую убрать..Посмотрю , за ранее спасибо, но за ранее не радуюсь))
все равно кикает парни… то есть на кике проверил…что делать?Помогите
Попросил друга проверить он зашел и свободно дал бан на 30мин
Сообщение отредактировал kilokil: 27 Февраль 2013 — 19:33
#11
Xattab058rus
Отправлено 27 Февраль 2013 — 19:46
Но парни, ведь админ меню работает. Да я ставлю «Z» .. сейчас попробую убрать..Посмотрю , за ранее спасибо, но за ранее не радуюсь))
все равно кикает парни… то есть на кике проверил…что делать?Помогите
Попросил друга проверить он зашел и свободно дал бан на 30мин
вот так попробуй «abcdefiju» «a»
#12
kilokil
kilokil
- Пользователь
- 26 сообщений
Новичок
Отправлено 27 Февраль 2013 — 19:52
Снова забанить смогли…..
вот так попробуй «abcdefiju» «a»
забанен
#13
Xattab058rus
Отправлено 27 Февраль 2013 — 20:01
ты сам себя что ли банишь
#14
kilokil
kilokil
- Пользователь
- 26 сообщений
Новичок
Отправлено 27 Февраль 2013 — 20:06
ты сам себя что ли банишь
нет нет, я знаю что админ с флагом «а» может забанить админа, я обычного пользователя попросил дать мне бан через /voteban
#15
kilokil
kilokil
- Пользователь
- 26 сообщений
Новичок
Отправлено 02 Март 2013 — 23:22
Xattab058rus спасибо, помог=)
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных
- Форум MyArena.ru
- → Наш WEB-хостинг
- → AMXBans
- Правила поведения на форуме
Lite VoteBan: иммунитет для админов
Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела «Болтовня».
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.
В данном разделе форума разрешено создавать темы только с поиском исполнителя или заказчика.
Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.
- Ответить с цитатой
Lite VoteBan: иммунитет для админов
adrenalin_den » 20 дек 2016, 02:50
Помогите пожалуйста. Как сделать чтобы у админов был имуннитет с флагом f .
И чтобы было когда игрок нажимал причину он видел и время на которое банит:
«AIM», 180 минут
«WH», 180 минут
«Мешает играть» 15 минут
+Квар 0 можно писать втб если есть админ | 1 если есть админ то нельзя писать втб
Бан по amxbans 6.0 причина бана voteban
Поставил #define ACCESS АDMIN_NONE ввожу вотебан плагин не реагирует
Код: Выделить всёnew g_aBanReasons[][64] =
{
«AIM»,
«WH»,
«Мешает играть»
}
new
g_iReasonsMenu;
new g_iVoteMenu;
new _access, callback, ItemData[3];
new
g_iInsider;
new g_iVoteStartTime;
new g_iVoteCount, bool:g_bIsVoted[33];
new g_iVictim;
new g_sBanReason[64];
new
g_iVoteBanPlayersNum, g_iVoteBanPlayers[33];
public
plugin_init()
{
register_plugin(«Lite VoteBan», VERSION, «neygomon»);
register_cvar(«lite_voteban», VERSION, FCVAR_SERVER | FCVAR_SPONLY); register_clcmd(«say /voteban», «ClCmdVoteban»);
register_clcmd(«say /vtb», «ClCmdVoteban»);
register_clcmd(«say_team /voteban», «ClCmdVoteban»);
register_clcmd(«say_team /vtb», «ClCmdVoteban»);
register_clcmd(«vtb_reason», «ClCmdReason»);
}
public
plugin_cfg()
{
g_iReasonsMenu = menu_create(«d[rLite VoteBand] yВыберите причину банаw», «ReasonsMenuHandler»);
g_iVoteMenu = menu_create(«UNNAMED_MENU», «VoteMenuHandler»);menu_setprop(g_iReasonsMenu, MPROP_EXIT, MEXIT_NEVER);
menu_setprop(g_iReasonsMenu, MPROP_PERPAGE, 0);
menu_setprop(g_iVoteMenu, MPROP_EXIT, MEXIT_NEVER);
new
num[3];
for(new i; i < sizeof g_aBanReasons; i++)
{
num_to_str(i, num, charsmax(num));
menu_additem(g_iReasonsMenu, g_aBanReasons[i], num);
}
menu_addblank(g_iReasonsMenu, 0);
menu_additem(g_iReasonsMenu, «yСвоя причина», «69»);menu_additem(g_iVoteMenu, «rДа», «1»);
menu_additem(g_iVoteMenu, «yНет», «0»);
}
public
client_disconnect(id)
{
if(g_bIsVoted[id])
{
g_bIsVoted[id] = false;
g_iVoteCount—;
}
}
public
ClCmdVoteban(id)
{
if(~get_user_flags(id) & ACCESS)
{
new flag[25]; get_flags(ACCESS, flag, charsmax(flag));
ChatColor(id, «^1[^4WARN^1] ^4Доступ запрещен! Разрешено только игрокам с флагами ^3%s^4!», flag);
return PLUGIN_HANDLED;
}
static players[32], pnum, iVtbDelay;
if(g_iInsider)
return ChatColor(id, «^1[^4Lite VoteBan^1] ^4Голосование ^3уже запущено^4!»);
if((iVtbDelay = g_iVoteStartTime + VB_DELAY — get_systime()) > 0)
return ChatColor(id, «^1[^4Lite VoteBan^1] ^4Голосование будет доступно через ^3%d ^4мин. ^3%d ^4сек.», (iVtbDelay / 60), (iVtbDelay % 60));
get_players(players, pnum);
if(MIN_PLAYERS > pnum)
return ChatColor(id, «^1[^4Lite VoteBan^1] ^4Необходимо не менее ^3%d ^4игроков для запуска голосования!», MIN_PLAYERS);g_iVoteBanPlayersNum = 0;
for(new i; i < pnum; i++)
{
if(get_user_flags(players[i]) & ADMIN_MENU)
return ChatColor(id, «^1[^4VoteBan^1] ^4На сервере присутствует ^3администратор^4!»);
g_iVoteBanPlayers[g_iVoteBanPlayersNum++] = players[i];
}
return SelectPlayerOnBan(id);
}
public
SelectPlayerOnBan(id)
{
new iPlayersMenu = menu_create(«d[rLite VoteBand] yВыберите игрокаw», «PlayersMenuHandler»);
new iCallBack = menu_makecallback(«PlayersMenuCallback»);
menu_setprop(iPlayersMenu, MPROP_BACKNAME, «Назад»);
menu_setprop(iPlayersMenu, MPROP_NEXTNAME, «Далее»);
menu_setprop(iPlayersMenu, MPROP_EXITNAME, «Выход»);
new
name[32], num[3];
for(new i; i < g_iVoteBanPlayersNum; i++)
{
if(g_iVoteBanPlayers[i] == id) continue;
get_user_name(g_iVoteBanPlayers[i], name, charsmax(name));
num_to_str(g_iVoteBanPlayers[i], num, charsmax(num));
menu_additem(iPlayersMenu, name, num, 0, iCallBack);
}
menu_display(id, iPlayersMenu, 0);
return PLUGIN_HANDLED;
}
public
PlayersMenuCallback(id, menu, item)
{
static ItemName[32], ItemNewName[64];
menu_item_getinfo(menu, item, _access, ItemData, charsmax(ItemData), ItemName, charsmax(ItemName), callback);
if(get_user_flags(str_to_num(ItemData)) & ADMIN_IMMUNITY)
{
formatex(ItemNewName, charsmax(ItemNewName), «d%s y[rИммунитетy]», ItemName);
menu_item_setname(menu, item, ItemNewName);
return ITEM_DISABLED;
}
return ITEM_ENABLED;
}
public
PlayersMenuHandler(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
menu_item_getinfo(menu, item, _access, ItemData, charsmax(ItemData), _, _, callback);
g_iVictim = str_to_num(ItemData);
menu_destroy(menu);
return menu_display(id, g_iReasonsMenu);
}
public
ReasonsMenuHandler(id, menu, item)
{
menu_item_getinfo(menu, item, _access, ItemData, charsmax(ItemData), _, _, callback);
new ReasonId = str_to_num(ItemData);
if(ReasonId == 69) client_cmd(id, «messagemode vtb_reason»);
else
{
g_sBanReason = g_aBanReasons[ReasonId];
VoteBanAction(id);
}
return PLUGIN_HANDLED;
}
public
ClCmdReason(id)
{
if(~get_user_flags(id) & ACCESS)
{
new flag[25]; get_flags(ACCESS, flag, charsmax(flag));
ChatColor(id, «^1[^4WARN^1] ^4Доступ запрещен! Разрешено только игрокам с флагами ^3%s^4!», flag);
return PLUGIN_HANDLED;
}
static sReason[64];
read_args(sReason, charsmax(sReason));
remove_quotes(sReason);
g_sBanReason = sReason[0] ? sReason : «unknown»;
return VoteBanAction(id);
}VoteBanAction(id)
{
static sInsName[32], sVicName[32], sTitle[256];
get_user_name(id, sInsName, charsmax(sInsName));
get_user_name(g_iVictim, sVicName, charsmax(sVicName));
formatex(sTitle, charsmax(sTitle), «rЗабанить y%sw?^nrПричинаw: y%s^ndЗапустил r%s», sVicName, g_sBanReason, sInsName);
menu_setprop(g_iVoteMenu, MPROP_TITLE, sTitle);g_iInsider = id;
g_iVoteStartTime = get_systime();
g_iVoteCount = 0;
arrayset(g_bIsVoted, false, sizeof(g_bIsVoted));
for(new
i; i < g_iVoteBanPlayersNum; ++i)
{
if(g_iVoteBanPlayers[i] != g_iVictim)
menu_display(g_iVoteBanPlayers[i], g_iVoteMenu);
}
return set_task(VB_TIME, «VoteBanResults»);
}
public
VoteMenuHandler(id, menu, item)
{
if(item != MENU_EXIT)
{
menu_item_getinfo(menu, item, _access, ItemData, charsmax(ItemData), _, _, callback);
if(str_to_num(ItemData))
{
g_iVoteCount++;
g_bIsVoted[id] = true;
}
}
return PLUGIN_HANDLED;
}
public
VoteBanResults()
{
show_menu(0, 0, «^n», 1); if(is_user_connected(g_iVictim))
{
new iVoteBanMinVotes = floatround(BAN_RATIO * float(g_iVoteBanPlayersNum));
new name[32]; get_user_name(g_iVictim, name, charsmax(name));
if(g_iVoteCount >= iVoteBanMinVotes)
{
server_cmd(«kick #%d ^»%s^»», get_user_userid(g_iVictim), g_sBanReason);
server_cmd(«amx_ban %d #%d ^»%s^»», VB_BANTIME, get_user_userid(g_iVictim), g_sBanReason);
server_cmd(«amx_superban #%d %d ^»%s^»», get_user_userid(g_iVictim), VB_BANTIME, g_sBanReason);
ChatColor(0, «^1[^4Lite VoteBan^1] ^4Голосование завершено! Игрок ^3%s ^1был ^3забанен^4! ^1[^4Голосов: ^3%d ^1| ^4Необходимо: ^3%d^1]», name, g_iVoteCount, iVoteBanMinVotes);
log_amx(«VoteBan SUCCESS. Player ^»%s^» [Reason: ^»%s^»][Vote: %d | MinVote: %d]», name, g_sBanReason, g_iVoteCount, iVoteBanMinVotes);
}
else
{
ChatColor(0, «^1[^4Lite VoteBan^1] ^4Голосование завершено! Игрок ^3%s ^1не был ^3забанен^4! ^1[^4Голосов: ^3%d ^1| ^4Необходимо: ^3%d^1]», name, g_iVoteCount, iVoteBanMinVotes);
log_amx(«VoteBan FAILED. Player ^»%s^» [Reason: ^»%s^»][Vote: %d | MinVote: %d]», name, g_sBanReason, g_iVoteCount, iVoteBanMinVotes);
}
}
else ChatColor(g_iInsider, «^1[^4Lite VoteBan^1] ^4Наказать не удалось… Игрок покинул сервер :(«);
g_iInsider = g_iVictim = 0;
}stock ChatColor(const id, const szMessage[], any:…)
{
static pnum, players[32], szMsg[190], IdMsg;
vformat(szMsg, charsmax(szMsg), szMessage, 3);
if(!
IdMsg) IdMsg = get_user_msgid(«SayText»);
if(
id)
{
if(!is_user_connected(id)) return 1;
players[0] = id;
pnum = 1;
}
else get_players(players, pnum, «ch»);
for(new
i; i < pnum; i++)
{
message_begin(MSG_ONE, IdMsg, .player = players[i]);
write_byte(players[i]);
write_string(szMsg);
message_end();
}
return 1;
}
Название темы скорректировано // Subb98
adrenalin_den
Сообщения: 63Зарегистрирован: 17 сен 2012, 03:49
Благодарил (а): 25 раз.
Поблагодарили: 0 раз.
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Team Fortress II
Left 4 Dead
- Ответить с цитатой
Re: Lite VoteBan: иммунитет для админов
Subb98 » 20 дек 2016, 12:55
Если готовы оплатить работу, то могу перенести вашу тему в раздел «Биржа труда».
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Subb98
Сообщения: 5483Зарегистрирован: 24 мар 2011, 19:42Откуда: г. Пермь
Благодарил (а): 1323 раз.
Поблагодарили: 2334 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP
adrenalin_den
Сообщения: 63Зарегистрирован: 17 сен 2012, 03:49
Благодарил (а): 25 раз.
Поблагодарили: 0 раз.
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Team Fortress II
Left 4 Dead
- Ответить с цитатой
Re: Lite VoteBan: иммунитет для админов
Subb98 » 20 дек 2016, 15:55
Тема перемещена в раздел «Биржа труда»
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Subb98
Сообщения: 5483Зарегистрирован: 24 мар 2011, 19:42Откуда: г. Пермь
Благодарил (а): 1323 раз.
Поблагодарили: 2334 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP
ko22009
Сообщения: 127Зарегистрирован: 19 янв 2017, 16:20
Благодарил (а): 12 раз.
Поблагодарили: 27 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn
C++
Php
Python
C#
Вернуться в Поиск исполнителей / заказчиков
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0
Иммунитет админов к вотебану
Shadows In Rain писал(а): Сейчас «рынок» плагинов напоминает какой-то нелегальный подвальный клуб, куда приходит непонятно кто, заказывает непонятно что, а за косяки приезжает разбираться с братвой на уазиках.
Lite VoteBan: иммунитет для админов
Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела «Болтовня».
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.
В данном разделе форума разрешено создавать темы только с поиском исполнителя или заказчика.
Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.
Lite VoteBan: иммунитет для админов
Помогите пожалуйста. Как сделать чтобы у админов был имуннитет с флагом f .
И чтобы было когда игрок нажимал причину он видел и время на которое банит:
«AIM», 180 минут
«WH», 180 минут
«Мешает играть» 15 минут
+Квар 0 можно писать втб если есть админ | 1 если есть админ то нельзя писать втб
Бан по amxbans 6.0 причина бана voteban
Поставил #define ACCESS АDMIN_NONE ввожу вотебан плагин не реагирует
#define MIN_PLAYERS 0 // Минимальное кол-во игроков на сервере для запуска голосования
#define BAN_RATIO 0.6 // Коэффицент голосов для бана. 0.1 — 10% | 1.0 — 100%
#define VB_DELAY 120 // Время(в секундах) между голосованиями. Защита от лалок, которые хотят всех перебанить xD
#define VB_TIME 10.0 // Продолжительность голосования
#define VB_BANTIME 15 // Время бана в минутах
#define VB_TYPE 1 // Тип наказания. 0 — кик, 1 — AmxBans/FreshBans, 2 — SuperBan
#define ACCESS // Доступ к функциям вотебана. Чтобы разрешить всем использовать поставьте ADMIN_NONE
// Стандартные причины VoteBan. Не указывайте больше 8-ми. Может сломаться менюшка ????
// Пункт «Своя причина» добавляется в конце списка.
new g_aBanReasons [][ 64 ] =
«AIM» ,
«WH» ,
«Мешает играть»
>
new g_iReasonsMenu ;
new g_iVoteMenu ;
new _access , callback , ItemData [ 3 ];
new g_iInsider ;
new g_iVoteStartTime ;
new g_iVoteCount , bool : g_bIsVoted [ 33 ];
new g_iVictim ;
new g_sBanReason [ 64 ];
new g_iVoteBanPlayersNum , g_iVoteBanPlayers [ 33 ];
public plugin_init ()
#define VERSION «1.4»
register_plugin ( «Lite VoteBan» , VERSION , «neygomon» );
register_cvar ( «lite_voteban» , VERSION , FCVAR_SERVER | FCVAR_SPONLY );
register_clcmd ( «say /voteban» , «ClCmdVoteban» );
register_clcmd ( «say /vtb» , «ClCmdVoteban» );
register_clcmd ( «say_team /voteban» , «ClCmdVoteban» );
register_clcmd ( «say_team /vtb» , «ClCmdVoteban» );
register_clcmd ( «vtb_reason» , «ClCmdReason» );
>
public plugin_cfg ()
g_iReasonsMenu = menu_create ( «d[rLite VoteBand] yВыберите причину банаw» , «ReasonsMenuHandler» );
g_iVoteMenu = menu_create ( «UNNAMED_MENU» , «VoteMenuHandler» );
menu_setprop ( g_iReasonsMenu , MPROP_EXIT , MEXIT_NEVER );
menu_setprop ( g_iReasonsMenu , MPROP_PERPAGE , 0 );
menu_setprop ( g_iVoteMenu , MPROP_EXIT , MEXIT_NEVER );
new num [ 3 ];
for(new i ; i sizeof g_aBanReasons ; i ++)
num_to_str ( i , num , charsmax ( num ));
menu_additem ( g_iReasonsMenu , g_aBanReasons [ i ], num );
>
menu_addblank ( g_iReasonsMenu , 0 );
menu_additem ( g_iReasonsMenu , «yСвоя причина» , «69» );
menu_additem ( g_iVoteMenu , «rДа» , «1» );
menu_additem ( g_iVoteMenu , «yНет» , «0» );
>
public client_disconnect ( id )
if( g_bIsVoted [ id ])
g_bIsVoted [ id ] = false ;
g_iVoteCount —;
>
>
public ClCmdVoteban ( id )
#if ACCESS != ADMIN_NONE
if(
get_user_flags ( id ) & ACCESS )
new flag [ 25 ]; get_flags ( ACCESS , flag , charsmax ( flag ));
ChatColor ( id , «^1[^4WARN^1] ^4Доступ запрещен! Разрешено только игрокам с флагами ^3%s^4!» , flag );
return PLUGIN_HANDLED ;
>
#endif
static players [ 32 ], pnum , iVtbDelay ;
if( g_iInsider )
return ChatColor ( id , «^1[^4Lite VoteBan^1] ^4Голосование ^3уже запущено^4!» );
if(( iVtbDelay = g_iVoteStartTime + VB_DELAY — get_systime ()) > 0 )
return ChatColor ( id , «^1[^4Lite VoteBan^1] ^4Голосование будет доступно через ^3%d ^4мин. ^3%d ^4сек.» , ( iVtbDelay / 60 ), ( iVtbDelay % 60 ));
get_players ( players , pnum );
if( MIN_PLAYERS > pnum )
return ChatColor ( id , «^1[^4Lite VoteBan^1] ^4Необходимо не менее ^3%d ^4игроков для запуска голосования!» , MIN_PLAYERS );
g_iVoteBanPlayersNum = 0 ;
for(new i ; i pnum ; i ++)
if( get_user_flags ( players [ i ]) & ADMIN_MENU )
return ChatColor ( id , «^1[^4VoteBan^1] ^4На сервере присутствует ^3администратор^4!» );
g_iVoteBanPlayers [ g_iVoteBanPlayersNum ++] = players [ i ];
>
return SelectPlayerOnBan ( id );
>
public SelectPlayerOnBan ( id )
new iPlayersMenu = menu_create ( «d[rLite VoteBand] yВыберите игрокаw» , «PlayersMenuHandler» );
new iCallBack = menu_makecallback ( «PlayersMenuCallback» );
menu_setprop ( iPlayersMenu , MPROP_BACKNAME , «Назад» );
menu_setprop ( iPlayersMenu , MPROP_NEXTNAME , «Далее» );
menu_setprop ( iPlayersMenu , MPROP_EXITNAME , «Выход» );
new name [ 32 ], num [ 3 ];
for(new i ; i g_iVoteBanPlayersNum ; i ++)
if( g_iVoteBanPlayers [ i ] == id ) continue;
get_user_name ( g_iVoteBanPlayers [ i ], name , charsmax ( name ));
num_to_str ( g_iVoteBanPlayers [ i ], num , charsmax ( num ));
menu_additem ( iPlayersMenu , name , num , 0 , iCallBack );
>
menu_display ( id , iPlayersMenu , 0 );
return PLUGIN_HANDLED ;
>
public PlayersMenuCallback ( id , menu , item )
static ItemName [ 32 ], ItemNewName [ 64 ];
menu_item_getinfo ( menu , item , _access , ItemData , charsmax ( ItemData ), ItemName , charsmax ( ItemName ), callback );
if( get_user_flags ( str_to_num ( ItemData )) & ADMIN_IMMUNITY )
formatex ( ItemNewName , charsmax ( ItemNewName ), «d%s y[rИммунитетy]» , ItemName );
menu_item_setname ( menu , item , ItemNewName );
return ITEM_DISABLED ;
>
return ITEM_ENABLED ;
>
public PlayersMenuHandler ( id , menu , item )
if( item == MENU_EXIT )
menu_destroy ( menu );
return PLUGIN_HANDLED ;
>
menu_item_getinfo ( menu , item , _access , ItemData , charsmax ( ItemData ), _ , _ , callback );
g_iVictim = str_to_num ( ItemData );
menu_destroy ( menu );
return menu_display ( id , g_iReasonsMenu );
>
public ReasonsMenuHandler ( id , menu , item )
menu_item_getinfo ( menu , item , _access , ItemData , charsmax ( ItemData ), _ , _ , callback );
new ReasonId = str_to_num ( ItemData );
if( ReasonId == 69 ) client_cmd ( id , «messagemode vtb_reason» );
else
g_sBanReason = g_aBanReasons [ ReasonId ];
VoteBanAction ( id );
>
return PLUGIN_HANDLED ;
>
public ClCmdReason ( id )
#if ACCESS != ADMIN_NONE
if(
get_user_flags ( id ) & ACCESS )
new flag [ 25 ]; get_flags ( ACCESS , flag , charsmax ( flag ));
ChatColor ( id , «^1[^4WARN^1] ^4Доступ запрещен! Разрешено только игрокам с флагами ^3%s^4!» , flag );
return PLUGIN_HANDLED ;
>
#endif
static sReason [ 64 ];
read_args ( sReason , charsmax ( sReason ));
remove_quotes ( sReason );
g_sBanReason = sReason [ 0 ] ? sReason : «unknown» ;
return VoteBanAction ( id );
>
VoteBanAction ( id )
static sInsName [ 32 ], sVicName [ 32 ], sTitle [ 256 ];
get_user_name ( id , sInsName , charsmax ( sInsName ));
get_user_name ( g_iVictim , sVicName , charsmax ( sVicName ));
formatex ( sTitle , charsmax ( sTitle ), «rЗабанить y%sw?^nrПричинаw: y%s^ndЗапустил r%s» , sVicName , g_sBanReason , sInsName );
menu_setprop ( g_iVoteMenu , MPROP_TITLE , sTitle );
g_iInsider = id ;
g_iVoteStartTime = get_systime ();
g_iVoteCount = 0 ;
arrayset ( g_bIsVoted , false , sizeof ( g_bIsVoted ));
for(new i ; i g_iVoteBanPlayersNum ; ++ i )
if( g_iVoteBanPlayers [ i ] != g_iVictim )
menu_display ( g_iVoteBanPlayers [ i ], g_iVoteMenu );
>
return set_task ( VB_TIME , «VoteBanResults» );
>
public VoteMenuHandler ( id , menu , item )
if( item != MENU_EXIT )
menu_item_getinfo ( menu , item , _access , ItemData , charsmax ( ItemData ), _ , _ , callback );
if( str_to_num ( ItemData ))
g_iVoteCount ++;
g_bIsVoted [ id ] = true ;
>
>
return PLUGIN_HANDLED ;
>
public VoteBanResults ()
show_menu ( 0 , 0 , «^n» , 1 ); // визуально закрываем меню.
if( is_user_connected ( g_iVictim ))
new iVoteBanMinVotes = floatround ( BAN_RATIO * float ( g_iVoteBanPlayersNum ));
new name [ 32 ]; get_user_name ( g_iVictim , name , charsmax ( name ));
if( g_iVoteCount >= iVoteBanMinVotes )
#if VB_TYPE == 0
server_cmd ( «kick #%d ^» % s ^ «» , get_user_userid ( g_iVictim ), g_sBanReason );
#endif
#if VB_TYPE == 1
server_cmd ( «amx_ban %d #%d ^» % s ^ «» , VB_BANTIME , get_user_userid ( g_iVictim ), g_sBanReason );
#endif
#if VB_TYPE == 2
server_cmd ( «amx_superban #%d %d ^» % s ^ «» , get_user_userid ( g_iVictim ), VB_BANTIME , g_sBanReason );
#endif
ChatColor ( 0 , «^1[^4Lite VoteBan^1] ^4Голосование завершено! Игрок ^3%s ^1был ^3забанен^4! ^1[^4Голосов: ^3%d ^1| ^4Необходимо: ^3%d^1]» , name , g_iVoteCount , iVoteBanMinVotes );
log_amx ( «VoteBan SUCCESS. Player ^» % s ^ » [Reason: ^» % s ^ «][Vote: %d | MinVote: %d]» , name , g_sBanReason , g_iVoteCount , iVoteBanMinVotes );
>
else
ChatColor ( 0 , «^1[^4Lite VoteBan^1] ^4Голосование завершено! Игрок ^3%s ^1не был ^3забанен^4! ^1[^4Голосов: ^3%d ^1| ^4Необходимо: ^3%d^1]» , name , g_iVoteCount , iVoteBanMinVotes );
log_amx ( «VoteBan FAILED. Player ^» % s ^ » [Reason: ^» % s ^ «][Vote: %d | MinVote: %d]» , name , g_sBanReason , g_iVoteCount , iVoteBanMinVotes );
>
>
else ChatColor ( g_iInsider , «^1[^4Lite VoteBan^1] ^4Наказать не удалось. Игрок покинул сервер :(» );
g_iInsider = g_iVictim = 0 ;
>
stock ChatColor (const id , const szMessage [], any . )
static pnum , players [ 32 ], szMsg [ 190 ], IdMsg ;
vformat ( szMsg , charsmax ( szMsg ), szMessage , 3 );
if(! IdMsg ) IdMsg = get_user_msgid ( «SayText» );
if( id )
if(! is_user_connected ( id )) return 1 ;
players [ 0 ] = id ;
pnum = 1 ;
>
else get_players ( players , pnum , «ch» );
for(new i ; i pnum ; i ++)
message_begin ( MSG_ONE , IdMsg , . player = players [ i ]);
write_byte ( players [ i ]);
write_string ( szMsg );
message_end ();
>
return 1 ;
>
источник
Иммунитет админов к вотебану
lop50956 писал(а): > Скажите мне пожалуйста вы скриптер или кто? если да то уж назовите цену я же к вам собираюсь идти хлеб покупать
Lite VoteBan: иммунитет для админов
Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела «Болтовня».
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.
В данном разделе форума разрешено создавать темы только с поиском исполнителя или заказчика.
Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.
Lite VoteBan: иммунитет для админов
Помогите пожалуйста. Как сделать чтобы у админов был имуннитет с флагом f .
И чтобы было когда игрок нажимал причину он видел и время на которое банит:
«AIM», 180 минут
«WH», 180 минут
«Мешает играть» 15 минут
+Квар 0 можно писать втб если есть админ | 1 если есть админ то нельзя писать втб
Бан по amxbans 6.0 причина бана voteban
Поставил #define ACCESS АDMIN_NONE ввожу вотебан плагин не реагирует
#define MIN_PLAYERS 0 // Минимальное кол-во игроков на сервере для запуска голосования
#define BAN_RATIO 0.6 // Коэффицент голосов для бана. 0.1 — 10% | 1.0 — 100%
#define VB_DELAY 120 // Время(в секундах) между голосованиями. Защита от лалок, которые хотят всех перебанить xD
#define VB_TIME 10.0 // Продолжительность голосования
#define VB_BANTIME 15 // Время бана в минутах
#define VB_TYPE 1 // Тип наказания. 0 — кик, 1 — AmxBans/FreshBans, 2 — SuperBan
#define ACCESS // Доступ к функциям вотебана. Чтобы разрешить всем использовать поставьте ADMIN_NONE
// Стандартные причины VoteBan. Не указывайте больше 8-ми. Может сломаться менюшка ????
// Пункт «Своя причина» добавляется в конце списка.
new g_aBanReasons [][ 64 ] =
«AIM» ,
«WH» ,
«Мешает играть»
>
new g_iReasonsMenu ;
new g_iVoteMenu ;
new _access , callback , ItemData [ 3 ];
new g_iInsider ;
new g_iVoteStartTime ;
new g_iVoteCount , bool : g_bIsVoted [ 33 ];
new g_iVictim ;
new g_sBanReason [ 64 ];
new g_iVoteBanPlayersNum , g_iVoteBanPlayers [ 33 ];
public plugin_init ()
#define VERSION «1.4»
register_plugin ( «Lite VoteBan» , VERSION , «neygomon» );
register_cvar ( «lite_voteban» , VERSION , FCVAR_SERVER | FCVAR_SPONLY );
register_clcmd ( «say /voteban» , «ClCmdVoteban» );
register_clcmd ( «say /vtb» , «ClCmdVoteban» );
register_clcmd ( «say_team /voteban» , «ClCmdVoteban» );
register_clcmd ( «say_team /vtb» , «ClCmdVoteban» );
register_clcmd ( «vtb_reason» , «ClCmdReason» );
>
public plugin_cfg ()
g_iReasonsMenu = menu_create ( «d[rLite VoteBand] yВыберите причину банаw» , «ReasonsMenuHandler» );
g_iVoteMenu = menu_create ( «UNNAMED_MENU» , «VoteMenuHandler» );
menu_setprop ( g_iReasonsMenu , MPROP_EXIT , MEXIT_NEVER );
menu_setprop ( g_iReasonsMenu , MPROP_PERPAGE , 0 );
menu_setprop ( g_iVoteMenu , MPROP_EXIT , MEXIT_NEVER );
new num [ 3 ];
for(new i ; i sizeof g_aBanReasons ; i ++)
num_to_str ( i , num , charsmax ( num ));
menu_additem ( g_iReasonsMenu , g_aBanReasons [ i ], num );
>
menu_addblank ( g_iReasonsMenu , 0 );
menu_additem ( g_iReasonsMenu , «yСвоя причина» , «69» );
menu_additem ( g_iVoteMenu , «rДа» , «1» );
menu_additem ( g_iVoteMenu , «yНет» , «0» );
>
public client_disconnect ( id )
if( g_bIsVoted [ id ])
g_bIsVoted [ id ] = false ;
g_iVoteCount —;
>
>
public ClCmdVoteban ( id )
#if ACCESS != ADMIN_NONE
if(
get_user_flags ( id ) & ACCESS )
new flag [ 25 ]; get_flags ( ACCESS , flag , charsmax ( flag ));
ChatColor ( id , «^1[^4WARN^1] ^4Доступ запрещен! Разрешено только игрокам с флагами ^3%s^4!» , flag );
return PLUGIN_HANDLED ;
>
#endif
static players [ 32 ], pnum , iVtbDelay ;
if( g_iInsider )
return ChatColor ( id , «^1[^4Lite VoteBan^1] ^4Голосование ^3уже запущено^4!» );
if(( iVtbDelay = g_iVoteStartTime + VB_DELAY — get_systime ()) > 0 )
return ChatColor ( id , «^1[^4Lite VoteBan^1] ^4Голосование будет доступно через ^3%d ^4мин. ^3%d ^4сек.» , ( iVtbDelay / 60 ), ( iVtbDelay % 60 ));
get_players ( players , pnum );
if( MIN_PLAYERS > pnum )
return ChatColor ( id , «^1[^4Lite VoteBan^1] ^4Необходимо не менее ^3%d ^4игроков для запуска голосования!» , MIN_PLAYERS );
g_iVoteBanPlayersNum = 0 ;
for(new i ; i pnum ; i ++)
if( get_user_flags ( players [ i ]) & ADMIN_MENU )
return ChatColor ( id , «^1[^4VoteBan^1] ^4На сервере присутствует ^3администратор^4!» );
g_iVoteBanPlayers [ g_iVoteBanPlayersNum ++] = players [ i ];
>
return SelectPlayerOnBan ( id );
>
public SelectPlayerOnBan ( id )
new iPlayersMenu = menu_create ( «d[rLite VoteBand] yВыберите игрокаw» , «PlayersMenuHandler» );
new iCallBack = menu_makecallback ( «PlayersMenuCallback» );
menu_setprop ( iPlayersMenu , MPROP_BACKNAME , «Назад» );
menu_setprop ( iPlayersMenu , MPROP_NEXTNAME , «Далее» );
menu_setprop ( iPlayersMenu , MPROP_EXITNAME , «Выход» );
new name [ 32 ], num [ 3 ];
for(new i ; i g_iVoteBanPlayersNum ; i ++)
if( g_iVoteBanPlayers [ i ] == id ) continue;
get_user_name ( g_iVoteBanPlayers [ i ], name , charsmax ( name ));
num_to_str ( g_iVoteBanPlayers [ i ], num , charsmax ( num ));
menu_additem ( iPlayersMenu , name , num , 0 , iCallBack );
>
menu_display ( id , iPlayersMenu , 0 );
return PLUGIN_HANDLED ;
>
public PlayersMenuCallback ( id , menu , item )
static ItemName [ 32 ], ItemNewName [ 64 ];
menu_item_getinfo ( menu , item , _access , ItemData , charsmax ( ItemData ), ItemName , charsmax ( ItemName ), callback );
if( get_user_flags ( str_to_num ( ItemData )) & ADMIN_IMMUNITY )
formatex ( ItemNewName , charsmax ( ItemNewName ), «d%s y[rИммунитетy]» , ItemName );
menu_item_setname ( menu , item , ItemNewName );
return ITEM_DISABLED ;
>
return ITEM_ENABLED ;
>
public PlayersMenuHandler ( id , menu , item )
if( item == MENU_EXIT )
menu_destroy ( menu );
return PLUGIN_HANDLED ;
>
menu_item_getinfo ( menu , item , _access , ItemData , charsmax ( ItemData ), _ , _ , callback );
g_iVictim = str_to_num ( ItemData );
menu_destroy ( menu );
return menu_display ( id , g_iReasonsMenu );
>
public ReasonsMenuHandler ( id , menu , item )
menu_item_getinfo ( menu , item , _access , ItemData , charsmax ( ItemData ), _ , _ , callback );
new ReasonId = str_to_num ( ItemData );
if( ReasonId == 69 ) client_cmd ( id , «messagemode vtb_reason» );
else
g_sBanReason = g_aBanReasons [ ReasonId ];
VoteBanAction ( id );
>
return PLUGIN_HANDLED ;
>
public ClCmdReason ( id )
#if ACCESS != ADMIN_NONE
if(
get_user_flags ( id ) & ACCESS )
new flag [ 25 ]; get_flags ( ACCESS , flag , charsmax ( flag ));
ChatColor ( id , «^1[^4WARN^1] ^4Доступ запрещен! Разрешено только игрокам с флагами ^3%s^4!» , flag );
return PLUGIN_HANDLED ;
>
#endif
static sReason [ 64 ];
read_args ( sReason , charsmax ( sReason ));
remove_quotes ( sReason );
g_sBanReason = sReason [ 0 ] ? sReason : «unknown» ;
return VoteBanAction ( id );
>
VoteBanAction ( id )
static sInsName [ 32 ], sVicName [ 32 ], sTitle [ 256 ];
get_user_name ( id , sInsName , charsmax ( sInsName ));
get_user_name ( g_iVictim , sVicName , charsmax ( sVicName ));
formatex ( sTitle , charsmax ( sTitle ), «rЗабанить y%sw?^nrПричинаw: y%s^ndЗапустил r%s» , sVicName , g_sBanReason , sInsName );
menu_setprop ( g_iVoteMenu , MPROP_TITLE , sTitle );
g_iInsider = id ;
g_iVoteStartTime = get_systime ();
g_iVoteCount = 0 ;
arrayset ( g_bIsVoted , false , sizeof ( g_bIsVoted ));
for(new i ; i g_iVoteBanPlayersNum ; ++ i )
if( g_iVoteBanPlayers [ i ] != g_iVictim )
menu_display ( g_iVoteBanPlayers [ i ], g_iVoteMenu );
>
return set_task ( VB_TIME , «VoteBanResults» );
>
public VoteMenuHandler ( id , menu , item )
if( item != MENU_EXIT )
menu_item_getinfo ( menu , item , _access , ItemData , charsmax ( ItemData ), _ , _ , callback );
if( str_to_num ( ItemData ))
g_iVoteCount ++;
g_bIsVoted [ id ] = true ;
>
>
return PLUGIN_HANDLED ;
>
public VoteBanResults ()
show_menu ( 0 , 0 , «^n» , 1 ); // визуально закрываем меню.
if( is_user_connected ( g_iVictim ))
new iVoteBanMinVotes = floatround ( BAN_RATIO * float ( g_iVoteBanPlayersNum ));
new name [ 32 ]; get_user_name ( g_iVictim , name , charsmax ( name ));
if( g_iVoteCount >= iVoteBanMinVotes )
#if VB_TYPE == 0
server_cmd ( «kick #%d ^» % s ^ «» , get_user_userid ( g_iVictim ), g_sBanReason );
#endif
#if VB_TYPE == 1
server_cmd ( «amx_ban %d #%d ^» % s ^ «» , VB_BANTIME , get_user_userid ( g_iVictim ), g_sBanReason );
#endif
#if VB_TYPE == 2
server_cmd ( «amx_superban #%d %d ^» % s ^ «» , get_user_userid ( g_iVictim ), VB_BANTIME , g_sBanReason );
#endif
ChatColor ( 0 , «^1[^4Lite VoteBan^1] ^4Голосование завершено! Игрок ^3%s ^1был ^3забанен^4! ^1[^4Голосов: ^3%d ^1| ^4Необходимо: ^3%d^1]» , name , g_iVoteCount , iVoteBanMinVotes );
log_amx ( «VoteBan SUCCESS. Player ^» % s ^ » [Reason: ^» % s ^ «][Vote: %d | MinVote: %d]» , name , g_sBanReason , g_iVoteCount , iVoteBanMinVotes );
>
else
ChatColor ( 0 , «^1[^4Lite VoteBan^1] ^4Голосование завершено! Игрок ^3%s ^1не был ^3забанен^4! ^1[^4Голосов: ^3%d ^1| ^4Необходимо: ^3%d^1]» , name , g_iVoteCount , iVoteBanMinVotes );
log_amx ( «VoteBan FAILED. Player ^» % s ^ » [Reason: ^» % s ^ «][Vote: %d | MinVote: %d]» , name , g_sBanReason , g_iVoteCount , iVoteBanMinVotes );
>
>
else ChatColor ( g_iInsider , «^1[^4Lite VoteBan^1] ^4Наказать не удалось. Игрок покинул сервер :(» );
g_iInsider = g_iVictim = 0 ;
>
stock ChatColor (const id , const szMessage [], any . )
static pnum , players [ 32 ], szMsg [ 190 ], IdMsg ;
vformat ( szMsg , charsmax ( szMsg ), szMessage , 3 );
if(! IdMsg ) IdMsg = get_user_msgid ( «SayText» );
if( id )
if(! is_user_connected ( id )) return 1 ;
players [ 0 ] = id ;
pnum = 1 ;
>
else get_players ( players , pnum , «ch» );
for(new i ; i pnum ; i ++)
message_begin ( MSG_ONE , IdMsg , . player = players [ i ]);
write_byte ( players [ i ]);
write_string ( szMsg );
message_end ();
>
return 1 ;
>
источник