Как прописать иммунитет в кс
#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;
}
iphone532776 | 2.2.2016, 18:16 Сообщение |
Стаж: 5 лет 6 месяцев Сообщений: 66 | Добрый вечер. У меня вопрос по поводу администрирования на сервере. Как сделать так что бы я (Гл.Админ) мог кикать, банить итд других админов. Но при этом что бы обычные админы не могли друг друга банить кикать итд… ??? |
|
energydance | 2.2.2016, 18:22 Сообщение |
Стаж: 5 лет Сообщений: 2633 | Цитата(iphone532776 @ 2.2.2016, 19:11) Добрый вечер. У меня вопрос по поводу администрирования на сервере. Как сделать так что бы я (Гл.Админ) мог кикать, банить итд других админов. Но при этом что бы обычные админы не могли друг друга банить кикать итд… ??? Убери у всех админов флаг RCON |
|
|
iphone532776 | 2.2.2016, 18:25 Сообщение |
Стаж: 5 лет 6 месяцев Сообщений: 66 |
|
|
|
meloman | 2.2.2016, 18:28 Сообщение |
Стаж: 4 года 9 месяцев Сообщений: 746 | |
| Поблагодарили 1 раз
|
energydance | 2.2.2016, 18:32 Сообщение |
Стаж: 5 лет Сообщений: 2633 |
не нужно людей вводить в заблуждение Каждый раз одни и те же слова , обновись )) |
| Поблагодарили 1 раз
|
meloman | 2.2.2016, 18:35 Сообщение |
Стаж: 4 года 9 месяцев Сообщений: 746 |
|
| Поблагодарили 1 раз
|
iphone532776 | 2.2.2016, 18:36 Сообщение |
Стаж: 5 лет 6 месяцев Сообщений: 66 |
|
|
|
georgeml | 2.2.2016, 18:36 Сообщение |
Стаж: 6 лет 5 месяцев Сообщений: 1442 |
Отредактировал: georgeml, — 2.2.2016, 18:37 |
|
|
meloman | 2.2.2016, 18:41 Сообщение |
Стаж: 4 года 9 месяцев Сообщений: 746 |
Цитата Как сделать так что бы я (Гл.Админ) мог кикать, банить итд других админов. Но при этом что бы обычные админы не могли друг друга банить кикать итд… ??? я скинул ссылку где уже выложили готовый переделанный плагин разве этого не достаточно? |
|
|
georgeml | 2.2.2016, 18:46 Сообщение |
Стаж: 6 лет 5 месяцев Сообщений: 1442 |
Цитата И еще вопрос сейчас админы с флагом а могут банить, кикать друг друга. как сделать что бы не могли ??? |
| Поблагодарили 1 раз
|
meloman | 2.2.2016, 18:48 Сообщение |
Стаж: 4 года 9 месяцев Сообщений: 746 | Цитата(iphone532776 @ 2.2.2016, 21:32)
значит вы что то не так сделали что вы меняли говорите =) |
|
|
georgeml | 2.2.2016, 18:50 Сообщение |
Стаж: 6 лет 5 месяцев Сообщений: 1442 |
|
|
|
meloman | 2.2.2016, 18:52 Сообщение |
Стаж: 4 года 9 месяцев Сообщений: 746 | Цитата(iphone532776 @ 2.2.2016, 21:32)
и да, это у вас после установки того плагина? |
|
|
iphone532776 | 2.2.2016, 18:55 Сообщение |
Стаж: 5 лет 6 месяцев Сообщений: 66 |
|
|
|
meloman | 2.2.2016, 18:57 Сообщение |
Стаж: 4 года 9 месяцев Сообщений: 746 | Цитата(iphone532776 @ 2.2.2016, 21:50)
ну так говорите по подробнее что вы ставили что редактировали |
|
|
qvadro | 2.2.2016, 19:09 Сообщение |
Стаж: 10 лет Сообщений: 358 |
Код: /* Вопрос по флагами администратора (Пост #888731) вынес линк из под спойлера чтоыб читабельным cnfk Отредактировал: qvadro, — 2.2.2016, 19:19 |
|
|
пользователей и 2 гостей читают эту тему:
Всем привет! В самом начале статьи хочу поздравить вас с открытием своего собственного сервера, либо получением должности главного администратора на каком-либо сервере. Ведь если вы читаете данный материал, то вас действительно заинтересовал вопрос – как прописать админку в Контр-страйк 1.6, а значит у вас либо есть свой сервер, либо доступ к управлению сервером. Следовательно, первое, что надо сделать – это наделить себя правами администратора на сервере, а также выдать админки нескольким надежным проверенным игрокам, а лучше друзьям, так как выдавать админ-права кому попало не следует.
В данной статье мы не будем рассматривать способы выдачи прав администратора при помощи соответствующей панели управления, т.к. такая панель есть не у каждого сервера, а если и есть, то на одном сервере она может быть одной, а на другом сервере – совершенно другой.
Когда можно выдать админку.
Нелишним будет сразу отметить, что для выдачи админок необходимо наличие на вашем сервере установленного amxmodx. Узнать, есть ли данный компонент на вашем сервере, довольно легко – надо открыть папку cstrike, и если в ней располагается папка addons, то значит amxmodx установлен, и вы можете продолжать читать данную статью.
Права доступа и типы авторизации администратора (флаги)
Для начала, вам необходимо разобраться в таком понятии, как флаги, которые означают права для какого-либо администратора, которыми он может пользоваться. Вы можете как добавлять, так и отнимать те или иные права у администраторов.
Все доступные флаги администраторов можно непосредственно посмотреть в файле users.ini, который располагается по адресу: cstrike/addons/amxmodx/configs. На данный момент количество поддерживаемых флагов достаточно большое, и на разных серверах они могут отличаться. Ниже приведен примерный перечень флагов прав доступа.
Примерный перечень флагов прав доступа:
a – нельзя кикнуть, забанить, убить, ударить игрока и т.д. (у него будет иммунитет на эти команды). b – резервный слот на сервере (можно будет зайти на сервер даже если он переполнен). c – доступ к amx_kick (даёт право кикать). d – доступ к amx_ban и amx_unban (можно забанить и разбанить игрока). e – доступ к amx_slay и amx_slap (убить и ударить игрока). f – доступ к amx_map (возможность сменить карту). g – доступ к amx_cvar (консольные команды сервера, настройки). h – доступ к amx_cfg (редактирование конфига ‘’cfg’’ сервера) i – доступ к amx_chat (чат команды, включая amx_say, amx_csay, amx_tsay и amx_psay). j – доступ к amx_vote (возможность запускать голосование). k – доступ к sv_password (смена пароля, доступно через amx_cvar). l – доступ к amx_rcon и rcon_password командам (доступно через amx_cvar). m – доступ к уровню A (для дополнительных плагинов). n – доступ к уровню B. o – доступ к уровню C. p – доступ к уровню D. q – доступ к уровню E. r – доступ к уровню F. s – доступ к уровню G. t – доступ к уровню H. u – доступ к админ-меню (amxmodmenu). z – простой игрок (используется для установки пароля на ник) |
Также для админов предусмотрены типы авторизации. Эти флаги определяют, как AMXModX пытается авторизировать администраторов.
Перечень флагов типа авторизации:
a – кикать игрока, если пароль к админке не подходит.
b – клан тег.
c – если админка по Steam ID.
d – если админка по IP-Адресу.
e – пароль не проверяется на подлинность (используется для IP-адрес и Steam ID).
Итак, разобравшись с флагами, перейдем непосредственно к выдаче админок. Найдите файл users.ini, который дежит в папке по адресу cstrike/addons/amxmodx/configs/. В нем вы будете прописывать админ-права.
Как обычно, в КС 1.6, все можно сделать несколькими способами, и выдача админок не исключение. Админ-права можно выдать по трем различным способам идентификации игрока: нику, Steam ID, IP.
Админка по нику.
Является самым простым способом, не требующим поиска дополнительной информации, ведь достаточно знать только ник будущего админа.
Откройте users.ini любым текстовым редактором, например, «Блокнотом», пропишите в самом низу следующую строку вида: «nickname» «password» «abcdefghijklmnopqrstu» «a», где:
«nickname» – ник администратора,
«password» – пароль администратора (придумайте свой),
«abcdefghijklmnopqrstu» – флаги доступа (выдать только необходимые),
«a» – тип авторизации — пароль (админа будет кикать с сервера, при неверном пароле).
Затем сохраните и закройте файл users.ini, запустите игру, откройте консоль, нажав клавишу «Ё» («~» в английской раскладке), пропишите команду setinfo «_pw» «password» и нажмите кнопку «Подтвердить».
Минус админки по нику: нельзя менять ник – под другим ником админка не будет работать.
Админка по Steam ID.
Выдать админ-права по данному признаку немного сложнее, так как вам необходимо знать свой Steam ID, либо Steam ID будущего администратора. О том, как узнать свой Steam ID, вы можете прочитать в материале Как узнать свой Steam ID в CS 1.6.
Узнав Steam ID, откройте users.ini любым текстовым редактором, например, «Блокнотом», пропишите в самом низу следующую строку вида: «STEAM_0:0:123456789» «password» «abcdefghijklmnopqrstu» «ca», где:
«STEAM_0:0:123456789» — надо заменить на Steam ID будущего администратора,
«password» – пароль администратора (придумайте свой). Пароль необходим для того, чтобы ушлые игроки не украли админку, подделав Steam ID.
«abcdefghijklmnopqrstu» – флаги доступа (выдать только необходимые),
«сa» – тип авторизации (админа будет кикать с сервера, при неверном пароле).
Далее сохраните и закройте файл users.ini, запустите игру, откройте консоль, нажав клавишу «Ё» («~» в английской раскладке), пропишите команду setinfo «_pw» «password» и нажмите кнопку «Подтвердить».
Минус админки по Steam ID: в редких случаях админка может слететь при переустановке CS 1.6.
Админка по IP-адресу.
Для того, чтобы выдать админку по айпи, нужно сначала выяснить, какой у вас айпи адрес или у будущего админа. IP-адрес бывает двух типов: статический — постоянный и динамический — меняющийся при переподключении к интернету.
Чтобы узнать свой (или будущего админа) IP-адрес, нужно зайти на сайт https://ping.eu/, где будет показан ваш айпи, затем необходимо переподключиться к Интернету и в новой вкладке браузера повторно зайти на https://ping.eu/. Если IP-адрес изменился, то данный способ выдачи админки не подойдет, если остался прежним, то читаем далее.
Откройте users.ini любым текстовым редактором, например, «Блокнотом», пропишите в самом низу следующую строку вида: «123.45.678.90» «» «abcdefghijklmnopqrstu» «de», где:
«123.45.678.90» – надо заменить на свой IP-адрес, либо айпи будущего админа
«» — пароль остается пустым,
«abcdefghijklmnopqrstu» – флаги доступа (выдать только необходимые),
«de» – тип авторизации по IP-адресу без пароля.
Минус админки по IP: ее можно выдавать только на статический IP-адрес.
Надеемся, что теперь у вас не осталось вопросов, как выдать админку в КС 1.6. Желаем вам найти ответственных администраторов.
Материал опубликован 07.04.2019. Любое копирование без нашего ведома строго запрещено!