Den_Bellik
Мастер
Fixes 2
Обновленый - 19/12/12
[hr][/hr]
Некоторые подвиги показаны на консоли сервера, но на самом деле не заблокирован. До сих пор не было ничего, вы можете делать с этим, однако, теперь вы можете:
PHP:
public OnServerMessage(const msg[])
{
if (!strcmp(msg, ERROR_INVALID_CLIENT, false, 31))
{
FIXES_SilentBanIP(FIXES_ReadIp(msg[31]));
}
else if (!strcmp(msg, ERROR_RCON_EXPLOIT, false, 37))
{
FIXES_SilentBanIP(FIXES_ReadIp(msg[37]));
}
else if (!strcmp(msg, ERROR_PLAYER_DIALOG, false, 40))
{
FIXES_SilentBanPlayer(strval(msg[40]));
}
else if (!strcmp(msg, ERROR_DIALOG_CRASH, false, 59))
{
FIXES_SilentBanPlayer(strval(msg[59]));
}
else if (!strcmp(msg, ERROR_PACKET_MODIFIED, false, 33))
{
FIXES_SilentBanPlayer(strval(msg[33]));
}
else if (!strcmp(msg, ERROR_PORT_REFUSED, false, 32))
{
FIXES_SilentBanPlayer(strval(msg[32]));
}
else if (!strcmp(msg, ERROR_BLOCKING, false, 9) && strfind(msg, ERROR_SERVER_FULL) != -1)
{
FIXES_SilentBanIP(FIXES_ReadIp(msg[9]));
}
}
Константы общих сообщений об ошибках, а функции запретить игроку/IP без их уведомления о том, что они запрещены.
Обратите внимание, что эта функция также требует Sscanf, но ввести некоторые другие интересные варианты:
PHP:
public OnServerMessage(const msg[])
{
if (!strcmp(msg, "sscanf warning: ", false, 16))
{
if (!strcmp(msg[16], "String buffer overflow."))
{
SendClientMessage(gLastPlayer, X11_RED, "Please type something shorter");
}
}
}
[hr][/hr]
SetTimer(Ex)
Эти функции не очень точной, и что они не правильно поддерживать строк и массивов. Обе эти проблемы в настоящее время зафиксирован в меру своих способностей. Следует отметить, что точность все еще немного не по причине "сна" вызов на сервер внутренне, но они гораздо лучше.
Также улучшили свои показатели за счет использования "std::priority_queue", так что следующий таймеры для запуска всегда находятся в верхней части списка.
Примечание При передаче массивов, как с "CallLocalFunction" Вы должны следовать массив с его длина в качестве дополнительного параметра или система не имеет возможности узнать, насколько она велика:
PHP:
SetTimerEx("func", 1000, 0, "ai", arr, sizeof (arr));
Также добавилены две новые функции:
PHP:
SetTimer_("func", 100, 1000, -1);
SetTimerEx_("func", 100, 1000, -1, "i", 42);
PHP:
SetTimer_("global1", 250, 1000, -1);
SetTimer_("global2", 500, 1000, -1);
SetTimer_("global3", 750, 1000, -1);
SetTimer_("global4", 1000, 1000, -1);
PHP:
SetTimer_("global1", 250, 1000, 4);
PHP:
native SetTimer_(const func[], const delay, const interval, const count);
native SetTimerEx_(const func[], const delay, const interval, const count, const format[], {Float, _}:...);
native KillTimer_(timer) = KillTimer;
[hr][/hr]
Обратите внимание, что версия LINUX не была скомпилирован/протестирована с кодом!
- Автор: Y_Less
- Перевод: Den_Bellik
