Плагин на иммунитет админа
#1
alcatraz_ua_
Отправлено 20 Июль 2014 — 13:24
У меня админка root, я прописываю себе sv_cheats 1 далее r_drawothermodels 2 (эт как бы вх от css)
Стоит античит: Kigen’s Anti-Cheat (1.2.2.9.8.4) for CSS v.34
Проходит около 3-4 мин, он меня банит за читы.
Как сделать мне имуннитет?
#2
wanek17
Отправлено 20 Июль 2014 — 14:38
убери античит и будет тебе счастье
#3
alcatraz_ua_
Отправлено 20 Июль 2014 — 14:56
убери античит и будет тебе счастье
Думаю мог бы догадаться что я не хочу его удалять.
#4
LORD
Отправлено 21 Июль 2014 — 18:34
alcatraz_ua_+ВХ=БОТ ! ! !
#5
alcatraz_ua_
Отправлено 22 Июль 2014 — 1:52
Мне это нужно для того чтобы следить за ВХ (плохими людьми)
#6
wait-angel
Отправлено 22 Июль 2014 — 17:51
Как вариант, попробуй изменить значение переменной kac_cvars на 1. Проверять cvar все, кроме sv_cheats.
#7
LORD
Отправлено 26 Июль 2014 — 1:06
Мне это нужно для того чтобы следить за ВХ (плохими людьми)
Ну-да конечно кому ты расказываешь,,,БОШМАК!!!
#8
ruskydubl
Отправлено 26 Июль 2014 — 10:10
У меня админка root, я прописываю себе sv_cheats 1 далее r_drawothermodels 2 (эт как бы вх от css)
Стоит античит: Kigen’s Anti-Cheat (1.2.2.9.8.4) for CSS v.34Проходит около 3-4 мин, он меня банит за читы.
Как сделать мне имуннитет?
Ставишь имунитет 99 и флаг z <- главная админка
Ставишь имунитет 97 и все флаги кроме z <- обычный админ
#9
alcatraz_ua_
Отправлено 26 Июль 2014 — 10:55
Ну-да конечно кому ты расказываешь,,,БОШМАК!!!
Лол, зачем мне тогда это все. Если бы я хотел поиграть в ВХ я скачал бы и не парился! Тольк флудишь
Ставишь имунитет 99 и флаг z <- главная админка
Ставишь имунитет 97 и все флаги кроме z <- обычный админ
у меня 99:z и не помогает, если дать все флаги то считай что гл.
#10
666fox666
Отправлено 26 Июль 2014 — 11:09
Лол, зачем мне тогда это все. Если бы я хотел поиграть в ВХ я скачал бы и не парился! Тольк флудишь
у меня 99:z и не помогает, если дать все флаги то считай что гл.
Стоп. А что мешает поставить плагин adminesp? В случае если и с ним будет банить, смените квар в античите (написано ранее)
#11
LORD
Отправлено 26 Июль 2014 — 12:10
Лол, зачем мне тогда это все. Если бы я хотел поиграть в ВХ я скачал бы и не парился! Тольк флудишь
у меня 99:z и не помогает, если дать все флаги то считай что гл.
НУ конечно если качнёшь то можно в скором времени распрощятся с акком,,,а серверный чит VAC не ловит,,,НУБАС,,,есле ты хочешь следить за ВХашниками то установи из панели Cheater Buster Tools (ранее Admin ESP) v.1.2.1 и не используй для угара,,а то я сообщу куда надо
#1
d3pt1kwOw
d3pt1kwOw
- Пользователь
- 23 сообщений
Новичок
Отправлено 28 Декабрь 2011 — 19:19
Допустим я главный админ сервера, назначаю других админов, можно ли сделать так, чтобы я мог slay`ить kick`ать других админов, а они друг друга нет… Можно ли вообще сделать такие права админа? :ugeek:
#2
zfvc
Отправлено 28 Декабрь 2011 — 19:25
Читаем файл users.ini там есть доступы к команде «amx_slap» и «amx_slay»
; Users configuration file
; File location: $moddir/addons/amxmodx/configs/users.ini
; Line starting with ; is a comment
; Access flags:
Флаги управления админкой
; a — immunity (can’t be kicked/baned/slayed/slaped and affected by other commmands)
иммунитет (против игрока не могут быть использованы команды: kick/ban/slay/slap и т.д)
; b — reservation (can join on reserved slots)
резервация (игрок сможет пользоваться резервным слотом)
; c — amx_kick command
доступ к команде amx_kick
; d — amx_ban and amx_unban commands
доступ к команде amx_ban и amx_unban
; e — amx_slay and amx_slap commands
доступ к команде amx_slay и amx_slap
; f — amx_map command
доступ к команде amx_map
; g — amx_cvar command (not all cvars will be available)
доступ к команде amx_cvar (не все переменные могут быть доступны)
; h — amx_cfg command
доступ к команде amx_cfg
; i — amx_chat and other chat commands
доступ к команде amx_csay и другим чат командам
; j — amx_vote and other vote commands
доступ к команде amx_vote и другим командам голосования
; k — access to sv_password cvar (by amx_cvar command)
доступ к переменной sv_password (через команду amx_cvar)
; l — access to amx_rcon command and rcon_password cvar (by amx_cvar command)
доступ к переменной amx_rcon и rcon_password (через команду amx_cvar)
; m — custom level A (for additional plugins)
произвольный уровень A (если вы используете нестандартные амх плагины)
; n — custom level B
произвольный уровень B
; o — custom level C
произвольный уровень C
; p — custom level D
произвольный уровень D
; q — custom level E
произвольный уровень E
; r — custom level F
произвольный уровень F
; s — custom level G
произвольный уровень G
; t — custom level H
произвольный уровень H
; u — menu access
доступ к графическому меню управления (amxmodmenu)
; z — user (no admin)
пользователь (не админ)
; Account flags:
Флаги доступа к админке
; a — disconnect player on invalid password
не пускать игрока на сервер с неправильно введенным паролем
; b — clan tag
регистрация клан тега
; c — this is steamid/wonid
админ зайдет на сервер только со значениями authid/wonid
; d — this is ip
админ заходит только с этого ip адресса
; e — password is not checked (only name/ip/steamid needed)
пароль не проверяется (необходимо только совпадение name/ip/wonid)
; k — name or tag is case sensitive. eg: if you set it so the name «Ham»
; is protected and case sensitive (flags «k» only), then anybody
; can use the names «haM», «HAM», «ham», etc, but not «Ham»
флаг чуствительности ввода ника к регистру
#3
4ak. 😀
Отправлено 28 Декабрь 2011 — 19:25
Допустим я главный админ сервера, назначаю других админов, можно ли сделать так, чтобы я мог slay`ить kick`ать других админов, а они друг друга нет… Можно ли вообще сделать такие права админа? :ugeek:
Да «cdefijmu» поставь эти права у других админов а себе стандартные оставь (все)
#4
d3pt1kwOw
d3pt1kwOw
- Пользователь
- 23 сообщений
Новичок
Отправлено 28 Декабрь 2011 — 19:26
Спасиюо
#1
SD_
Отправлено 01 Март 2012 — 21:30
Эт ребят возниктакой вопрос как сделать иммунитет
«Защита от Администратора равного или низшего Иммунитета»
вообщем попробывал SourceMod » sourcemod.cfg воставил
sm_immunity_mode
Как SourceMod должен проверять уровнь иммунитета администраторов.
ТАК «Защита от Администратора равного или низшего Иммунитета»
в admins_simple.ini тоже прописал иммунитет больше и в SourceBans так же себе больше
НОвсе ровно ребята могут меня банить и тд кто может подсказать как настроить буду благодарин думаю не только мне это надо
#2
SD_
Отправлено 02 Март 2012 — 7:14
#3
lilbeam
Отправлено 02 Март 2012 — 7:57
Какой иммунитет ставите себе? другим админам? стоит ли у вас SourceBans и прописаны ли там админы?
#4
SD_
Отправлено 02 Март 2012 — 8:00
себе ставлю 99 другим админам по 70 -80 SourceBans Прописал себе так же иммунитет 99 у них 70-80
#5
lilbeam
Отправлено 02 Март 2012 — 8:03
себе ставлю 99 другим админам по 70 -80 SourceBans Прописал себе так же иммунитет 99 у них 70-80
в таком случае они не смогут вас забанить.. а лишь админы с 80 иммуном смогут банить иммунов 70 (p.s Админы имеют доступ к системе банов? и у них есть привилегии на бан??? тогда в этом дело.. через сайт меня могли тоже забанить)
#6
SD_
Отправлено 02 Март 2012 — 8:10
да эт я понял но у меня проблемма админы все ровно банят с 70 иммунитетом
#7
lilbeam
Отправлено 02 Март 2012 — 8:15
да эт я понял но у меня проблемма админы все ровно банят с 70 иммунитетом
предположений в данном случае нет.. возможно что-то с сурсмодом у вас и не работает этот квар.
#8
SD_
Отправлено 02 Март 2012 — 8:43
SourceBans надо менять что бы был иммунитет в самом SourceBans имею введу что надо и там знач ставить иммунитет
#9
Komsomol
Komsomol
- Пользователь
- 45 сообщений
Новичок
Отправлено 02 Март 2012 — 10:46
в sourcemod.cfg поставь sm_immunity_mode 3
#10
BombermaG
BombermaG
- Администратор
- 991 сообщений
Администратор
Отправлено 02 Март 2012 — 11:32
У админов не должно быть выставлено флага z.
#11
kiryaha77
Отправлено 02 Март 2012 — 16:02
У админов не должно быть выставлено флага z.
Ну вот хоть один дельный совет!!! А то все сюда сурсбанс приплетают…( а если не установлен сурсбанс,то что же имунитет нельзя сделать???Да даже если сурсбанс и стоит,а админы там не прописаны…,короче бред..)..И ещё вопрос…А что даёт прописка админов в админ.цфг ??? Расскажите и скиньте пожалуйста наглядно посмотреть ,как там правильно админов прописать…
#12
SD_
Отправлено 02 Март 2012 — 18:17
Ок тока у себя поставлю фраг Z
#13
BombermaG
BombermaG
- Администратор
- 991 сообщений
Администратор
Отправлено 02 Март 2012 — 18:56
У админов не должно быть выставлено флага z.
Ну вот хоть один дельный совет!!! А то все сюда сурсбанс приплетают…( а если не установлен сурсбанс,то что же имунитет нельзя сделать???Да даже если сурсбанс и стоит,а админы там не прописаны…,короче бред..)..И ещё вопрос…А что даёт прописка админов в админ.цфг ??? Расскажите и скиньте пожалуйста наглядно посмотреть ,как там правильно админов прописать…
Просто прописываете админам любые другие флаги, но только не z.
И пишите, пожалуйста, внятнее.
#14
SD_
Отправлено 02 Март 2012 — 19:10
У админов не должно быть выставлено флага z.
да спс как ты сказал сделал пошло эт ребят хочу задать вопрос ещё Но не по этой теме Можите мне дать плагин который Атомат кикает с большим пингом с ПУ ставил что то не кикало если есть наз его и ПУ и настроику
#15
Komsomol
Komsomol
- Пользователь
- 45 сообщений
Новичок
Отправлено 03 Март 2012 — 8:22
#include < reapi >
#if AMXX_VERSION_NUM < 183
#include < colorchat >
#define client_disconnected client_disconnect
#define MAX_PLAYERS 32
#endif
#define IsPlayer(%0) (0 < %0 < 33)
//■■■■■■■■■■■■■■■■■■■■■■■ CONFIG START ■■■■■■■■■■■■■■■■■■■■■■■//
#define AWP_ONLINE //Закоментируйте, если не нужен функционал отключения авп при низком онлайне
#define AWP_LIMIT //Закоментируйте, если не нужен функционал ограничения авп по командам
#define AWP_ROUND_LIMIT //Закоментируйте, если не нужен функционал ограничения авп по раундам
// ^4 — зелёный | ^3 — цвет тимы (КТ — синий | Т — красный | SPEC — серый) | ^1 — жёлтый
#define MSG_PREFIX «^1[^4AWP_ONLINE^1]»
#define MSG_LOWONLINE «У вас отобрано^4 AWP^1. Причина:^3 Низкий онлайн игроков»
#define MSG_LIMIT «У вас отобрано^4 AWP^1. Причина:^3 Превышен лимит на команду»
#define MSG_ROUND «%s У вас отобрано^4 AWP^1. Причина:^3 подождите %d %s»
//#define ALLPLAYERS
/*
Закоментируйте, чтобы для проверки на онлайн брались только КТ и ТТ(ботов, хлтв и спектаров считать не будет).
Пример:
Допустим на сервере 5 ботов и 2 человека 1 хлтв.
Дефайн закоментирован: Посчитает, что на сервере 2 из Максимально возможных игроков.
Дефайн раскоментирован: Посчитает, что на сервере 8 игроков из Максимально возможных игроков (5 ботов + 2 человека + 1 хлтв).
Отбирать авп будет ТОЛЬКО У ЛЮДЕЙ в любом случае.
*/
#define FLAG ADMIN_IMMUNITY //Флаг для иммунитета от лимита и блока на раунды
#define RETURN_MONEY //Возвращать деньги при отборе авп в конце раунда из-за низкого онлайна? (Закоментируйте, если не хотите, чтобы возвращало деньги)
#if defined RETURN_MONEY
#define MONEY_AWP 4750 //Сколько денег возвращать?
#endif
//#define PERCENT_PLAYERS
/*
Разкоменитруйте, если хотите чтобы лимит зависил от процента игроков [I am chetko ob’yasnyat’]
Например: Онлайн = 10, Процент в кваре(awp_limit_max) = 20
10/100*20 = 2 авп на тиму (2 у терров и 2 у кт)
*/
//#define NOEND //Если разкоментировано, то не будет отбирать АВП в конце раунда из-за низкого онлайна. [Если онлайн ниже чем указан в кваре и человек сам дропнет авп или потеряет ее, то подобрать заного не сможет]
//■■■■■■■■■■■■■■■■■■■■■■■■ CONFIG END ■■■■■■■■■■■■■■■■■■■■■■■■//
#if !defined AWP_LIMIT && defined PERCENT_PLAYERS
#undef PERCENT_PLAYERS
#endif
#if !defined AWP_ONLINE && !defined NOEND
#define NOEND
#endif
enum ECVARS {
CVAR_ONLINE,
CVAR_LIMIT_AWP_STATUS,
CVAR_LIMIT_MAX_AWP,
CVAR_LIMIT_IMMUN,
CVAR_ROUNDS_LIMIT
};
enum EBLOCKS {
BL_RND,
BL_LIMIT,
BL_ONLINE
};
enum {
AWP_DROP = 0,
AWP_NONE,
AWP_BUY,
AWP_PICK_UP
};
new gCvar[ECVARS], sCvars[ECVARS], COST_AWP, gAwp[MAX_PLAYERS + 1], gCount;
#if defined AWP_LIMIT || defined AWP_ROUND_LIMIT
new TeamName: gTeam[MAX_PLAYERS + 1];
#endif
#if defined AWP_LIMIT
new sAwp[TeamName: TEAM_SPECTATOR];
#endif
#if defined AWP_ROUND_LIMIT
new gBlock[MAX_PLAYERS + 1], gRound;
#endif
#if defined PERCENT_PLAYERS
new gLimit;
#endif
public plugin_precache(){
register_plugin(«[ReAPI] AWPoff», «1.4.3», «PAffAEJIkA :3»);
#if !defined AWP_LIMIT && !defined AWP_ROUND_LIMIT && !defined AWP_ONLINE
set_fail_state(«xmm, ti ubral ves’ funkcional plagina, no postavil ego na server… ti molodec!»);
#endif
#if defined AWP_ONLINE
gCvar[CVAR_ONLINE] = register_cvar(«awp_players_low», «10»); //Если онлайн ниже указнного в кваре, в конце раунда у всех отберет авп, и запретит ее. (Что бы отключить поставьте 0) [стандартно: при онлайне меньше 8]
#endif
#if defined AWP_LIMIT
gCvar[CVAR_LIMIT_AWP_STATUS] = register_cvar(«awp_limit», «1»); //Включить|Выключить лимит авп [Стандартно: включен]
gCvar[CVAR_LIMIT_MAX_AWP] = register_cvar(«awp_limit_max», «3»); //Сколько АВП разрешено при лимите [Стандартно по 2 авп на команду] | Если раскоментирован PERCENT_PLAYERS, то сюда вписывать нужный процент
gCvar[CVAR_LIMIT_IMMUN] = register_cvar(«awp_limit_immun», «3»); //Иммунитет для админов. [0 — Выкл | 1 — Иммунитет от лимита кол-ва АВП | 2 — Иммунитет от блока АВП по раундам | 3 — Имумунитет от 1 и 2]
#endif
#if defined AWP_ROUND_LIMIT
gCvar[CVAR_ROUNDS_LIMIT] = register_cvar(«awp_limit_round», «5»); //На сколько раундов блочить?
#endif
}
public plugin_init(){
new mapname[32];
get_mapname(mapname, charsmax(mapname));
static maps[][] = { «awp», «aim», «35hp» };
for(new i; i < sizeof maps; i++){
if(containi(mapname, maps[i]) != -1){
pause(«ad»);
return;
}
}
COST_AWP = rg_get_weapon_info(WEAPON_AWP, WI_COST);
RegisterHookChain(RG_CBasePlayer_AddPlayerItem, «AddItem»);
RegisterHookChain(RG_BuyWeaponByWeaponID, «BuyWeaponByWeaponID»);
RegisterHookChain(RG_CBasePlayer_RemovePlayerItem, «RemoveItem»);
register_concmd(«awpoff_reload», «load_cvars»);
register_event(«HLTV», «EventRoundStart», «a», «1=0», «2=0»);
register_logevent(«EventRestartRound», 2, «1&Restart_Round_»);
#if !defined NOEND
register_logevent(«EventRoundEnd», 2, «1=Round_End»);
#endif
}
public plugin_cfg(){
#if AMXX_VERSION_NUM < 183
server_exec();
#endif
load_cvars(0);
}
public load_cvars(id){
#if defined AWP_ONLINE
sCvars[CVAR_ONLINE] = get_pcvar_num(gCvar[CVAR_ONLINE]);
#endif
#if defined AWP_LIMIT
sCvars[CVAR_LIMIT_AWP_STATUS] = get_pcvar_num(gCvar[CVAR_LIMIT_AWP_STATUS]);
sCvars[CVAR_LIMIT_MAX_AWP] = get_pcvar_num(gCvar[CVAR_LIMIT_MAX_AWP]);
sCvars[CVAR_LIMIT_IMMUN] = get_pcvar_num(gCvar[CVAR_LIMIT_IMMUN]);
#endif
#if defined AWP_ROUND_LIMIT
sCvars[CVAR_ROUNDS_LIMIT] = get_pcvar_num(gCvar[CVAR_ROUNDS_LIMIT]);
#endif
if(IsPlayer(id))
client_print(id, print_center, «[AWPoff] Cvars have been reloaded!»);
}
public client_disconnected(id) if(IsPlayer(id)) minus_awp(id);
public EventRoundStart(){
#if defined AWP_ROUND_LIMIT
gRound ++;
#endif
gCount = 0;
static pl[32];
get_pl(pl, gCount);
#if defined PERCENT_PLAYERS
const MAX_PERCENT = 100;
gLimit = gCount * sCvars[CVAR_LIMIT_MAX_AWP] / MAX_PERCENT;
#endif
#if defined AWP_LIMIT
sAwp[TEAM_CT] = 0;
sAwp[TEAM_TERRORIST] = 0;
#endif
#if defined AWP_LIMIT || defined AWP_ROUND_LIMIT
for(new i,id; i < gCount; i ++){
id = pl[i];
gTeam[id] = get_member(id, m_iTeam);
#if defined ALLPLAYERS
if(!(TEAM_UNASSIGNED < gTeam[id] < TEAM_SPECTATOR) || !is_user_valid(id))
continue;
#endif
switch(gAwp[id]){
case AWP_NONE: continue;
#if defined AWP_ROUND_LIMIT
case AWP_DROP:{
gAwp[id] = AWP_NONE;
gBlock[id] = gRound + sCvars[CVAR_ROUNDS_LIMIT];
}
#endif
#if defined AWP_LIMIT
default: sAwp[gTeam[id]] ++;
#endif
}
}
#endif
}
public EventRestartRound(){
#if defined AWP_LIMIT
sAwp[TEAM_CT] = 0;
sAwp[TEAM_TERRORIST] = 0;
#endif
#if defined AWP_ROUND_LIMIT
gRound = 0;
arrayset(gBlock, false, sizeof gBlock);
#endif
arrayset(gAwp, AWP_NONE, sizeof gAwp);
}
#if !defined NOEND
public EventRoundEnd(){
new players[32], count;
get_pl(players, count);
if(count >= sCvars[CVAR_ONLINE])
return PLUGIN_CONTINUE;
for(new i = 0; i < count; i ++){
#if defined ALLPLAYERS
if(!is_user_valid(players[i]))
continue;
#endif
return_awp(players[i]);
}
EventRestartRound();
return PLUGIN_CONTINUE;
}
#endif
stock get_pl(players[32], &count){
#if defined ALLPLAYERS
get_players(players, count);
#else
get_players(players, count, «ch»);
new players1[32], cnt = 0;
for(new i; i < count; i ++){
if(TEAM_UNASSIGNED < get_member(players[i], m_iTeam) < TEAM_SPECTATOR)
players1[cnt ++] = players[i];
}
players = players1;
count = cnt;
#endif
}
stock return_awp(id){
if(gAwp[id] <= AWP_NONE)
return;
rg_remove_item(id, «weapon_awp»);
#if defined RETURN_MONEY
if(gAwp[id] == AWP_BUY)
rg_add_account(id, MONEY_AWP);
#endif
client_print_color(id, false, «%s %s», MSG_PREFIX, MSG_LOWONLINE);
}
public BuyWeaponByWeaponID(id, WeaponIdType:weaponID){
if(weaponID != WEAPON_AWP || !is_user_valid(id) || gAwp[id] > AWP_NONE)
return HC_CONTINUE;
new gMoney = get_member(id, m_iAccount);
if(gMoney < COST_AWP)
return HC_CONTINUE;
if(check_awp(id)){
gAwp[id] = AWP_BUY;
return HC_CONTINUE;
}
SetHookChainReturn(ATYPE_INTEGER, true);
return HC_SUPERCEDE;
}
public AddItem(id, pItem){
if(get_member(pItem, m_iId) != WEAPON_AWP || gAwp[id] > AWP_NONE || !is_user_valid(id))
return HC_CONTINUE;
if(check_awp(id)){
gAwp[id] = AWP_PICK_UP;
return HC_CONTINUE;
}
SetHookChainReturn(ATYPE_INTEGER, false);
return HC_SUPERCEDE;
}
//Native’s
public plugin_natives()
register_native(«awpoff_check», «check_native», true);
public check_native(id, chat){
#if defined AWP_LIMIT
#if defined ALLPLAYERS
if(!(TEAM_UNASSIGNED < gTeam[id] < TEAM_SPECTATOR))
return false;
#endif
return check_awp(id, true, chat);
#else
return check_awp(id, chat);
#endif
}
//Native’s
#if defined AWP_LIMIT
bool: check_awp(id, check = false, chat = true)
#else
bool: check_awp(id, chat = true)
#endif
{
new EBLOCKS:block;
#if defined AWP_ROUND_LIMIT
if(gBlock[id] > gRound)
block = BL_RND;
else
#endif
#if defined AWP_ONLINE
if(gCount < sCvars[CVAR_ONLINE])
block = BL_ONLINE;
else
#endif
#if defined AWP_LIMIT
if(sCvars[CVAR_LIMIT_AWP_STATUS]){
if(sCvars[CVAR_LIMIT_IMMUN] && sCvars[CVAR_LIMIT_IMMUN] != 2 && get_user_flags(id) & FLAG)
return true;
#if defined PERCENT_PLAYERS
if(sAwp[gTeam[id]] < gLimit)
#else
if(sAwp[gTeam[id]] < sCvars[CVAR_LIMIT_MAX_AWP])
#endif
{
if(!check)
sAwp[gTeam[id]] ++;
return true;
}else
block = BL_LIMIT;
}else
#endif
return true;
if(chat){ //Слишком туп, чтобы придумать какой нибудь другой вариант с чатом.
switch(block){
#if defined AWP_ROUND_LIMIT
case BL_RND:{
new c = gBlock[id] — gRound;
client_print_color(id, false, MSG_ROUND, MSG_PREFIX, c, get_text(c));
}
#endif
#if defined AWP_ONLINE
case BL_ONLINE: client_print_color(id, false, «%s %s», MSG_PREFIX, MSG_LOWONLINE);
#endif
#if defined AWP_LIMIT
case BL_LIMIT: client_print_color(id, false, «%s %s», MSG_PREFIX, MSG_LIMIT);
#endif
}
}
return false;
}
public RemoveItem(id, pItem){
if(get_member(pItem, m_iId) == WEAPON_AWP)
minus_awp(id);
}
stock minus_awp(id){
if(!is_user_valid(id) || gAwp[id] <= AWP_NONE)
return;
#if defined AWP_LIMIT || defined AWP_ROUND_LIMIT
new flag = get_user_flags(id) & FLAG;
#endif
#if defined AWP_ROUND_LIMIT
gAwp[id] = (flag && sCvars[CVAR_LIMIT_IMMUN] > 1) ? AWP_NONE : AWP_DROP;
#else
gAwp[id] = AWP_NONE;
#endif
#if defined AWP_LIMIT
if(!sCvars[CVAR_LIMIT_AWP_STATUS])
return;
if(sCvars[CVAR_LIMIT_IMMUN] && sCvars[CVAR_LIMIT_IMMUN] != 2 && flag)
return;
sAwp[gTeam[id]] —;
#endif
}
stock bool: is_user_valid(id){
if(is_user_bot(id) || is_user_hltv(id))
return false;
return true;
}
stock get_text(tm){
new ost = tm % 10, ost2 = tm % 100, buff[16];
if(ost2 >= 5 && ost2 <= 20)
format(buff, charsmax(buff), «раундов»);
else{
switch(ost){
case 1: format(buff, charsmax(buff), «раунд»);
case 2..4: format(buff, charsmax(buff), «раунда»);
case 0, 5..9: format(buff, charsmax(buff), «раундов»);
}
}
return buff;
}