02.12.2013, 13:42
Да. Читер отключается, но остаётся на сетевом уровне.
https://sampforum.blast.hk/showthread.php?tid=470156
Поковыряй.
https://sampforum.blast.hk/showthread.php?tid=470156
Поковыряй.
new AT_Timerid[MAX_PLAYERS];
public OnPlayerConnect(playerid)
{
if(AT_Timerid[playerid]) //На практике это вряд ли произойдет, но для самоуспокоения добавил
{
KillTimer(AT_Timerid[playerid]);
AT_Timerid[playerid] = 0;
}
//...
}
public OnPlayerDisconnect(playerid, reason)
{
//...
AT_Timerid[playerid] = SetTimerEx("AfterDisconnectTimer", 500, 0, "i", playerid);
}
forward AfterDisconnectTimer(const playerid);
public AfterDisconnectTimer(const playerid)
{
FastKick(playerid); //Это у меня для вызова обычного моментального Kick. Оставил, т.к. советую обратить на это внимание, учитывая то, что почти у всех щас макрос на Kick()
AT_Timerid[playerid] = 0;
}
OnPlayerDisconnect(...) { // ваш код Kick(playerid); return 1; }
Code:
OnPlayerDisconnect(...) { // ваш код Kick(playerid); return 1; } |
OnPlayerConnect(..) { if(connected[playerid] == true) { BanEx(playerid, "Connect flood"); return 1; } connected[playerid] = true; return 1; } OnPlayerDisconnect(...) { if(connected[playerid] == false) return 1; connected[playerid] = false; // ваш код Kick(playerid); return 1; }
Ну, попробуйте так сделать, и посмотрите на реакцию инклудов типа foreach. Все "OnPlayerDisconnect" которые выше, все равно выполняться будут.
|
нафига вы ставите if( !IsPlayerConnected(playerid) ) |
Есть ещё какой то другой способ защитить сервер от флуда?
типа [05/12/2013 23:19:14] Packet was modified, sent by id: 9, ip: 178.125.169.106:12113 [05/12/2013 23:19:14] Packet was modified, sent by id: 9, ip: 178.125.169.106:12113 [05/12/2013 23:19:14] Packet was modified, sent by id: 9, ip: 178.125.169.106:12113 |
Вышеописанные способы ловят это. Другое дело флуд "incoming connection" и "Blocking
%s due to a 'server full' attack". Все равно лог читать нужно |
а как лог читать?
fopen("../server_log.txt",io_read) типа так? И не сильно ли это накладно по нагрузке? ведь лог читать придётся как минимум раз в 5 сек. А он большой, и придётся его чистить каждые сутки. Или есть плагины отлавливающие сообщения в лог на уровне сервера? |
Есть ещё какой то другой способ защитить сервер от флуда?
типа [05/12/2013 23:19:14] Packet was modified, sent by id: 9, ip: 178.125.169.106:12113 [05/12/2013 23:19:14] Packet was modified, sent by id: 9, ip: 178.125.169.106:12113 [05/12/2013 23:19:14] Packet was modified, sent by id: 9, ip: 178.125.169.106:12113 |