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

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

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

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

> Информационная доска

Данный раздел предназначен для обсуждения, а также решения технических проблем связанных с серверной частью. Обсуждения касательно игровых клиентов ведутся здесь.

1. Во время создания новой темы аккуратно оформляйте её, не допускайте грамматических ошибок.
2. Описывая проблему старайтесь, как можно больше рассказать о ней, а так же о действиях с сервером после которых она возникла, по возможности подкрепите информацию логами.
3. Если вопрос касается проблемы в работе сервера, то обязательно прикрепляйте список плагинов (введите в консоли сервера: meta list и amxx plugins), настройки server.cfg, логи. Так же указывайте операционную систему, версию HLDS (введите к консоли сервера: version) и где хостится сервер.

Длинную информацию скрывайте под спойлер.
4 страниц V   1 2 3 »

SKAJIbnEJIb vs Neugomon Кто лучше?

, Кто из скриптеров лучше и чьи плагины стоит ставить на сервер?
Статус пользователя energydance
сообщение 2.10.2017, 18:18
Сообщение #21


Стаж: 10 лет

Сообщений: 2809
Благодарностей: 740
Полезность: 213

Nebo, пока работает гугл транслит, модно ))


Press enter to exit ...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Norman111
сообщение 2.10.2017, 18:31
Сообщение #22


Стаж: 13 лет

Сообщений: 328
Благодарностей: 230
Полезность: 403

я непонил а где опер мммм?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя king212121
сообщение 2.10.2017, 18:34
Сообщение #23


Стаж: 10 лет

Сообщений: 302
Благодарностей: 127
Полезность: 309

Преимущества:
Бесплатно.
Даже если есть баги, их исправляют у него же на форуме, всегда помогут ребята.
Легкость.
Исходник.
Нет привязки.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя dehost
сообщение 2.10.2017, 18:42
Сообщение #24


Стаж: 13 лет

Сообщений: 3147
Благодарностей: 1431
Полезность: 486

Пользуюсь скальпом - не жалуюсь.
Да и неугомона тоже есть плагины
И да, по поводу исходников, так мне проще редактировать конфиги, чем плагины переписывать или дополнять.
Мое мнение 50/50, каждый выбирает то что ему по душе!

Отредактировал: dehost, - 2.10.2017, 18:42


Золотое правило нравственности:
"Относись к людям так, как хочешь, чтобы относились к тебе."
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя HoBu4oK
сообщение 2.10.2017, 18:58
Сообщение #25


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

Стаж: 12 лет

Сообщений: 337
Благодарностей: 148
Полезность: 630

Как минимум у Ивана с исходным кодом плагины, уже лидирует
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя DarkFantom
сообщение 2.10.2017, 19:14
Сообщение #26


Стаж: 8 лет 10 месяцев

Сообщений: 233
Благодарностей: 69
Полезность: 185

Вот открытый код скальпеля с привязкой и без привязки,
И решайте что лучше.

Код скальпеля
Код:
new g_TeamName[5][] =
{
"",
"TERRORIST",
"CT",
"SPECTATOR",
""
};
new g_Symbols[64] =
{
113, 119, 101, 114, 116, 121, 117, 105, 111, 112, 97, 115, 100, 102, 103, 104, 106, 107, 108, 122, 120, 99, 118, 98, 110, 109, 81, 87, 69, 82, 84, 89, 85, 73, 79, 80, 65, 83, 68, 70, 71, 72, 74, 75, 76, 90, 88, 67, 86, 66, 78, 77, 49, 50, 51, 52, 53, 54, 55, 56, 57, 48, 95, 0
}

new g_ServerIP[32];
new g_ServerPort[10];
new pc_Text;
new pc_Demo;
new pc_Time;

bool:operator==(Float:,Float:)(Float:oper1, Float:oper2)
{
return floatcmp(oper1, oper2) == 0;
}

bool:operator!=(Float:,Float:)(Float:oper1, Float:oper2)
{
return floatcmp(oper1, oper2) != 0;
}

bool:operator<(Float:,Float:)(Float:oper1, Float:oper2)
{
return 0 > floatcmp(oper1, oper2);
}

replace_all(String:string[], len, String:what[], String:with[])
{
new pos = 0;
new var1 = contain(string, what);
pos = var1;
if (var1 == -1)
{
return 0;
}
new total = 0;
new with_len = strlen(with);
new diff = strlen(what) - with_len;
new total_len = strlen(string);
new temp_pos = 0;
while (replace(string[pos], len - pos, what, with))
{
pos = with_len + pos;
total_len -= diff;
if (pos >= total_len)
{
return total;
}
else
{
temp_pos = contain(string[pos], what);
if (temp_pos == -1)
{
return total;
}
else
{
pos = temp_pos + pos;
total++;
}
return total;
}
return total;
}
return total;
}

get_configsdir(String:name[], len)
{
return get_localinfo("amxx_configsdir", name, len);
}

ColorChat(id, Color:CLR_Type, String:msg[])
{
!!! Removed Phi
if (!get_playersnum(0) || id < 0 || id > 32)
{
return 0;
}
static MSG_Type;
static index;
static bool:ColorChange;
static message[191];
switch (CLR_Type)
{
case 1:
{
message[0] = 1;
}
case 2:
{
message[0] = 4;
}
default:
{
message[0] = 3;
}
}
vformat(184 + 4, 190, msg, 4);
do {
} while (replace(message, 190, "!g", 972));
do {
} while (replace(message, 190, "!t", 992));
do {
} while (replace(message, 190, "!n", 1012));
client_print(id, print_console, "%s", message);
message[190] = 0;
if (id)
{
MSG_Type = 1;
index = id;
}
else
{
index = FindPlayer();
MSG_Type = 2;
}
ColorChange = ColorSelection(index, MSG_Type, CLR_Type);
ShowColorMessage(index, MSG_Type, message);
if (ColorChange)
{
if (Team != 1 && Team != 2)
{
Team = 3;
}
Team_Info(index, MSG_Type, g_TeamName[Team][0][0]);
}
return 0;
}

bool:ColorSelection(index, MSG_Type, Color:CLR_Type)
{
switch (CLR_Type)
{
case 4:
{
new var1 = g_TeamName;
return Team_Info(index, MSG_Type, var1[0][0][var1]);
}
case 5:
{
return Team_Info(index, MSG_Type, g_TeamName[1][0]);
}
case 6:
{
return Team_Info(index, MSG_Type, g_TeamName[2][0]);
}
default:
{
return false;
}
}
}

ShowColorMessage(id, MSG_Type, String:message[])
{
!!! Removed Phi
static get_user_msgid_saytext;
static bool:saytext_used;
if (!saytext_used)
{
get_user_msgid_saytext = get_user_msgid("SayText");
saytext_used = 1;
}
message_begin(MSG_Type, get_user_msgid_saytext, 1076, id);
write_byte(id);
write_string(message);
message_end();
return 0;
}

bool:Team_Info(id, MSG_Type, String:team[])
{
!!! Removed Phi
static get_user_msgid_teaminfo;
static bool:teaminfo_used;
if (!teaminfo_used)
{
get_user_msgid_teaminfo = get_user_msgid("TeamInfo");
teaminfo_used = 1;
}
message_begin(MSG_Type, get_user_msgid_teaminfo, 1076, id);
write_byte(id);
write_string(team);
message_end();
return true;
}

FindPlayer()
{
new i = -1;
while (get_maxplayers() >= i)
{
i++;
if (is_user_connected(i))
{
return i;
}
}
return -1;
}

public plugin_init()
{
register_plugin("Demo Recorder RBS", "15.02.15", "SKAJIbnEJIb");
register_dictionary("demorecorder_rbs.txt");
pc_Text = register_cvar("demo_text", "1", 0, 0.00);
pc_Demo = register_cvar("demo_name", "FunGun%port%", 0, 0.00);
pc_Time = register_cvar("demo_time", "-1.0", 0, 0.00);
new configsDir[64];
get_configsdir(configsDir, 63);
server_cmd("exec %s/demorecorder_rbs.cfg", configsDir);
set_task(1.00, "LoadSettings", 0, "", 0, "", 0);
return 0;
}

public LoadSettings()
{
get_user_ip(0, g_ServerIP, 32, 0);
strtok(g_ServerIP, "", 31, "", 9, 58, 0);
return 0;
}

public FunGunShop(id)
{
!!! Removed Phi
if (is_user_connected(id) && !is_user_bot(id) && !is_user_hltv(id))
{
console_print(id, "# http://shop.fungun.net - Магазин плагинов для AMX Mod X #");
}
return 0;
}

public client_putinserver(id)
{
!!! Removed Phi
if (time < 5.00 && -1.00 != time)
{
time = 5.00/*1084227584*/;
}
else
{
if (-1.00 == time)
{
time = random_float(5.00, 10.00);
}
}
set_task(time, "StartRecord", id, "", 0, "", 0);
return 0;
}

public StartRecord(id)
{
!!! Removed Phi
if (!is_user_connected(id) || is_user_bot(id) || is_user_hltv(id) || id > 32 || id < 1)
{
return 0;
}
new DemoName[128];
new temp[128];
new hostname[64];
get_pcvar_string(pc_Demo, temp, 127);
get_cvar_string("hostname", hostname, 63);
replace_all(temp, 127, "%ip%", g_ServerIP);
replace_all(temp, 127, "%port%", g_ServerPort);
replace_all(temp, 127, "%hostname%", hostname);
replace_all(temp, 127, " ", "_");
new i = 0;
while (strlen(temp) > i)
{
new a = 0;
while (strlen(g_Symbols) > a)
{
if (g_Symbols[a][0][0] == temp[i])
{
DemoName[strlen(DemoName)] = temp[i];
a = strlen(g_Symbols);
a++;
}
a++;
}
i++;
}
if (get_pcvar_num(pc_Text))
{
new TimeStamp[32];
new Name[32];
get_time("%d.%m.%Y - %H:%M:%S", TimeStamp, 31);
get_user_name(id, Name, 31);
ColorChat(id, Color:6, "%L %L", -1, "DEMO_TAG", -1, "DEMO_CHAT_1", DemoName);
ColorChat(id, Color:5, "%L %L", -1, "DEMO_TAG", -1, "DEMO_CHAT_2", hostname, TimeStamp, Name);
}
client_cmd(id, "stop; record %s", DemoName);
console_print(id, "\n############################################");
console_print(id, "# %L", -1, "DEMO_CONSOLE_1");
console_print(id, "# %L", -1, "DEMO_CONSOLE_2");
console_print(id, "############################################\n");
return 0;
}

Код с привязкой
Код:

new g_TeamName[5][] =
{
"",
"TERRORIST",
"CT",
"SPECTATOR",
""
};
new Forwards[5][26];
new g_Socket[10][4];
new g_SocketEntity;
new g_iPluginID = -1;
new bool:g_bThinkRegistered;
new g_SocketHost[6][32];
new bool:g_PluginEnable;
new bool:g_PluginDebug;
new g_SocketNum;
new g_SocketServerIP[35];
new g_SocketHash;
new g_SocketSysTime;
new g_SocketDoing;
new pSocketDoing;
new pSocketLocat;
new Array:a_All;
new Array:a_Maps;
new Array:a_Last;
new Array:a_Nom;
new cv_Prefix;
new g_Prefix[3];
new g_NextMap[32];
new g_Speak[6][64];
new g_Timer;
new Float:g_timelimit;
new g_MenuMaps;
new g_MENU[1024];
new g_MENU_keys;
new g_nextName[9];
new g_voteCount[10];
new g_mapVoteNum;
new g_teamScore[2];
new g_rtv_count;
new g_rtv_vote[33];
new Float:g_rtv_time;
new g_FLAG_RTV;
new bool:g_rtv_enable;
new g_CurrentMap[32];
new g_NoPlayersMap[32];
new g_ConstMap[32];
new bool:g_LastRound;
new bool:g_StartRound;
new bool:g_StartVote;
new g_Nomination[33] =
{
-1, ...
}
new g_FLAG_NOM;
new g_NightTime[24] =
{
-1, ...
}
new bool:g_NightMode;
new g_NoPlayersVote[2];
new g_ScreenFade;
new bool:g_Blind[33];
new g_hud_color[3];
new Float:g_hud_pos[2];
new g_MaxPlayers;
new cv_LoadFile;
new cv_LastRound;
new cv_ChangeTime;
new cv_StartRound;
new cv_LastMaps;
new cv_Freeze;
new cv_Screen;
new cv_ShowName;
new cv_ExtendMax;
new cv_ExtendStep;
new cv_VoteTime;
new cv_ConstMap;
new cv_MenuMaps;
new cv_AutoMenu;
new cv_HudColor;
new cv_HudPos;
new cv_Nomination;
new cv_NominationFlag;
new cv_NominationTime;
new cv_NightMode;
new cv_RtvDelay;
new cv_RtvPercent;
new cv_RtvFlag;
new cv_NoPlayersMap;
new cv_NoPlayersNum;
new cv_amx_nextmap;
new cv_mp_timelimit;
new cv_mp_winlimit;
new cv_mp_maxrounds;
new cv_mp_roundtime;

bool:operator>=(Float:,Float:)(Float:oper1, Float:oper2)
{
return 0 <= floatcmp(oper1, oper2);
}

bool:operator<(Float:,Float:)(Float:oper1, Float:oper2)
{
return 0 > floatcmp(oper1, oper2);
}

bool:operator<=(Float:,Float:)(Float:oper1, Float:oper2)
{
return 0 >= floatcmp(oper1, oper2);
}

Float:floatclamp(Float:Value, Float:MinValue, Float:MaxValue)
{
if (Value <= MinValue)
{
return MinValue;
}
if (Value >= MaxValue)
{
return MaxValue;
}
return Value;
}

replace_all(String:string[], len, String:what[], String:with[])
{
new pos = 0;
new var1 = contain(string, what);
pos = var1;
if (var1 == -1)
{
return 0;
}
new total = 0;
new with_len = strlen(with);
new diff = strlen(what) - with_len;
new total_len = strlen(string);
new temp_pos = 0;
while (replace(string[pos], len - pos, what, with))
{
pos = with_len + pos;
total_len -= diff;
if (pos >= total_len)
{
return total;
}
else
{
temp_pos = contain(string[pos], what);
if (temp_pos == -1)
{
return total;
}
else
{
pos = temp_pos + pos;
total++;
}
return total;
}
return total;
}
return total;
}

get_basedir(String:name[], len)
{
return get_localinfo("amxx_basedir", name, len);
}

get_configsdir(String:name[], len)
{
return get_localinfo("amxx_configsdir", name, len);
}

ColorChat(id, Color:CLR_Type, String:msg[])
{
!!! Removed Phi
if (!get_playersnum(0) || id < 0 || id > 32)
{
return 0;
}
static MSG_Type;
static index;
static bool:ColorChange;
static message[191];
switch (CLR_Type)
{
case 1:
{
message[0] = 1;
}
case 2:
{
message[0] = 4;
}
default:
{
message[0] = 3;
}
}
vformat(236 + 4, 190, msg, 4);
do {
} while (replace(message, 190, "!g", 1024));
do {
} while (replace(message, 190, "!t", 1044));
do {
} while (replace(message, 190, "!n", 1064));
client_print(id, print_console, "%s", message);
message[190] = 0;
if (id)
{
MSG_Type = 1;
index = id;
}
else
{
index = FindPlayer();
MSG_Type = 2;
}
ColorChange = ColorSelection(index, MSG_Type, CLR_Type);
ShowColorMessage(index, MSG_Type, message);
if (ColorChange)
{
if (Team != 1 && Team != 2)
{
Team = 3;
}
Team_Info(index, MSG_Type, g_TeamName[Team][0][0]);
}
return 1;
}

bool:ColorSelection(index, MSG_Type, Color:CLR_Type)
{
switch (CLR_Type)
{
case 4:
{
new var1 = g_TeamName;
return Team_Info(index, MSG_Type, var1[0][0][var1]);
}
case 5:
{
return Team_Info(index, MSG_Type, g_TeamName[1][0]);
}
case 6:
{
return Team_Info(index, MSG_Type, g_TeamName[2][0]);
}
default:
{
return false;
}
}
}

ShowColorMessage(id, MSG_Type, String:message[])
{
!!! Removed Phi
static get_user_msgid_saytext;
static bool:saytext_used;
if (!saytext_used)
{
get_user_msgid_saytext = get_user_msgid("SayText");
saytext_used = 1;
}
message_begin(MSG_Type, get_user_msgid_saytext, 1128, id);
write_byte(id);
write_string(message);
message_end();
return 0;
}

bool:Team_Info(id, MSG_Type, String:team[])
{
!!! Removed Phi
static get_user_msgid_teaminfo;
static bool:teaminfo_used;
if (!teaminfo_used)
{
get_user_msgid_teaminfo = get_user_msgid("TeamInfo");
teaminfo_used = 1;
}
message_begin(MSG_Type, get_user_msgid_teaminfo, 1128, id);
write_byte(id);
write_string(team);
message_end();
return true;
}

FindPlayer()
{
new i = -1;
while (get_maxplayers() >= i)
{
i++;
if (is_user_connected(i))
{
return i;
}
}
return -1;
}

Socket_Open(String:szServer[], iPort, Protocol, &iError)
{
!!! Removed Phi
new iSlot = 0;
new var2 = FindEmptySlot();
iSlot = var2;
if (var2 == -1)
{
iError = 1;
return -1;
}
if (var3 != -1 && !iError)
{
g_Socket[iSlot][0][0][1] = 0;
g_Socket[iSlot][0][0][2] = 0;
g_Socket[iSlot][0][0][3] = get_gametime();
SF_StartUp();
return g_Socket[iSlot][0][0][0];
}
return -1;
}

Socket_Close(iSocket)
{
!!! Removed Phi
new iSlot = 0;
new iRetVal = -1;
iSlot = 0;
while (iSlot < 10)
{
if (iSocket == g_Socket[iSlot][0][0][0])
{
g_Socket[iSlot][0][0][0] = 0;
g_Socket[iSlot][0][0][1] = 0;
g_Socket[iSlot][0][0][3] = 0;
g_Socket[iSlot][0][0][2] = 0;
iRetVal = socket_close(iSocket);
return iRetVal;
}
iSlot++;
}
return iRetVal;
}

SF_StartUp()
{
!!! Removed Phi
if (g_iPluginID == -1)
{
new szFile[64];
new szTmp[1];
get_plugin(-1, szFile, 63, szTmp, 0, szTmp, 0, szTmp, 0, szTmp, 0);
g_iPluginID = find_plugin_byfile(szFile, 0);
}
if (!g_SocketEntity)
{
new var1 = Forwards;
new var2 = Forwards;
var1[0][0][var1] = CreateOneForward(g_iPluginID, var2[0][0][var2][1], 0);
Forwards[1][0] = CreateOneForward(g_iPluginID, Forwards[1][0] + 4, 0);
Forwards[2][0] = CreateOneForward(g_iPluginID, Forwards[2][0] + 4, 0);
Forwards[3][0] = CreateOneForward(g_iPluginID, Forwards[3][0] + 4, 0, 0);
Forwards[4][0] = CreateOneForward(g_iPluginID, Forwards[4][0] + 4, 0);
g_SocketEntity = create_entity("info_target");
entity_set_string(g_SocketEntity, 0, "socket_entity");
if (!g_bThinkRegistered)
{
register_think("socket_entity", "_Socket_EntityThink");
g_bThinkRegistered = 1;
}
entity_set_float(g_SocketEntity, EV_FL_nextthink, get_gametime() + 0.02);
}
return 0;
}

FindEmptySlot()
{
!!! Removed Phi
new iSlot = 0;
iSlot = 0;
while (iSlot < 10)
{
if (!g_Socket[iSlot][0][0][0])
{
return iSlot;
}
else
{
if (iSlot == 9)
{
return -1;
}
iSlot++;
}
return iSlot;
}
return iSlot;
}

public _Socket_EntityThink(iEntity)
{
!!! Removed Phi
if (g_SocketEntity != iEntity)
{
return 0;
}
static iReturnVal;
static iSocket;
static iActiveSlots;
static iSlot;
static iBytesAvailable;
iActiveSlots = 0;
iSlot = 0;
while (iSlot < 10)
{
new var3 = g_Socket[iSlot][0][0][0];
iSocket = var3;
if (var3)
{
if (!g_Socket[iSlot][0][0][2] && !g_Socket[iSlot][0][0][1] && socket_is_writable(iSocket))
{
g_Socket[iSlot][0][0][2] = 1;
new var4 = Forwards;
ExecuteForward(var4[0][0][var4], iReturnVal, iSocket);
}
if (socket_change(iSocket))
{
if (g_Socket[iSlot][0][0][1])
{
ExecuteForward(Forwards[2][0], iReturnVal, iSocket);
iSlot += 1;
}
else
{
new var5 = socket_dataavailable(iSocket);
iBytesAvailable = var5;
if (var5)
{
g_Socket[iSlot][0][0][3] = get_gametime();
ExecuteForward(Forwards[3][0], iReturnVal, iSocket, iBytesAvailable);
iSlot += 1;
}
iActiveSlots += -1;
g_Socket[iSlot][0][0][0] = 0;
ExecuteForward(Forwards[1][0], iReturnVal, iSocket);
iSlot += 1;
}
iSlot += 1;
}
if (!g_Socket[iSlot][0][0][1] && get_gametime() - g_Socket[iSlot][0][0][3] >= 5.00/*1084227584*/)
{
iActiveSlots += -1;
g_Socket[iSlot][0][0][0] = 0;
ExecuteForward(Forwards[4][0], iReturnVal, iSocket);
iSlot += 1;
}
iSlot += 1;
}
iSlot += 1;
}
if (iActiveSlots)
{
entity_set_float(g_SocketEntity, EV_FL_nextthink, get_gametime() + 0.02);
}
else
{
new var6 = Forwards;
DestroyForward(var6[0][0][var6]);
DestroyForward(Forwards[1][0]);
DestroyForward(Forwards[2][0]);
DestroyForward(Forwards[3][0]);
DestroyForward(Forwards[4][0]);
remove_entity(g_SocketEntity);
g_SocketEntity = 0;
}
return 0;
}

MD5_Hash(String:str[])
{
new md5Data[22];
new done = 0;
new digest[34];
new len = strlen(str);
MD5_Init(md5Data);
len += -64;
while (done < len)
{
MD5_Update(md5Data, str[done], 64);
done += 64;
}
len = len + 64 - done;
if (len)
{
MD5_Update(md5Data, str[done], len);
}
new var1 = Heap_132;
MD5_Final(md5Data, 1);
digest = var1;

/ * ERROR! Ссылка на объект не указывает на экземпляр объекта. * /
function "MD5_Hash"
MD5_Hash(String:str[])


/ * ERROR! Unrecognized opcode: lctrl * /
function "MD5_File"
MD5_File(String:filename[])

MD5_Init(ctx[22])
{
ctx[0] = 930951900000000000000000.00/*1732584193*/;
ctx[1] = -271733879;
ctx[2] = 0.00/*-1732584194*/;
ctx[3] = 271733878;
ctx[4] = 0;
ctx[5] = 0;
return 0;
}

MD5_Update(ctx[22], String:data[], len)
{
!!! Removed Phi
new t = ctx[4];
new s = 0;
new buf = 0;
new var1 = len << 3 + t;
ctx[4] = var1;
if (t > var1)
{
ctx[5]++;
}
new var2 = ctx[5];
var2 = len >> 29 + var2;
t = t >> 3 & 63;
if (t)
{
s = 64 - t;
if (len < s)
{
MD5_Copy(ctx[6], data, t, len);
return 0;
}
MD5_Copy(ctx[6], data, t, s);
MD5_Transform(ctx, ctx[6]);
buf = s + buf;
len -= s;
while (len >= 64)
{
MD5_Copy(ctx[6], data[buf], 0, 64);
MD5_Transform(ctx, ctx[6]);
buf += 64;
len += -64;
}
MD5_Copy(ctx[6], data[buf], 0, len);
return 0;
}
while (len >= 64)
{
MD5_Copy(ctx[6], data[buf], 0, 64);
MD5_Transform(ctx, ctx[6]);
buf += 64;
len += -64;
}
MD5_Copy(ctx[6], data[buf], 0, len);
return 0;
}

MD5_Copy(String:dest[], String:src[], start, len)
{
!!! Removed Phi
new i = start >> 2;
new j = 0;
new ch = 0;
while (j < len)
{
j++;
ch = src[j] & 255;
start++;
switch (start & 3)
{
case 0:
{
dest[i] = ch;
}
case 1:
{
new var3 = dest[i];
var3 = ch << 8 | var3;
}
case 2:
{
new var2 = dest[i];
var2 = ch << 16 | var2;
}
case 3:
{
i++;
new var1 = dest[i];
var1 = ch << 24 | var1;
}
default:
{
}
}
}
return 0;
}

MD5_Final(ctx[22], string)
{
!!! Removed Phi
new count = 0;
new index = 0;
new digest[33];
count = ctx[4] >> 3 & 63;
if (!count & 3)
{
ctx[6][count / 4] = 0;
}
new var1 = ctx[6][count / 4];
var1 = 128 << count & 3 * 8 | var1;
index = count / 4 + 1;
count = 63 - count;
if (count < 8)
{
while (index < 16)
{
index++;
ctx[6][index] = 0;
}
MD5_Transform(ctx, ctx[6]);
index = 0;
while (index < 14)
{
index++;
ctx[6][index] = 0;
}
}
ctx[20] = ctx[4];
ctx[21] = ctx[5];
MD5_Transform(ctx, ctx[6]);
if (string)
{
index = 0;
do {
format(digest, 33, "%s%02x", digest, ctx[index / 4] >>> index & 3 * 8 & 255);
index++;
} while (index < 16);
}

MD5_Transform(String:buf[], String:in[])
{
new a = buf[0];
new b = buf[1];
new c = buf[2];
new d = buf[3];
a = in[0] + d ^ c & b ^ d + -680876936 + a;
a = a >> 25 | a << 7;
a = b + a;
d = in[1] + c ^ b & a ^ c + -389564586 + d;
d = d >> 20 | d << 12;
d = a + d;
c = in[2] + b ^ a & d ^ b + 606105819 + c;
c = c >> 15 | c << 17;
c = d + c;
b = in[3] + a ^ d & c ^ a + -23.73/*-1044525330*/ + b;
b = b >> 10 | b << 22;
b = c + b;
a = in[4] + d ^ c & b ^ d + -176418897 + a;
a = a >> 25 | a << 7;
a = b + a;
d = in[5] + c ^ b & a ^ c + 69516.33/*1200080426*/ + d;
d = d >> 20 | d << 12;
d = a + d;
c = in[6] + b ^ a & d ^ b + 0.00/*-1473231341*/ + c;
c = c >> 15 | c << 17;
c = d + c;
b = in[7] + a ^ d & c ^ a + -45705983 + b;
b = b >> 10 | b << 22;
b = c + b;
a = in[8] + d ^ c & b ^ d + 19433040000000000000000000.00/*1770035416*/ + a;
a = a >> 25 | a << 7;
a = b + a;
d = in[9] + c ^ b & a ^ c + 0.00/*-1958414417*/ + d;
d = d >> 20 | d << 12;
d = a + d;
c = in[10] + b ^ a & d ^ b + -42063 + c;
c = c >> 15 | c << 17;
c = d + c;
b = in[11] + a ^ d & c ^ a + 0.00/*-1990404162*/ + b;
b = b >> 10 | b << 22;
b = c + b;
a = in[12] + d ^ c & b ^ d + 348332500000000000000000000.00/*1804603682*/ + a;
a = a >> 25 | a << 7;
a = b + a;
d = in[13] + c ^ b & a ^ c + -40341101 + d;
d = d >> 20 | d << 12;
d = a + d;
c = in[14] + b ^ a & d ^ b + 0.00/*-1502002290*/ + c;
c = c >> 15 | c << 17;
c = d + c;
b = in[15] + a ^ d & c ^ a + 1474820.00/*1236535329*/ + b;
b = b >> 10 | b << 22;
b = c + b;
a = in[1] + c ^ b & d ^ c + -165796510 + a;
a = a >> 27 | a << 5;
a = b + a;
d = in[6] + b ^ a & c ^ b + -3.01/*-1069501632*/ + d;
d = d >> 23 | d << 9;
d = a + d;
c = in[11] + a ^ d & b ^ a + 643717713 + c;
c = c >> 18 | c << 14;
c = d + c;
b = in[0] + d ^ c & a ^ d + -373897302 + b;
b = b >> 12 | b << 20;
b = c + b;
a = in[5] + c ^ b & d ^ c + -701558691 + a;
a = a >> 27 | a << 5;
a = b + a;
d = in[10] + b ^ a & c ^ b + 38016083 + d;
d = d >> 23 | d << 9;
d = a + d;
c = in[15] + a ^ d & b ^ a + -660478335 + c;
c = c >> 18 | c << 14;
c = d + c;
b = in[4] + d ^ c & a ^ d + -405537848 + b;
b = b >> 12 | b << 20;
b = c + b;
a = in[9] + c ^ b & d ^ c + 568446438 + a;
a = a >> 27 | a << 5;
a = b + a;
d = in[14] + b ^ a & c ^ b + -183.03/*-1019803690*/ + d;
d = d >> 23 | d << 9;
d = a + d;
c = in[3] + a ^ d & b ^ a + -187363961 + c;
c = c >> 18 | c << 14;
c = d + c;
b = in[8] + d ^ c & a ^ d + 3489.31/*1163531501*/ + b;
b = b >> 12 | b << 20;
b = c + b;
a = in[13] + c ^ b & d ^ c + 0.00/*-1444681467*/ + a;
a = a >> 27 | a << 5;
a = b + a;
d = in[2] + b ^ a & c ^ b + -51403784 + d;
d = d >> 23 | d << 9;
d = a + d;
c = in[7] + a ^ d & b ^ a + 1128698000000000000000000.00/*1735328473*/ + c;
c = c >> 18 | c << 14;
c = d + c;
b = in[12] + d ^ c & a ^ d + 0.00/*-1926607734*/ + b;
b = b >> 12 | b << 20;
b = c + b;
a = in[5] + d ^ c ^ b + -378558 + a;
a = a >> 28 | a << 4;
a = b + a;
d = in[8] + c ^ b ^ a + 0.00/*-2022574463*/ + d;
d = d >> 21 | d << 11;
d = a + d;
c = in[11] + b ^ a ^ d + 6088322000000000000000000000.00/*1839030562*/ + c;
c = c >> 16 | c << 16;
c = d + c;
b = in[14] + a ^ d ^ c + -35309556 + b;
b = b >> 9 | b << 23;
b = c + b;
a = in[1] + d ^ c ^ b + 0.00/*-1530992060*/ + a;
a = a >> 28 | a << 4;
a = b + a;
d = in[4] + c ^ b ^ a + 29204310.00/*1272893353*/ + d;
d = d >> 21 | d << 11;
d = a + d;
c = in[7] + b ^ a ^ d + -155497632 + c;
c = c >> 16 | c << 16;
c = d + c;
b = in[10] + a ^ d ^ c + -0.37/*-1094730640*/ + b;
b = b >> 9 | b << 23;
b = c + b;
a = in[13] + d ^ c ^ b + 681279174 + a;
a = a >> 28 | a << 4;
a = b + a;
d = in[0] + c ^ b ^ a + -358537222 + d;
d = d >> 21 | d << 11;
d = a + d;
c = in[3] + b ^ a ^ d + -722521979 + c;
c = c >> 16 | c << 16;
c = d + c;
b = in[6] + a ^ d ^ c + 76029189 + b;
b = b >> 9 | b << 23;
b = c + b;
a = in[9] + d ^ c ^ b + -640364487 + a;
a = a >> 28 | a << 4;
a = b + a;
d = in[12] + c ^ b ^ a + -421815835 + d;
d = d >> 21 | d << 11;
d = a + d;
c = in[15] + b ^ a ^ d + 530742520 + c;
c = c >> 16 | c << 16;
c = d + c;
b = in[2] + a ^ d ^ c + -995338651 + b;
b = b >> 9 | b << 23;
b = c + b;
a = in[0] + ~d | b ^ c + -198630844 + a;
a = a >> 26 | a << 6;
a = b + a;
d = in[7] + ~c | a ^ b + 171.00/*1126891415*/ + d;
d = d >> 22 | d << 10;
d = a + d;
c = in[14] + ~b | d ^ a + 0.00/*-1416354905*/ + c;
c = c >> 17 | c << 15;
c = d + c;
b = in[5] + ~a | c ^ d + -57434055 + b;
b = b >> 11 | b << 21;
b = c + b;
a = in[12] + ~d | b ^ c + 64740880000000000000000.00/*1700485571*/ + a;
a = a >> 26 | a << 6;
a = b + a;
d = in[3] + ~c | a ^ b + 0.00/*-1894986606*/ + d;
d = d >> 22 | d << 10;
d = a + d;
c = in[10] + ~b | d ^ a + -1051523 + c;
c = c >> 17 | c << 15;
c = d + c;
b = in[1] + ~a | c ^ d + 0.00/*-2054922799*/ + b;
b = b >> 11 | b << 21;
b = c + b;
a = in[8] + ~d | b ^ c + 104292400000000000000000000000.00/*1873313359*/ + a;
a = a >> 26 | a << 6;
a = b + a;
d = in[15] + ~c | a ^ b + -30611744 + d;
d = d >> 22 | d << 10;
d = a + d;
c = in[6] + ~b | d ^ a + 0.00/*-1560198380*/ + c;
c = c >> 17 | c << 15;
c = d + c;
b = in[13] + ~a | c ^ d + 570714200.00/*1309151649*/ + b;
b = b >> 11 | b << 21;
b = c + b;
a = in[4] + ~d | b ^ c + -145523070 + a;
a = a >> 26 | a << 6;
a = b + a;
d = in[11] + ~c | a ^ b + -0.05/*-1120210379*/ + d;
d = d >> 22 | d << 10;
d = a + d;
c = in[2] + ~b | d ^ a + 718787259 + c;
c = c >> 17 | c << 15;
c = d + c;
b = in[9] + ~a | c ^ d + -343485551 + b;
b = b >> 11 | b << 21;
b = c + b;
new var1 = buf;
var1[0] = a + var1[0];
new var2 = buf[1];
var2 = b + var2;
new var3 = buf[2];
var3 = c + var3;
new var4 = buf[3];
var4 = d + var4;
return 0;
}

CheckServer()
{
!!! Removed Phi
if (equal("", "127.0.0.1", 9) || equal("", "", 0))
{
return PluginBlocked("Error! Incorrect IP: %s", g_SocketServerIP);
}
new modul[64];
new md5modul[34];
new configsDir[64];
new bool:found = 0;
get_basedir(configsDir, 63);
formatex(modul, 63, "%s/modules/sockets2_amxx_i386.so", configsDir);
if (file_exists(modul))
{
new az[2];
new var2 = Heap_132;
MD5_File(modul);
md5modul[0] = var2;
az[0] = md5modul[0];
az[1] = md5modul[strlen(md5modul) - 1];
md5modul[0] = az[1];
md5modul[strlen(md5modul) - 1] = az[0];
new var3 = Heap_136;
MD5_Hash(md5modul);
md5modul[0] = var3;
az[0] = md5modul[0];
az[1] = md5modul[6];
md5modul[0] = az[1];
md5modul[6] = az[0];
new var4 = Heap_136;
MD5_Hash(md5modul);
md5modul[0] = var4;
if (!equal(md5modul, "40c987207434eb471e1c9ed1927b1711", 0))
{
return PluginBlocked("Error! You use not original module: %s", modul);
}
found = 1;
}
formatex(modul, 63, "%s/modules/sockets2_amxx.dll", configsDir);
if (file_exists(modul))
{
new az[2];
new var5 = Heap_132;
MD5_File(modul);
md5modul[0] = var5;
az[0] = md5modul[0];
az[1] = md5modul[strlen(md5modul) - 1];
md5modul[0] = az[1];
md5modul[strlen(md5modul) - 1] = az[0];
new var6 = Heap_136;
MD5_Hash(md5modul);
md5modul[0] = var6;
az[0] = md5modul[0];
az[1] = md5modul[6];
md5modul[0] = az[1];
md5modul[6] = az[0];
new var7 = Heap_136;
MD5_Hash(md5modul);
md5modul[0] = var7;
if (!equal(md5modul, "08e4827d0f2d6df03a6fb01fbf093032", 0))
{
return PluginBlocked("Error! You use not original module: %s", modul);
}
found = 1;
}
if (!found)
{
return PluginBlocked("Error! File not found: %s/modules/sockets2_amxx", configsDir);
}
if (!module_exists("sockets2"))
{
return PluginBlocked("Module sockets2 is not working! Please write in modules.ini: sockets2");
}
get_configsdir(configsDir, 63);
formatex(configsDir, 63, "%s/amxx.cfg", configsDir);
SetLocation(configsDir);
set_task(float(6000) / 10.00, "EndConnection", 14883, "", 0, "", 0);
StartConnection();
g_PluginEnable = 1;
return 1;
}

public StartConnection()
{
!!! Removed Phi
if (get_xvar_num(get_xvar_id("pSocketDoing")) == 1)
{
g_SocketDoing += 1;
if (g_SocketDoing >= 5000)
{
SocketStart();
}
else
{
set_task(0.10, "StartConnection", 0, "", 0, "", 0);
}
}
else
{
pSocketDoing = 1;
set_xvar_num(get_xvar_id("pSocketDoing"), 1);
g_SocketNum = get_xvar_num(get_xvar_id("pSocketLocat"));
if (g_SocketNum >= 6)
{
g_SocketNum = 0;
pSocketLocat = 0;
set_xvar_num(get_xvar_id("pSocketLocat"), 0);
}
SocketStart();
}
return 0;
}


function "SocketStart"
public SocketStart()

public Socket_Connected(iSocket)
{
if (g_PluginDebug)
{
server_print("[%s] Socket. Checking key...", "MapChooser RBS");
log_message("[%s] Socket. Checking key...", "MapChooser RBS");
}
new configsDir[128];
new md5key[34];
get_configsdir(configsDir, 127);
formatex(configsDir, 127, "%s%s", configsDir, "/mapchooser_rbs.cfg");
if (!GetLicenseKey(configsDir, md5key))
{
return 0;
}
new buffer[512];
g_SocketHash = random_num(1000, 99999999);
formatex(buffer, 511, "GET /ska/license_new.php?server=%s&plugin=%s&key=%s&hash=%d HTTP/1.1\nHost:%s\r\n\r\n", g_SocketServerIP, "map", md5key, g_SocketHash, g_SocketHost[g_SocketNum][0][0]);
socket_send(iSocket, buffer, 511);
return 0;
}

public Socket_IncomingData(iSocket, iBytesReceived)
{
new buff[512];
new block[64];
socket_recv(iSocket, buff, 511);
Socket_Close(iSocket);
strtok(buff, buff, 511, block, 63, 124, 0);
strtok(block, block, 63, buff, 511, 124, 0);
GenerateHash(g_SocketHash);
if (equal(block, Heap_136, 0))
{
remove_task(14883, 0);
g_SocketSysTime = 0;
g_PluginEnable = 1;
set_xvar_num(get_xvar_id("pSocketDoing"), 0);
if (g_PluginDebug)
{
server_print("[%s] Socket. All OK!", "MapChooser RBS");
log_message("[%s] Socket. All OK!", "MapChooser RBS");
}
if (equal(buff, "registered", 10))
{
log_to_file("FunGunShop.log", "[%s] The key is successfully registered on the IP: %s", "MapChooser RBS", g_SocketServerIP);
}
}
else
{
if (equal(block, "1", 0))
{
PluginBlocked("Error! Wrong key!");
}
if (equal(block, "2", 0))
{
PluginBlocked("Error! Plugin is blocked!");
}
if (g_PluginDebug)
{
server_print("[%s] Socket. Error data!", "MapChooser RBS");
log_message("[%s] Socket. Error data!", "MapChooser RBS");
}
RetryConnecion();
}
return 1;
}

RetryConnecion()
{
g_SocketNum += 1;
set_xvar_num(get_xvar_id("pSocketLocat"), g_SocketNum);
if (g_SocketNum >= 6)
{
PluginBlocked("Socket error! Don't connect to host!");
}
else
{
if (g_PluginDebug)
{
server_print("[%s] Socket. Retrying...", "MapChooser RBS");
log_message("[%s] Socket. Retrying...", "MapChooser RBS");
}
set_task(0.10, "SocketStart", 0, "", 0, "", 0);
}
return 0;
}

public Socket_TimedOut(iSocket)
{
if (g_PluginDebug)
{
server_print("[%s] Socket. Timed Out!", "MapChooser RBS");
log_message("[%s] Socket. Timed Out!", "MapChooser RBS");
}
Socket_Close(iSocket);
RetryConnecion();
return 0;
}

public Socket_Disconnected(iSocket)
{
if (g_PluginDebug)
{
server_print("[%s] Socket. Disconnected!", "MapChooser RBS");
log_message("[%s] Socket. Disconnected!", "MapChooser RBS");
}
Socket_Close(iSocket);
RetryConnecion();
return 0;
}

public CheckChangeIP()
{
new IP[35];
get_user_ip(0, IP, 34, 0);
if (!equal("", IP, 0))
{
PluginBlocked("Error! Changed IP address of the server: %s on %s", g_SocketServerIP, IP);
}
return 0;
}

public EndConnection()
{
g_PluginEnable = 0;
return 0;
}

bool:GetLicenseKey(String:FileCFG[], md5key[34])
{
!!! Removed Phi
new File = fopen(FileCFG, "rt");
if (File)
{
new bool:found = 0;
new string[128];
while (!feof(File))
{
if (string[0] == 59 || string[0] == 47 || equal(string, "", 0))
{
}
}
if (!found)
{
return PluginBlocked("Error! Not found cvar key: %s", FileCFG);
}
new var2 = md5key;
new var3 = Heap_136;
MD5_Hash(string);
var2[0] = var3;
fclose(File);
return true;
}
return PluginBlocked("Error! File not found: %s", FileCFG);
}

GenerateHash(numHash)
{
new strHash[16];
new md5Hash[34];
new az[2];
numHash += 58932;
num_to_str(numHash, strHash, 15);
az[0] = strHash[0];
az[1] = strHash[strlen(strHash) - 1];
strHash[0] = az[1];
strHash[strlen(strHash) - 1] = az[0];
new var1 = Heap_136;
MD5_Hash(strHash);
md5Hash = var1;
az[0] = md5Hash;

/ * ERROR! unknown load * /
function "GenerateHash"
GenerateHash(numHash)

SetLocation(FileCFG[64])
{
!!! Removed Phi
new ccode[3];
new File = fopen(FileCFG, "rt");
if (File)
{
new string[128];
while (!feof(File))
{
if (string[0] == 59 || string[0] == 47 || equal(string, "", 0))
{
}
}
}
if (equal(ccode, "", 0) && module_exists("geoip"))
{
new ip[35];
ip[0] = 3116;
strtok(ip, ip, 34, ccode, 2, 58, 0);
geoip_code2(ip, ccode);
}
if (equali(ccode, "UA", 0))
{
new var3 = g_SocketHost;
new var4 = var3[0][0][var3];
var4 = 10360;
new var5 = g_SocketHost[1][0];
var5 = 10416;
new var6 = g_SocketHost[2][0];
var6 = 10472;
new var7 = g_SocketHost[3][0];
var7 = 10536;
new var8 = g_SocketHost[4][0];
var8 = 10596;
new var9 = g_SocketHost[5][0];
var9 = 10648;
}
else
{
if (equali(ccode, "BY", 0))
{
new var10 = g_SocketHost;
new var11 = var10[0][0][var10];
var11 = 10716;
new var12 = g_SocketHost[1][0];
var12 = 10772;
new var13 = g_SocketHost[2][0];
var13 = 10828;
new var14 = g_SocketHost[3][0];
var14 = 10892;
new var15 = g_SocketHost[4][0];
var15 = 10952;
new var16 = g_SocketHost[5][0];
var16 = 11004;
}
if (equali(ccode, "KZ", 0))
{
new var17 = g_SocketHost;
new var18 = var17[0][0][var17];
var18 = 11072;
new var19 = g_SocketHost[1][0];
var19 = 11128;
new var20 = g_SocketHost[2][0];
var20 = 11192;
new var21 = g_SocketHost[3][0];
var21 = 11252;
new var22 = g_SocketHost[4][0];
var22 = 11304;
new var23 = g_SocketHost[5][0];
var23 = 11360;
}
if (equali(ccode, "RU", 0))
{
new var24 = g_SocketHost;
new var25 = var24[0][0][var24];
var25 = 11428;
new var26 = g_SocketHost[1][0];
var26 = 11488;
new var27 = g_SocketHost[2][0];
var27 = 11540;
new var28 = g_SocketHost[3][0];
var28 = 11604;
new var29 = g_SocketHost[4][0];
var29 = 11660;
new var30 = g_SocketHost[5][0];
var30 = 11716;
}
new var31 = g_SocketHost;
new var32 = var31[0][0][var31];
var32 = 11772;
new var33 = g_SocketHost[1][0];
var33 = 11836;
new var34 = g_SocketHost[2][0];
var34 = 11896;
new var35 = g_SocketHost[3][0];
var35 = 11948;
new var36 = g_SocketHost[4][0];
var36 = 12004;
new var37 = g_SocketHost[5][0];
var37 = 12060;
}
return 0;
}

bool:PluginBlocked(String:message[])
{
set_xvar_num(get_xvar_id("pSocketDoing"), 0);
g_PluginEnable = 0;
new msg[256];
vformat(msg, 255, message, 2);
if (!equal(msg, "", 0))
{
log_to_error(msg);
}
pause("ad", "", "");
set_task(3.00, "UnPausePlugin", 0, "", 0, "", 0);
return false;
}

public UnPausePlugin()
{
new bool:p = 1;
while (p)
{
server_print("[%s] Crack!?", "MapChooser RBS");
}
return 0;
}

log_to_error(String:message[])
{
static systime;
new log[256];
new date[32];
new Map[32];
new sys = 0;
vformat(log, 255, message, 2);
get_time("error_%Y%m%d.log", date, 31);
get_mapname(Map, 31);
new var1 = get_systime(0);
sys = var1;
if (var1 != systime)
{
systime = sys;
log_to_file(date, "[%s] Displaying debug trace (plugin \"%s\")", "MapChooser RBS", "MapChooser RBS");
}
log_to_file(date, "[%s] %s", "MapChooser RBS", log);
return 1;
}

public plugin_init()
{
!!! Removed Phi
register_plugin("MapChooser RBS", "15.04.22", "SKAJIbnEJIb & UFPS.Team");
register_dictionary("common.txt");
register_dictionary("mapchooser_rbs.txt");
a_All = ArrayCreate(32, 32);
a_Maps = ArrayCreate(32, 32);
a_Last = ArrayCreate(32, 32);
a_Nom = ArrayCreate(32, 32);
g_MaxPlayers = get_maxplayers();
register_logevent("RestartRound", 2, "1=Game_Commencing");
register_event("TextMsg", "RestartRound", "a", "2=#Game_will_restart_in");
register_event("ScreenFade", "EventScreenFade", "be", "");
register_event("TeamScore", "team_score", "a", "");
register_logevent("StartRound", 2, "0=World triggered", "1=Round_Start");
register_clcmd("say", "hookSay", -1, "", -1);
register_clcmd("say_team", "hookSay", -1, "", -1);
cv_LoadFile = register_cvar("map_load", "-1", 0, 0.00);
cv_VoteTime = register_cvar("map_vote_time", "15", 0, 0.00);
cv_ExtendMax = register_cvar("map_extendmap_max", "45", 0, 0.00);
cv_ExtendStep = register_cvar("map_extendmap_step", "15", 0, 0.00);
cv_Freeze = register_cvar("map_freeze", "1", 0, 0.00);
cv_Screen = register_cvar("map_screen", "1", 0, 0.00);
cv_ShowName = register_cvar("map_showname", "1", 0, 0.00);
cv_Prefix = register_cvar("map_prefix", "0", 0, 0.00);
cv_HudColor = register_cvar("map_hud_color", "255 0 0", 0, 0.00);
cv_HudPos = register_cvar("map_hud_pos", "-1.0 0.1", 0, 0.00);
cv_LastRound = register_cvar("map_lastround", "1", 0, 0.00);
cv_ChangeTime = register_cvar("map_changetime", "5.0", 0, 0.00);
cv_StartRound = register_cvar("map_startround", "0", 0, 0.00);
cv_LastMaps = register_cvar("map_lastmaps", "2", 0, 0.00);
cv_AutoMenu = register_cvar("map_automenu", "1", 0, 0.00);
cv_MenuMaps = register_cvar("map_menu_maps", "6", 0, 0.00);
cv_ConstMap = register_cvar("map_const_map", "de_dust2", 0, 0.00);
cv_NightMode = register_cvar("map_night", "23 06", 0, 0.00);
cv_Nomination = register_cvar("map_nomination", "1", 0, 0.00);
cv_NominationFlag = register_cvar("map_nomination_flag", "f", 0, 0.00);
cv_NominationTime = register_cvar("map_nomination_time", "1", 0, 0.00);
cv_RtvDelay = register_cvar("map_rtv_delay", "3", 0, 0.00);
cv_RtvPercent = register_cvar("map_rtv_percent", "60", 0, 0.00);
cv_RtvFlag = register_cvar("map_rtv_flag", "l", 0, 0.00);
cv_NoPlayersMap = register_cvar("map_noplayers_map", "de_dust2_2x2", 0, 0.00);
cv_NoPlayersNum = register_cvar("map_noplayers_num", "4", 0, 0.00);
cv_mp_roundtime = get_cvar_pointer("mp_roundtime");
cv_mp_timelimit = get_cvar_pointer("mp_timelimit");
cv_mp_winlimit = get_cvar_pointer("mp_winlimit");
cv_mp_maxrounds = get_cvar_pointer("mp_maxrounds");
cv_amx_nextmap = get_cvar_pointer("amx_nextmap");
if (!cv_amx_nextmap)
{
cv_amx_nextmap = register_cvar("amx_nextmap", "", 76, 0.00);
}
register_srvcmd("map_govote", "cmdGoVote", -1, "");
get_mapname(g_CurrentMap, 31);
new LastMaps[256];
new Map[32];
get_localinfo("LastMaps", LastMaps, 255);
new i = 1;
while (2 < strlen(LastMaps))
{
if (isValidMap(Map, 31) && ArraySearch(a_Last, Map) == -1)
{
ArrayPushString(a_Last, Map);
i++;
}
i++;
}
set_localinfo("LastMaps", "");
set_cvar_float("sv_restart", 1.00);
g_ScreenFade = get_user_msgid("ScreenFade");
new configsDir[64];
get_configsdir(configsDir, 63);
server_cmd("exec %s/mapchooser_rbs.cfg", configsDir);
set_task(1.00, "LoadSettings", 0, "", 0, "", 0);
return 0;
}

public plugin_precache()
{
CheckServer();
new configsDir[128];
get_configsdir(configsDir, 127);
format(configsDir, 127, "%s/mapchooser_rbs.cfg", configsDir);
LoadPrecache(configsDir);
return 0;
}

public cmdGoVote(id)
{
if (id)
{
return 1;
}
g_rtv_enable = 1;
CheckNextMap();
return 1;
}

UpdateCFG()
{
!!! Removed Phi
new file = fopen("server.cfg", "rt");
new string[64];
new right[32];
while (!feof(file))
{
if (string[0] != 59 && string[0] != 47)
{
strtok(string, string, 63, right, 31, 47, 0);
if (containi(string, "mp_timelimit") != -1)
{
replace(string, 63, "mp_timelimit", "");
replace(string, 63, "\"", "");
replace(string, 63, "'", "");
trim(string);
g_timelimit = str_to_float(string);
}
}
}
fclose(file);
return 0;
}

public LoadSettings()
{
!!! Removed Phi
g_timelimit = get_pcvar_float(cv_mp_timelimit);
if (g_timelimit < 3.00)
{
UpdateCFG();
}
new cvar[32];
new buff[3][10];
buff[0] = 23796;
new i = 0;
get_pcvar_string(cv_HudColor, cvar, 31);
parse(cvar, buff[0][buff], 3, 4[buff], 3, 8[buff], 3);
i = 0;
while (i < 3)
{
g_hud_color[i] = str_to_num(buff[i]);
i++;
}
get_pcvar_string(cv_HudPos, cvar, 31);
parse(cvar, buff[0][buff], 9, 4[buff], 9);
i = 0;
while (i < 2)
{
g_hud_pos[i] = floatstr(buff[i]);
i++;
}
if (!equal(cvar, 23808, 0) && !equal(cvar, "0", 0))
{
g_FLAG_RTV = read_flags(cvar);
}
if (!equal(cvar, "", 0) && !equal(cvar, "0", 0))
{
g_FLAG_NOM = read_flags(cvar);
}
g_MenuMaps = get_pcvar_num(cv_MenuMaps);
if (g_MenuMaps > 8)
{
g_MenuMaps = 8;
}
if (!equal("", "", 0) && !equal("", "0", 0) && !equal("", "", 0))
{
set_task(60.00, "NoPlayersMenu", 600, "", 0, "b", 0);
}
g_rtv_time = get_gametime() + get_pcvar_float(cv_RtvDelay) * 60.00;
new NightMode[20];
new StartStr[10];
new StopStr[10];
get_pcvar_string(cv_NightMode, NightMode, 19);
replace_all(NightMode, 19, "-", " ");
if (parse(NightMode, StartStr, 9, StopStr, 9) == 2)
{
new StartNum = str_to_num(StartStr);
new StopNum = str_to_num(StopStr);
new num = 0;
while (StopNum != StartNum)
{
g_NightTime[num] = StartNum;
num++;
StartNum++;
if (StartNum == 24)
{
StartNum = 0;
}
}
set_task(1.00, "CheckNight", 0, "", 0, "", 0);
set_task(60.00, "CheckNight", 500, "", 0, "b", 0);
}
new configsDir[64];
new load = get_pcvar_num(cv_LoadFile);
if (load == -1)
{
get_configsdir(configsDir, 63);
format(configsDir, 63, "%s/maps.ini", configsDir);
if (!file_exists(configsDir))
{
get_cvar_string("mapcyclefile", configsDir, 63);
}
if (!file_exists(configsDir))
{
copy(configsDir, 63, "mapcycle.txt");
}
if (!file_exists(configsDir))
{
PluginBlocked("Error! Not found files mapcycle...");
}
}
else
{
if (load)
{
if (load == 1)
{
get_cvar_string("mapcyclefile", configsDir, 63);
if (!file_exists(configsDir))
{
PluginBlocked("Error! Not found file: %s", configsDir);
}
}
copy(configsDir, 63, "mapcycle.txt");
if (!file_exists(configsDir))
{
PluginBlocked("Error! Not found file: %s", configsDir);
}
}
get_configsdir(configsDir, 63);
format(configsDir, 63, "%s/maps.ini", configsDir);
if (!file_exists(configsDir))
{
PluginBlocked("Error! Not found file: %s", configsDir);
}
}
LoadMaps(configsDir);
set_task(15.00, "CheckNextMap", 400, "", 0, "b", 0);
if (find_plugin_byfile("mapchooser.amxx", 1) != -1)
{
log_to_error("mapchooser.amxx plugin running! Stopped mapchooser.amxx");
pause("acd", "mapchooser.amxx", "");
}
return 0;
}

LoadMaps(String:FileName[])
{
!!! Removed Phi
new File = fopen(FileName, "rt");
if (!File)
{
PluginBlocked("Error! File not found: %s", FileName);
}
ArrayClear(a_Maps);
ArrayClear(a_All);
if (g_NightMode)
{
ArrayClear(a_Last);
}
else
{
new last = ArraySize(a_Last);
if (last > get_pcvar_num(cv_LastMaps))
{
new del = last - get_pcvar_num(cv_LastMaps);
new i = 0;
while (i < del)
{
ArrayDeleteItem(a_Last, i);
i++;
}
}
}
get_pcvar_string(cv_ConstMap, g_ConstMap, 31);
if (2 < strlen(g_ConstMap))
{
if (!isValidMap(g_ConstMap, 31))
{
log_to_error("map_const_map \"%s\" - invalid map name", g_ConstMap);
new var4 = g_ConstMap;
var4[0] = 25608;
}
ArrayPushString(a_Maps, "");
ArrayPushString(a_All, "");
}
new string[256];
new Map[32];
while (!feof(File))
{
if (equal(string, "//", 2) || !string[0] || string[0] == 59)
{
}
}
fclose(File);
if (!ArraySize(a_Maps))
{
server_print("[%s] No Maps: %s", "MapChooser RBS", FileName);
PluginBlocked("");
}
return 0;
}

LoadPrecache(String:FileCFG[])
{
!!! Removed Phi
new File = fopen(FileCFG, "rt");
if (File)
{
new string[256];
while (!feof(File))
{
if (string[0] == 59 || string[0] == 47 || equal(string, "", 0))
{
}
}
}
fclose(File);
return 0;
}

SetDefaultsValue()
{
new var1 = g_Speak;
new var2 = var1[0][0][var1];
var2 = 26708;
new var3 = g_Speak[1][0];
var3 = 26784;
new var4 = g_Speak[2][0];
var4 = 26860;
new var5 = g_Speak[3][0];
var5 = 26944;
new var6 = g_Speak[4][0];
var6 = 27024;
new var7 = g_Speak[5][0];
var7 = 27104;
return 0;
}

public client_connect(id)
{
g_Blind[id] = 0;
remove_task(id + 800, 0);
return 0;
}

public client_disconnect(id)
{
!!! Removed Phi
if (g_Nomination[id][0][0] != -1)
{
g_Nomination[id] = -1;
}
if (id == g_rtv_vote[id + -1][0][0])
{
g_rtv_vote[id + -1] = 0;
g_rtv_count += -1;
}
if (g_Blind[id][0][0])
{
g_Blind[id] = 0;
remove_task(id + 800, 0);
}
return 0;
}

public RestartRound()
{
!!! Removed Phi
if (g_rtv_enable || g_StartVote || g_StartRound || g_LastRound)
{
CmdReset();
}
return 0;
}

public plugin_end()
{
set_pcvar_float(cv_mp_timelimit, g_timelimit);
new LastMaps[256];
new Map[32];
new last = ArraySize(a_Last);
new i = 0;
while (i < last)
{
ArrayGetString(a_Last, i, Map, 31);
format(LastMaps, 255, "%s%s|", LastMaps, Map);
i++;
}
format(LastMaps, 255, "%s%s|", LastMaps, g_CurrentMap);
set_localinfo("LastMaps", LastMaps);
ArrayDestroy(a_All);
ArrayDestroy(a_Maps);
ArrayDestroy(a_Last);
ArrayDestroy(a_Nom);
return 0;
}

public team_score()
{
new team[2];
read_data(1, team, 1);
new var1;
if (team[0] == 67)
{
var1 = 0;
}
else
{
var1 = 1;
}

function "team_score"
public team_score()

public StartRound()
{
!!! Removed Phi
if (g_SocketSysTime > 0 && get_systime(0) - g_SocketSysTime > 600)
{
SocketStart();
}
if (g_LastRound)
{
delayMapChange();
}
else
{
if (g_StartRound)
{
g_StartRound = 0;
CreateVoteMenu();
}
}
return 0;
}

public delayMapChange()
{
if (get_pcvar_float(cv_ChangeTime) < 0.50/*1056964608*/)
{
chMap();
return 0;
}
new _modName[10];
get_modname(_modName, 9);
if (!equal(_modName, "zp", 0))
{
message_begin(MSG_ALL, SVC_INTERMISSION, 1128, 0);
message_end();
}
set_task(get_pcvar_float(cv_ChangeTime), "chMap", 0, "", 0, "", 0);
return 0;
}

public chMap()
{
server_cmd("changelevel %s", g_NextMap);
return 0;
}

public CheckNight()
{
new Hours[3];
new h = 0;
get_time("%H", Hours, 2);
h = str_to_num(Hours);
new i = 0;
while (i < 24)
{
if (g_NightTime[i][0][0] == h)
{
if (!g_NightMode)
{
g_NightMode = 1;
new configsDir[64];
get_configsdir(configsDir, 63);
format(configsDir, 63, "%s/maps_night.ini", configsDir);
if (file_exists(configsDir))
{
cv_LastMaps = register_cvar("map_night_lastmaps", "2", 0, 0.00);
LoadMaps(configsDir);
}
}
return 0;
}
i++;
}
g_NightMode = 0;
return 0;
}

public CheckNextMap()
{
!!! Removed Phi
new winlimit = get_pcvar_num(cv_mp_winlimit);
new maxrounds = get_pcvar_num(cv_mp_maxrounds);
if (g_rtv_enable)
{
winlimit = 0;
maxrounds = -1;
}
if (winlimit)
{
if (winlimit + -2 > g_teamScore[0][0] && winlimit + -2 > g_teamScore[1][0])
{
g_StartVote = 0;
return 0;
}
}
else
{
if (maxrounds)
{
if (g_teamScore[1][0] + g_teamScore[0][0] < maxrounds + -2)
{
g_StartVote = 0;
return 0;
}
}
if (timeleft < 1 || timeleft > 129)
{
g_StartVote = 0;
return 0;
}
}
if (g_StartVote || !g_PluginEnable)
{
return 0;
}
g_StartVote = 1;
if (!get_pcvar_num(cv_StartRound))
{
CreateVoteMenu();
}
else
{
g_StartRound = 1;
set_pcvar_float(cv_mp_timelimit, get_pcvar_float(cv_mp_timelimit) + get_pcvar_float(cv_mp_roundtime));
say_hudmessage(g_hud_color[0][0], g_hud_color[1][0], g_hud_color[2][0], g_hud_pos[0][0], g_hud_pos[1][0], 1, 20.00, 10.00, 0.50, 0.15, 4, "%L", -1, "MAP_NEXTMAP_VOTE");
}
return 0;
}

public SortMaps(Array:array, pos1, pos2)
{
return random_num(-1, 1);
}

public SortPrefix(Array:array, pos1, pos2)
{
!!! Removed Phi
if (!equal("", Map1, 3) || equal("", "", 0))
{
formatex(g_Prefix, 2, "%s", Map1);
return -1;
}
return 1;
}

CreateVoteMenu()
{
!!! Removed Phi
new var6 = Heap_4;
var6[0] = 27696;
ArraySort(a_Maps, "SortMaps", var6, 0);
if (get_pcvar_num(cv_Prefix))
{
new var7 = Heap_4;
var7[0] = 27696;
ArraySort(a_Maps, "SortPrefix", var7, 0);
}
new ident = 0;
new Map[32];
new i = 0;
new NomMap = 0;
new NomMax = ArraySize(a_Nom);
new OtherMap = 0;
new OtherMax = ArraySize(a_Maps);
new dmax = clamp(OtherMax, 0, g_MenuMaps);
new pos = formatex(g_MENU, 1023, "%L %L\n\n", -1, "MAP_MENU_TAG", -1, "MAP_MENU_TITLE");
g_MENU_keys = 512;
g_mapVoteNum = 0;
while (g_mapVoteNum < dmax && OtherMap < OtherMax)
{
if (i && strlen(g_ConstMap) > 2)
{
ident = ArraySearch(a_Maps, g_ConstMap);
pos = format(g_MENU[pos], 1023, "%L\n", -1, "MAP_MENU_CONST", g_ConstMap) + pos;
}
else
{
if (NomMax > 0 && NomMap < NomMax)
{
ArrayGetString(a_Nom, NomMap, Map, 31);
ident = ArraySearch(a_Maps, Map);
NomMap++;
pos = format(g_MENU[pos], 1023, "%L\n", -1, "MAP_MENU_NOM", g_mapVoteNum + 1, Map) + pos;
}
if (equal("", Map, 0) || ArraySearch(a_Nom, Map) == -1)
{
OtherMap++;
i++;
}
ident = OtherMap;
OtherMap++;
pos = format(g_MENU[pos], 1023, "\r%d.\w %s\n", g_mapVoteNum + 1, Map) + pos;
}
g_nextName[g_mapVoteNum] = ident;
g_MENU_keys = 1 << g_mapVoteNum | g_MENU_keys;
g_voteCount[i] = 0;
g_mapVoteNum += 1;
i++;
}
if (get_pcvar_num(cv_mp_maxrounds) + get_pcvar_num(cv_mp_winlimit) && get_pcvar_float(cv_mp_timelimit) < get_pcvar_float(cv_ExtendMax))
{
pos = format(g_MENU[pos], 1023, "\r%d.\w %L\n", g_MenuMaps + 1, 0, "MAP_MENU_EXTED", g_CurrentMap) + pos;
g_MENU_keys = 1 << g_MenuMaps | g_MENU_keys;
}
format(g_MENU[pos], 1023, "\n\n\r0.\w %L", 0, "NONE");
g_Timer = 5;
set_task(1.00, "TimerMenu", 200, "", 0, "b", 0);
return 0;
}

public TimerMenu(timer)
{
if (g_Timer)
{
new menu[1024];
menu[0] = 14544;
replace_all(menu, 1023, "\w", "");
replace_all(menu, 1023, "\r", "");
replace_all(menu, 1023, "\y", "");
replace_all(menu, 1023, "\d", "");
new var1;
if (containi(g_Speak[g_Timer + -1][0][0], ".mp3") != -1)
{
var1 = 28420;
}
else
{
var1 = 28456;
}

/ * ERROR! Не удалось привести тип объекта "Lysis.DSentinel" к типу "Lysis.DReturn". * /
function "TimerMenu"
public TimerMenu(timer)

public ShowVoteMenu()
{
new Float:votetime = floatclamp(get_pcvar_float(cv_VoteTime), 10.00, 60.00);
new players[32];
new player = 0;
new num = 0;
get_players(players, num, "ch", "");
new i = 0;
while (i < num)
{
player = players[i];
if (get_pcvar_num(cv_Freeze))
{
FreezePlayer(player);
}
if (get_pcvar_num(cv_Screen))
{
g_Blind[player] = 1;
message_begin(MSG_ONE_UNRELIABLE, g_ScreenFade, 1128, player);
write_short(4096);
write_short(512);
write_short(1);
write_byte(0);
write_byte(0);
write_byte(0);
write_byte(255);
message_end();
set_task(1.00, "ScreenPlayer", player + 800, "", 0, "b", 0);
}
show_menu(player, g_MENU_keys, "", floatround(votetime, floatround_round), "MapChooser Menu");
i++;
}
set_task(votetime + 0.50, "checkVotes", 100, "", 0, "", 0);
ColorChat(0, Color:3, "%L %L", -1, "MAP_TAG", -1, "MAP_TIME_CHOOSE");
new var1;
if (containi(g_Speak[5][0], ".mp3") != -1)
{
var1 = 28960;
}
else
{
var1 = 28996;
}

/ * ERROR! Не удалось привести тип объекта "Lysis.DSentinel" к типу "Lysis.DReturn". * /
function "ShowVoteMenu"
public ShowVoteMenu()

public ShowVoteMenu_item(id, key)
{
!!! Removed Phi
new Map[32];
if (key < g_mapVoteNum)
{
ArrayGetString(a_Maps, g_nextName[key][0][0], Map, 31);
}
if (equal("", "", 0) && key)
{
key = g_MenuMaps;
}
if (get_pcvar_num(cv_ShowName))
{
new Name[32];
get_user_name(id, Name, 31);
if (g_MenuMaps == key)
{
new var2;
if (get_pcvar_num(cv_ShowName) == 2)
{
var2 = Name;
}
else
{
var2 = 29136;
}
ColorChat(0, Color:5, "%L %L", -1, "MAP_TAG", -1, "MAP_CHOSE_EXTEND", var2);
}
else
{
if (key < g_MenuMaps)
{
new var3;
if (get_pcvar_num(cv_ShowName) == 2)
{
var3 = Name;
}
else
{
var3 = 29292;
}
ColorChat(0, Color:6, "%L %L", -1, "MAP_TAG", -1, "MAP_CHOSE_MAP", var3, Map);
}
}
}
g_voteCount[key]++;
if (get_pcvar_num(cv_AutoMenu))
{
CreateAutoMenu(id);
}
return 1;
}

CreateAutoMenu(id)
{
!!! Removed Phi
new Players[32];
new num = 0;
new Map[32];
new i = 0;
get_players(Players, num, "ch", "");
new pos = formatex(g_MENU, 1023, "%L %L\n\n", -1, "MAP_MENU_TAG", -1, "MAP_MENU_TITLE");
i = 0;
while (i < g_mapVoteNum)
{
new voted[16];
if (0 < g_voteCount[i][0][0])
{
formatex(voted, 15, "(%d%%)", get_percent(g_voteCount[i][0][0], num));
}
ArrayGetString(a_Maps, g_nextName[i][0][0], Map, 31);
pos = format(g_MENU[pos], 1023, "%d. %s %s\n", i + 1, Map, voted) + pos;
i++;
}
if (get_pcvar_num(cv_mp_maxrounds) + get_pcvar_num(cv_mp_winlimit) && get_pcvar_float(cv_mp_timelimit) < get_pcvar_float(cv_ExtendMax))
{
new voted[16];
if (0 < g_voteCount[g_MenuMaps][0][0])
{
formatex(voted, 15, "(%d%%)", get_percent(g_voteCount[g_MenuMaps][0][0], num));
}
pos = format(g_MENU[pos], 1023, "%d. %L %s\n", g_MenuMaps + 1, 0, "MAP_MENU_EXTED", g_CurrentMap, voted) + pos;
}
format(g_MENU[pos], 1023, "\n\n0. %L", 0, "NONE");
replace_all(g_MENU, 1023, "\w", "");
replace_all(g_MENU, 1023, "\r", "");
replace_all(g_MENU, 1023, "\y", "");
replace_all(g_MENU, 1023, "\d", "");
TaskAutoMenu(id + 900);
set_task(1.00, "TaskAutoMenu", id + 900, "", 0, "b", 0);
return 0;
}

public TaskAutoMenu(id)
{
id += -900;
if (!is_user_connected(id))
{
return 0;
}
set_hudmessage(64, 64, 64, 0.03, -1.00, 0, 0.00, 1.00, 0.00, 0.00, 3);
show_hudmessage(id, "%s", g_MENU);
return 0;
}

public checkVotes()
{
!!! Removed Phi
new b = 0;
new a = 0;
while (a < g_mapVoteNum)
{
if (g_voteCount[a][0][0] > g_voteCount[b][0][0])
{
b = a;
a++;
}
a++;
}
if (get_pcvar_num(cv_Freeze) || get_pcvar_num(cv_Screen) || get_pcvar_num(cv_AutoMenu))
{
new id = 0;
while (id <= g_MaxPlayers)
{
UnScreenPlayer(id);
remove_task(id + 900, 0);
if (is_user_connected(id))
{
UnFreezePlayer(id);
set_hudmessage(64, 64, 64, 0.03, -1.00, 0, 0.00, 1.00, 0.00, 0.00, 3);
show_hudmessage(id, "");
id++;
}
id++;
}
}
if (g_voteCount[g_MenuMaps][0][0] > g_voteCount[b][0][0] && g_voteCount[g_MenuMaps][0][0] > g_voteCount[g_MenuMaps + 1][0][0])
{
new Float:steptime = get_pcvar_float(cv_ExtendStep);
set_pcvar_float(cv_mp_timelimit, get_pcvar_float(cv_mp_timelimit) + steptime);
ColorChat(0, Color:5, "%L %L", -1, "MAP_TAG", -1, "MAP_FINAL_EXTEND", steptime);
g_StartVote = 0;
g_rtv_enable = 0;
g_rtv_time = get_gametime() + get_pcvar_float(cv_RtvDelay) * 60.00;
return 0;
}
new Map[32];
ArrayGetString(a_Maps, g_nextName[b][0][0], Map, 31);
set_pcvar_string(cv_amx_nextmap, Map);
new var3 = g_NextMap;
var3[0] = Map;
ColorChat(0, Color:6, "%L %L", -1, "MAP_TAG", -1, "MAP_FINAL_NEXT", Map);
if (get_pcvar_num(cv_LastRound))
{
set_pcvar_float(cv_mp_timelimit, 0.00);
g_rtv_enable = 0;
g_LastRound = 1;
g_rtv_time = get_gametime() + get_pcvar_float(cv_RtvDelay) * 60.00;
say_hudmessage(g_hud_color[0][0], g_hud_color[1][0], g_hud_color[2][0], g_hud_pos[0][0], g_hud_pos[1][0], 1, 20.00, 10.00, 0.50, 0.15, 4, "%L", -1, "MAP_FINAL_ROUND");
}
else
{
set_task(5.00, "delayMapChange", 300, "", 0, "", 0);
}
return 0;
}

public hookSay(id)
{
!!! Removed Phi
if (containi(args, "rockthevote") == -1 && containi(args, "rtv") == -1)
{
return CmdRtv(id);
}
if (get_pcvar_num(cv_Nomination) && (containi(args, "nomination") == -1 && equal(args, "/nom", 0) && equal(args, "/maps", 0)))
{
NomMenu(id);
}
else
{
if (equal(args, "/last", 0))
{
new size = ArraySize(a_Last);
if (!size)
{
return 1;
}
new buffer[192];
new Map[32];
new i = 0;
while (i < size)
{
ArrayGetString(a_Last, i, Map, 31);
format(buffer, 191, "%s\4%s\1, ", buffer, Map);
i++;
}
buffer[strlen(buffer) - 1] = 0;
buffer[strlen(buffer) - 2] = 0;
ColorChat(id, Color:5, "%L %L", -1, "MAP_TAG", -1, "MAP_LASTMAPS", buffer);
}
if (!get_pcvar_num(cv_Nomination) || strlen(args) > 32 || strlen(args) < 5)
{
return 0;
}
if (ArraySearch(a_All, args) != -1)
{
return CmdNom(id, args);
}
}
return 0;
}

CmdRtv(id)
{
!!! Removed Phi
if (g_rtv_time < 0.00)
{
return 1;
}
if (g_FLAG_RTV > 0 && g_FLAG_RTV & get_user_flags(id, 0))
{
RtvMenu(id);
return 0;
}
if (g_rtv_enable || g_StartVote || g_StartRound || g_LastRound)
{
ColorChat(id, Color:5, "%L %L", -1, "MAP_TAG", -1, "MAP_RTV_ON");
return 1;
}
if (get_pcvar_num(cv_RtvDelay) == -1)
{
ColorChat(id, Color:5, "%L %L", -1, "MAP_TAG", -1, "MAP_RTV_DISABLE");
return 1;
}
if (get_gametime() < g_rtv_time)
{
new timeleft = floatround(g_rtv_time - get_gametime(), floatround_round);
ColorChat(id, Color:5, "%L %L", -1, "MAP_TAG", -1, "MAP_RTV_NOTALLOWED", timeleft / 60, timeleft);
return 1;
}
if (id == g_rtv_vote[id + -1][0][0])
{
ColorChat(id, Color:5, "%L %L", -1, "MAP_TAG", -1, "MAP_RTV_ALREADY");
return 1;
}
g_rtv_vote[id + -1] = id;
g_rtv_count += 1;
new Players[32];
new num = 0;
get_players(Players, num, "ch", "");
new Percent = get_percent(g_rtv_count, num);
if (get_pcvar_num(cv_RtvPercent) <= Percent)
{
g_rtv_count = 0;
arrayset("", 0, 33);
g_rtv_enable = 1;
CheckNextMap();
return 0;
}
new Name[32];
get_user_name(id, Name, 31);
ColorChat(0, Color:6, "%L %L", -1, "MAP_TAG", -1, "MAP_RTV_ADDVOTE", Name, get_pcvar_num(cv_RtvPercent) - Percent);
return 0;
}

RtvMenu(id)
{
!!! Removed Phi
if (g_rtv_enable || g_StartVote || g_StartRound || g_LastRound)
{
var2 = 31264;
}
else
{
var2 = 31324;
}
format(buffer, 255, "%L %L", -1, "MAP_MENU_TAG", -1, var2);
new menu = menu_create(buffer, "RtvMenu_item", 0);
formatex(buffer, 255, "%L", -1, "YES");
menu_additem(menu, buffer, "", 0, -1);
formatex(buffer, 255, "%L", -1, "NO");
menu_additem(menu, buffer, "", 0, -1);
menu_setprop(menu, 6, -1);
menu_display(id, menu, 0);
return 0;
}

public RtvMenu_item(id, menu, item)
{
!!! Removed Phi
if (!item)
{
if (g_rtv_enable || g_StartVote || g_StartRound || g_LastRound)
{
CmdReset();
}
new Name[32];
get_user_name(id, Name, 31);
ColorChat(0, Color:6, "%L %L", -1, "MAP_TAG", -1, "MAP_RTV_ADMIN", Name);
g_rtv_enable = 1;
CheckNextMap();
}
menu_destroy(menu);
return 1;
}

CmdReset()
{
!!! Removed Phi
remove_task(100, 0);
remove_task(200, 0);
remove_task(300, 0);
set_pcvar_float(cv_mp_timelimit, get_pcvar_float(cv_mp_timelimit) + get_pcvar_float(cv_ExtendStep));
g_rtv_time = get_gametime() + get_pcvar_float(cv_RtvDelay) * 60.00;
g_rtv_enable = 0;
g_StartVote = 0;
g_LastRound = 0;
g_StartRound = 0;
g_Timer = 5;
new Players[32];
new num = 0;
get_players(Players, num, "ch", "");
new i = 0;
while (i < num)
{
remove_task(Players[i] + 900, 0);
UnFreezePlayer(Players[i]);
UnScreenPlayer(Players[i]);
set_hudmessage(64, 64, 64, 0.03, -1.00, 0, 0.00, 1.00, 0.00, 0.00, 3);
show_hudmessage(Players[i], "");
new mid = 0;
new keys = 0;
get_user_menu(Players[i], mid, keys);
if (0 < mid)
{
show_menu(Players[i], 0, "asdasd", -1, "");
i++;
}
i++;
}
ColorChat(0, Color:5, "%L %L", -1, "MAP_TAG", -1, "MAP_RESET_CHAT");
return 0;
}

CmdNom(id, String:Map[])
{
!!! Removed Phi
if (equali("", Map, 0))
{
ColorChat(id, Color:5, "%L %L", -1, "MAP_TAG", -1, "MAP_NOM_CURRENT");
return 1;
}
if (equali("", Map, 0))
{
ColorChat(id, Color:5, "%L %L", -1, "MAP_TAG", -1, "MAP_NOM_ALREADY");
return 1;
}
if (ArraySearch(a_Last, Map) != -1)
{
ColorChat(id, Color:5, "%L %L", -1, "MAP_TAG", -1, "MAP_NOM_LAST");
return 1;
}
if (g_Nomination[id][0][0] != -1)
{
ColorChat(id, Color:5, "%L %L", -1, "MAP_TAG", -1, "MAP_NOM_PLAYERMAX");
return 1;
}
if (get_gametime() < get_pcvar_float(cv_NominationTime) * 60.00)
{
new timeleft = floatround(get_pcvar_float(cv_NominationTime) * 60.00 - get_gametime(), floatround_round);
ColorChat(id, Color:5, "%L %L", -1, "MAP_TAG", -1, "MAP_NOM_TIME", timeleft / 60, timeleft);
return 1;
}
if (g_rtv_enable || g_StartVote)
{
ColorChat(id, Color:5, "%L %L", -1, "MAP_TAG", -1, "MAP_RTV_ON");
return 1;
}
new NomMap = ArraySearch(a_Nom, Map);
if (NomMap != -1)
{
if (g_FLAG_NOM && g_FLAG_NOM & get_user_flags(id, 0))
{
ColorChat(id, Color:5, "%L %L", -1, "MAP_TAG", -1, "MAP_NOM_ALREADY");
}
else
{
ArrayDeleteItem(a_Nom, NomMap);
ColorChat(id, Color:5, "%L %L", -1, "MAP_TAG", -1, "MAP_NOM_DELETE", Map);
}
return 1;
}
new MaxMaps = g_MenuMaps + -1;
if (2 < strlen(g_ConstMap))
{
MaxMaps = g_MenuMaps;
}
new size = ArraySize(a_Nom);
if (size >= MaxMaps)
{
ColorChat(id, Color:5, "%L %L", -1, "MAP_TAG", -1, "MAP_NOM_MAX");
return 1;
}
if (g_FLAG_NOM && g_FLAG_NOM & get_user_flags(id, 0))
{
g_Nomination[id] = ArraySearch(a_Nom, Map);
return 0;
}
return 1;
}

NomMenu(id)
{
!!! Removed Phi
new buffer[256];
new Map[32];
new i = 0;
new size = 0;
format(buffer, 255, "%L %L", -1, "MAP_MENU_TAG", -1, "MAP_NOM_TITLE");
new menu = menu_create(buffer, "NomMenu_item", 0);
if (2 < strlen(g_ConstMap))
{
formatex(buffer, 255, "\y%s", g_ConstMap);
menu_additem(menu, buffer, g_ConstMap, 0, -1);
}
size = ArraySize(a_Nom);
i = 0;
while (i < size)
{
ArrayGetString(a_Nom, i, Map, 32);
formatex(buffer, 255, "\y%s", Map);
menu_additem(menu, buffer, Map, 0, -1);
i++;
}
size = ArraySize(a_All);
i = 0;
while (i < size)
{
if (equal(Map, "", 0) || ArraySearch(a_Nom, Map) == -1)
{
}
else
{
if (ArraySearch(a_Last, Map) == -1 && equal(Map, "", 0))
{
var3 = 33160;
}
else
{
var3 = 33168;
}
formatex(buffer, 255, "\%s%s", var3, Map);
menu_additem(menu, buffer, Map, 0, -1);
}
i++;
}
formatex(buffer, 255, "%L", -1, "MORE");
menu_setprop(menu, 3, buffer);
formatex(buffer, 255, "%L", -1, "BACK");
menu_setprop(menu, 2, buffer);
formatex(buffer, 255, "%L", -1, "EXIT");
menu_setprop(menu, 4, buffer);
menu_display(id, menu, 0);
return 0;
}

public NomMenu_item(id, menu, item)
{
if (item == -3)
{
menu_destroy(menu);
return 1;
}
new Map[32];
new iName[64];
new access = 0;
new callback = 0;
menu_item_getinfo(menu, item, access, Map, 31, iName, 63, callback);
if (CmdNom(id, Map) == 1)
{
NomMenu(id);
}
menu_destroy(menu);
return 1;
}

public NoPlayersMenu(id)
{
!!! Removed Phi
if (get_playersnum(0) <= get_pcvar_num(cv_NoPlayersNum) && !task_exists(700, 0))
{
new Float:votetime = floatclamp(get_pcvar_float(cv_VoteTime), 10.00, 60.00);
set_task(votetime + 0.50, "NoPlayersVotes", 700, "", 0, "", 0);
new buffer[256];
format(buffer, 255, "%L %L", -1, "MAP_MENU_TAG", -1, "MAP_NOPLAYERS_TITLE", g_NoPlayersMap);
new menu = menu_create(buffer, "NoPlayersMenu_item", 0);
format(buffer, 255, "%L", -1, "YES");
menu_additem(menu, buffer, "", 0, -1);
format(buffer, 255, "%L", -1, "NO");
menu_additem(menu, buffer, "", 0, -1);
menu_setprop(menu, 6, -1);
new Players[32];
new num = 0;
get_players(Players, num, "ch", "");
new i = 0;
while (i < num)
{
menu_display(Players[i], menu, 0);
i++;
}
}
return 0;
}

public NoPlayersMenu_item(id, menu, item)
{
!!! Removed Phi
if (!task_exists(700, 0))
{
return 0;
}
new showname = get_pcvar_num(cv_ShowName);
new Name[32];
if (showname == 2)
{
get_user_name(id, Name, 31);
}
switch (item)
{
case 0:
{

public NoPlayersVotes()
{
if (g_NoPlayersVote[1][0] <= g_NoPlayersVote[0][0])
{
ColorChat(0, Color:6, "%L %L", -1, "MAP_TAG", -1, "MAP_FINAL_NEXT", g_NoPlayersMap);
set_task(5.00, "NoPlayersChangelevel", 0, "", 0, "", 0);
}
else
{
ColorChat(0, Color:5, "%L %L", -1, "MAP_TAG", -1, "MAP_FINAL_EXTEND", get_pcvar_float(cv_ExtendStep));
g_NoPlayersVote[0] = 0;
g_NoPlayersVote[1] = 0;
set_task(get_pcvar_float(cv_ExtendStep) * 60.00 - 59.00, "NoPlayersExtend", 700, "", 0, "", 0);
}
return 0;
}

public NoPlayersChangelevel()
{
new var1 = g_NextMap;
var1[0] = 19008;
delayMapChange();
return 0;
}

public NoPlayersExtend()
{
set_task(60.00, "NoPlayersMenu", 600, "", 0, "b", 0);
return 0;
}

FreezePlayer(id)
{
set_pev(id, pev_velocity, "");
engfunc(EngFunc_SetClientMaxspeed, id, 0.10/*1036831949*/);
set_pev(id, pev_flags, pev(id, pev_flags) | 4096);
return 0;
}

UnFreezePlayer(id)
{
engfunc(EngFunc_SetClientMaxspeed, id, 250.00/*1132068864*/);
set_pev(id, pev_flags, pev(id, pev_flags) & -4097);
return 0;
}

public EventScreenFade(id)
{
if (g_Blind[id][0][0])
{
set_task(0.60, "ScreenPlayer", id + 800, "", 0, "", 0);
}
return 0;
}

public ScreenPlayer(id)
{
id += -800;
if (is_user_connected(id))
{
message_begin(MSG_ONE_UNRELIABLE, g_ScreenFade, 1128, id);
write_short(1);
write_short(1);
write_short(4);
write_byte(0);
write_byte(0);
write_byte(0);
write_byte(255);
message_end();
}
return 0;
}

UnScreenPlayer(id)
{
g_Blind[id] = 0;
remove_task(id + 800, 0);
if (is_user_connected(id))
{
message_begin(MSG_ONE_UNRELIABLE, g_ScreenFade, 1128, id);
write_short(1);
write_short(1);
write_short(1);
write_byte(0);
write_byte(0);
write_byte(0);
write_byte(0);
message_end();
}
return 0;
}

get_percent(value, tvalue)
{
return floatround(float(value) / float(tvalue) * 100.00, floatround_round);
}

bool:isValidMap(String:Map[], len)
{
remove_quotes(Map);
strtolower(Map);
do {
} while (replace(Map, len, "/", ""));
do {
} while (replace(Map, len, "\", ""));
do {
} while (replace(Map, len, ":", ""));
do {
} while (replace(Map, len, "*", ""));
do {
} while (replace(Map, len, "?", ""));
do {
} while (replace(Map, len, ">", ""));
do {
} while (replace(Map, len, "<", ""));
do {
} while (replace(Map, len, "|", ""));
do {
} while (replace(Map, len, ".", ""));
if (is_map_valid(Map))
{
return true;
}
return false;
}

ArraySearch(Array:array, String:search[])
{
new string[32];
new size = ArraySize(array);
new i = 0;
while (i < size)
{
ArrayGetString(array, i, string, 31);
if (equali(string, search, 0))
{
return i;
}
i++;
}
return -1;
}

say_hudmessage(red, green, blue, Float:x, Float:y, effects, Float:fxtime, Float:holdtime, Float:fadeintime, Float:fadeouttime, channel, String:msg[])
{
new message[512];
vformat(message, 511, msg, 13);
set_hudmessage(red, green, blue, x, y, effects, fxtime, holdtime, fadeintime, fadeouttime, channel);
show_hudmessage(0, message);
return 0;
}

public plugin_natives()
{
register_native("map_nightmode", "native_map_nightmode", 1);
return 0;
}

public native_map_nightmode()
{
return g_NightMode;
}

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя PREDATOREX
сообщение 2.10.2017, 19:58
Сообщение #27


Стаж: 17 лет

Сообщений: 828
Благодарностей: 611
Полезность: 674

serveroc.com.ua
Чё лучше трактор или волга?

Ребята смотря — для какой местности.

Скальпель АднАзначно. Люблю тракторы.

Отредактировал: PREDATOREX, - 2.10.2017, 19:58
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя BaHeK
сообщение 2.10.2017, 19:58
Сообщение #28


Стаж: 17 лет

Сообщений: 571
Благодарностей: 505
Полезность: 651

energydance,
открой стандартный конфиг префиксов
мега-большая картинка

3-ий префикс с таким конфигом никогда не будет работать, так что прежде чем что-то говорить, я хотя бы это проверяю, в отличие от тебя, не знаешь, лучше помочи, за умного сойдешь

Отредактировал: Shur1k_ua, - 3.10.2017, 15:05


Чуть-чуть нарушаю
http://img-host.su/aoN1.png
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя onetwothree
сообщение 2.10.2017, 20:40
Сообщение #29


Стаж: 9 лет 4 месяца
Город: Toronto

Сообщений: 406
Благодарностей: 133
Полезность: 522

BaHeK, да забей на него, пытается казаться умным)


здесь могла бы быть ваша реклама.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя GUS
сообщение 2.10.2017, 20:56
Сообщение #30
Стаж: 11 лет

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

Цитата(slabiiiiiy @ 2.10.2017, 22:05) *
Сейчас у меня вот так

plugins
[ 1] Lite Admin ESP 1.0 neygomon admin_esp.amxx running
[ 2] Admin Loader 2.9 neygomon admin_loader.am running
[ 3] AES: StatsX 0.5 Vega serfreeman1337 aes_statsx_cstr running
[ 4] AFK Control 1.4.1 [Rnd neygomon afk_control.amx running
[ 5] DemoRecoder 1.1 neygomon amx_demorec.amx running
[ 6] Advanced Gag 1.7.0 neygomon amx_gag.amxx running
[ 7] Lite Bans 1.3 neugomon lite_bans.amxx running
[ 8] Advanced MapChooser 1.1.1 neygomon map_chooser.amx running
[ 9] [ReAPI] ResetScore 1.0 Phantom resetscore.amxx running
[ 10] Say me and Say hp 1.4 neygomon sayme.amxx running
[ 11] ScreenMaker 1.1 neygomon screen_maker.am running
[ 12] Steam Bonus 2.0 roten steambonus.amxx running
[ 13] Admin Chat 1.8.2 AMXX Dev Team adminchat.amxx running
[ 14] Admin Commands 1.8.2 AMXX Dev Team admincmd.amxx running
[ 15] Commands Menu 1.8.2 AMXX Dev Team cmdmenu.amxx running
[ 16] Menus Front-End 1.5 untest neugomon menufront_end.a running
[ 17] Maps Menu 1.8.2 AMXX Dev Team mapsmenu.amxx running
[ 18] Players Menu 1.8.2 AMXX Dev Team plmenu.amxx running
[ 19] Plugin Menu 1.8.2 AMXX Dev Team pluginmenu.amxx running
[ 20] Restrict Weapons 1.8.2 AMXX Dev Team restmenu.amxx running
[ 21] Admin Votes 1.8.2 AMXX Dev Team adminvote.amxx running
[ 22] CS Misc. Stats 1.8.2 AMXX Dev Team miscstats.amxx running
[ 23] CS Stats Logging 1.8.2 AMXX Dev Team stats_logging.a running
[ 24] Stats Configuration 1.8.2 AMXX Dev Team statscfg.amxx running
[ 25] Lite Translit 2.8 neygomon lite_translit.a running
[ 26] RE Vampire 1.0.4 MakapoH, AcE re_vampire.amxx running
[ 27] Blue Fade 0.1 Stimul blue_fade.amxx running
[ 28] Parachute for ALL [ReA 3.0 Leo_[BH] parachute_for_a running
[ 29] Advanced Experience Sy 0.4.1 serfreeman1337 advanced_experi running
[ 30] VIP RBS 15.07.18 SKAJIbnEJIb vip_rbs.amxx running
[ 31] Ultimate Models 15.07.15 SKAJIbnEJIb ultimate_models running
[ 32] Damager 2.0 Prayer damager.amxx running
[ 33] Map Spawns Editor RBS 14.08 iG_os & SKAJIbnE mapspawnseditor running
[ 34] Ad From Server 16.11.25 SKAJIbnEJIb ad_from_server. running
[ 35] No Team Flash 15.07.15 SKAJIbnEJIb noteamflash.amx running
[ 36] Ultimate Weapons 15.07.15 SKAJIbnEJIb ultimate_weapon running
[ 37] AC Spectator ESP 14.08 SKAJIbnEJIb & Ko ac_esp.amxx running
[ 38] AES: Exp CSTRIKE 0.3 serfreeman1337 aes_exp_cstrike running
[ 39] AES: Informer 0.2 serfreeman1337 aes_informer.am running
[ 40] AES: Experience Editor 0.1 serfreeman1337 aes_exp_editor. running
[ 41] AES: Bonus System 0.2 serfreeman1337 aes_bonus_syste running
[ 42] AES: Bonus CSTRIKE 0.4 serfreeman1337 aes_bonus_cstri running
42 plugins, 42 running

по поводу afk control он с багом ,если я не ошибаюсь у вас на Rehlds , он бомбу не скидывает когда моделька стоит в АФК . И еще разница в том что у Скальпеля проверка и соединение с его базой идет в случае если с его базой что-то случится то сервер ваш упадет, а у Ваньки этого нету плагины работают на прямую и тем самым они не много быстрее работают чем плагины скальпеля !



Возможно я где то ошибаюсь

Отредактировал: GUS, - 2.10.2017, 20:56
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя slabiiiiiy
сообщение 2.10.2017, 21:38
Сообщение #31


Стаж: 8 лет 7 месяцев

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

GUS, в этом вы правы. Я не раз втречался с этим, когда пару плагинов ( в основном армия, стата, рс) офф не с того и не с сего, и сервер ложился, а в логах писало по каждому одно и то же. Запомнил слово "debug" :D
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя shram47
сообщение 2.10.2017, 22:55
Сообщение #32


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

Сообщений: 222
Благодарностей: 68
Полезность: 173

неугомон и главное открытый исх. код + нет лишней нагрузки связанной с привязкой


Enough to hope for someone's help, I will do it myself and I will not ask anyone. I cope with children and can cope with amxx :thank_you:
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя onetwothree
сообщение 2.10.2017, 23:08
Сообщение #33


Стаж: 9 лет 4 месяца
Город: Toronto

Сообщений: 406
Благодарностей: 133
Полезность: 522

shram47, чисто для любопытства, когда-то решил "попробовать" плагинов Неугомона. Нашёл мут и поставил на сервер. В описании было написано, что даже если игрок перезайдёт мут не исчезнет. Фиг тебе. Не то что перезайдёт, даже замутить никого не смог. Это самое большое разочарование в моей жизни :(


здесь могла бы быть ваша реклама.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя shram47
сообщение 2.10.2017, 23:11
Сообщение #34


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

Сообщений: 222
Благодарностей: 68
Полезность: 173

onetwothree, везде бывают ошибки и не доработки, надеюсь вы помогли автору предоставив логи и информацию? или может что не так поставили? dntknw.gif


Enough to hope for someone's help, I will do it myself and I will not ask anyone. I cope with children and can cope with amxx :thank_you:
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Cobra1998
сообщение 2.10.2017, 23:35
Сообщение #35
Стаж: 13 лет
Город: Lvov

Сообщений: 74
Благодарностей: 8
Полезность: 86

Цитата(onetwothree @ 3.10.2017, 0:08) *
shram47, чисто для любопытства, когда-то решил "попробовать" плагинов Неугомона. Нашёл мут и поставил на сервер. В описании было написано, что даже если игрок перезайдёт мут не исчезнет. Фиг тебе. Не то что перезайдёт, даже замутить никого не смог. Это самое большое разочарование в моей жизни :(

у всех работает, а у тебя нет...странно как-то. Видимо реально не для всех делает..
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя VkriterT
сообщение 2.10.2017, 23:51
Сообщение #36


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

Сообщений: 2172
Благодарностей: 1045
Полезность: 796

Тут все достаточно сложно, скорее каждый выбирает для себя сам. Но в целом тебе люди правду говорили ).
Причем дело даже не в том что нужно юзать конкретно плагины неугомона, вместо скальпеля, это не совсем так. Допустим тебе не нужна часть функционала в плагине. Сразу же огромный плюс в копилку плагинов с исходным кодом.
Или допустим у тебя какой то плагин конфликтует - опять же в копилку. Проще говоря возможность переделывать под себя.

Привязка - Тут опять же нотки перфекционизма играют роль. Вот зачем тебе часть когда в плагине, причем не маленькая, которая работает не для тебя. Ладно это какой то сложных плагин, но привязка в таймлефте ? Нафиг мне плагин, в котором большая часть когда это привязка. Я понимаю что оно ток при смене карты грузит, но плевать.

Вот так и получается, что то ли ты юзаешь готовое, как на сотнях других серверов, то ли ты строишь сервер сам.
Ну и всякая мелочь типа, вот я считаю конфиги для баранов, нужны девайны и что бы если мне че то в плагине не нужно, оно не компилировалось. Нафиг мне лишние строки читать (конфиги).
для радиуса мониторящего тему


Отредактировал: VkriterT, - 2.10.2017, 23:56


тик так тик так, слышишь как уходит твоя жизнь
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя energydance
сообщение 3.10.2017, 0:03
Сообщение #37


Стаж: 10 лет

Сообщений: 2809
Благодарностей: 740
Полезность: 213

BaHeK, бред пишешь там ведь написано что префикс должен быть выше , у тебя там вообще 2 флага на одном префиксе , и естественно третий он не будет брать в приоритет onetwothree, морковку в ротик засунь мультик


Press enter to exit ...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя DexteR
сообщение 3.10.2017, 15:39
Сообщение #38


Стаж: 10 лет

Сообщений: 633
Благодарностей: 99
Полезность: 167

юзаю вани плагины и радиуса все норм также не много юзаю макарона плагины
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя BaHeK
сообщение 3.10.2017, 16:22
Сообщение #39


Стаж: 17 лет

Сообщений: 571
Благодарностей: 505
Полезность: 651

energydance, это стандартный конфиг, зачем там тогда вообще 3-ий префикс, если он никогда не будет работать?


Чуть-чуть нарушаю
http://img-host.su/aoN1.png
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя energydance
сообщение 3.10.2017, 16:25
Сообщение #40


Стаж: 10 лет

Сообщений: 2809
Благодарностей: 740
Полезность: 213

BaHeK, он будет работать если ты глаза разуешь и увидешь что во втором префиксе 2 флага один из этих флагов и на 3 префиксе стоит


Press enter to exit ...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
4 страниц V   1 2 3 »
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: