SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Русский/Russian > Релизы/Releases

Reply
 
Thread Tools Display Modes
Old 16/10/2013, 03:29 PM   #1
White_116
High-roller
 
Join Date: Sep 2010
Location: Russia/116
Posts: 1,495
Reputation: 69
Default Anti Quick ReConnect

AQRC v1.0 by White_116
Не большой инклуд по просьбам участников форума. Инклуд не дает игроку быстро реконектится после выхода. Если пауза между выходом и входом одного и того же игрока меньше 15(настраивается) сек, то войти он не сможет. Если у игрока был просто тайм аут соединения, то его этот запрет не коснется. Так же добавлен фикс кика и бана для серверов X версии, что позволяет выводить причину игроку. Присутствует защита на перезаход без выполнения выхода и мультиконнект игроков, т.е. с одного ип адреса может зайти лишь один игрок.
Так же присутствует защита от "сохранения бана игроков" при падений мода. Когда после падение мода временно забаненные игроки оставались забаненные. Для хранения временно забаненных игроков используется БД SQL.

Инклуд содержит функции:
PHP Code:
native AQRC_Ban(playeridreason[]);//Банитит игрока. Если указана причина то аналогичен BanEx иначе просто Ban.
native AQRC_Kick(playerid);//Кикает игрока.
native AQRC_UnBanIP(iip);//Разбанивает указаный ип в БД и в бан листе.
native AQRC_ScriptInit();//Разбанивает "псевдозабаненых" игроков. создаёт таблицу.
native AQRC_ScriptExit();//Закрывает БД.
native AQRC_OnPlayerConnect(playerid);//Проверка на "правильный" коннект.
native AQRC_OnPlayerDisconnect(playeridreason);//"Банит" игрока.
native AQRC_OnPlayerUpdate(playerid);//Фикс кика и бана.
native int2ip(iipszIP[]);//переводит ип из числа в строку.
native ip2int(szIP[]);//переводит ип из строки в число. 
Пример использования:
pawn Code:
#include <a_samp>
#include <AQRC>

public OnGameModeInit()
{
    AQRC_ScriptInit();
    return 1;
}

public OnGameModeExit()
{
    AQRC_ScriptExit();
    return 1;
}

public OnPlayerConnect(playerid)
{
    new reason;
    if(reason=AQRC_OnPlayerConnect(playerid))
    {
        printf("Не верная попытка входа. Причина: %d",reason);
        AQRC_Ban(playerid, "Плохое подключение.");//забаним игрока
        Ban(playerid);//ускорим процесс бана
    }
    //CODE
    return 1;
}

public OnPlayerDisconnect(playerid,reason)
{
    //CODE нельзя выйти раньше, должен выполниться AQRC_OnPlayerDisconnect!
    return AQRC_OnPlayerDisconnect(playerid, reason);
}

public OnPlayerUpdate(playerid)
{
    if(AQRC_OnPlayerUpdate(playerid) == 0)return 0;
    //CODE
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    if(strcmp("/kick", cmdtext, true, 5) == 0)
    {
        print("kick");
        strdel(cmdtext,0,6);
        new p=strval(cmdtext);
        SendClientMessage(p,-1,"ты был кикнут.");
        AQRC_Kick(p);
        return 1;
    }
    return 0;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if(KEY_YES & newkeys)
    {
        SendClientMessage(playerid,-1,"ты был кикнут.");
        AQRC_Kick(playerid);
    }
    return 1;
}

Внимание:
-Для бана игрока используйте AQRC_Ban иначе его разбанит через ReConnectTime мс.
-Обратите внимание в примере на //CODE - это означает, что только там может располагаться ваш код.

Просмотреть/Скачать: Pastebin
Немного изменил код. Теперь можно самому выбрать наказание за "плохие" подключения.
__________________

Last edited by White_116; 16/10/2013 at 07:19 PM.
White_116 is offline   Reply With Quote
Old 16/10/2013, 06:46 PM   #2
XemyL
Huge Clucker
 
XemyL's Avatar
 
Join Date: Nov 2012
Posts: 342
Reputation: 3
Default Re: Anti Quick ReConnect

Было бы не плохо ещё добавить бан по IP за флуд реконнектами если много раз за одну секунду.
XemyL is offline   Reply With Quote
Old 16/10/2013, 07:21 PM   #3
White_116
High-roller
 
Join Date: Sep 2010
Location: Russia/116
Posts: 1,495
Reputation: 69
Default Re: Anti Quick ReConnect

Quote:
Originally Posted by XemyL View Post
Было бы не плохо ещё добавить бан по IP за флуд реконнектами если много раз за одну секунду.
Флуд реконнектами не возможен, так как игрок покинет сервер у будет временно забанен.
Но вы у помянули о бане. Сделал это возможным. Смотрите пример.
__________________
White_116 is offline   Reply With Quote
Old 18/10/2013, 10:20 AM   #4
Seregamil1
Big Clucker
 
Join Date: Nov 2012
Location: Russia, Altay
Posts: 132
Reputation: 45
Default Re: Anti Quick ReConnect

Quote:
new reason;
if(reason=AQRC_OnPlayerConnect(playerid))
{
немного странно, или мне кажется?
Seregamil1 is offline   Reply With Quote
Old 18/10/2013, 12:54 PM   #5
White_116
High-roller
 
Join Date: Sep 2010
Location: Russia/116
Posts: 1,495
Reputation: 69
Default Re: Anti Quick ReConnect

Просто у меня вместо reason другие переменный. Т.е. создаю одну меперенную и использую для 5 присвоений и проверок.
__________________
White_116 is offline   Reply With Quote
Old 26/10/2013, 06:47 AM   #6
AnGeL_KRAMER
Big Clucker
 
AnGeL_KRAMER's Avatar
 
Join Date: Nov 2011
Posts: 117
Reputation: 10
Default Re: Anti Quick ReConnect

Впихнул в мод ну получилось так что игрока вообще не кикает

AQRC_Kick(playerid); т.е не пашет функция
AnGeL_KRAMER is offline   Reply With Quote
Old 24/01/2014, 07:18 AM   #7
Cypen
Banned
 
Join Date: Oct 2013
Posts: 28
Reputation: 0
Default Re: Anti Quick ReConnect

Мне кажется или
PHP Code:
new reason;
    if(
reason=AQRC_OnPlayerConnect(playerid)) 
Тоже самое что:
PHP Code:
if(AQRC_OnPlayerConnect(playerid)) 
Cypen is offline   Reply With Quote
Old 24/01/2014, 07:22 AM   #8
Stepashka
Godfather
 
Stepashka's Avatar
 
Join Date: Jul 2008
Location: near PC
Posts: 5,761
Reputation: 142
Default Re: Anti Quick ReConnect

Quote:
Originally Posted by Cypen View Post
Мне кажется или
PHP Code:
new reason;
    if(
reason=AQRC_OnPlayerConnect(playerid)) 
Тоже самое что:
PHP Code:
if(AQRC_OnPlayerConnect(playerid)) 
Для проверки да, но в первом случае мы дополнительно сохраняем результат проверки в переменную, для её последующего использования.
__________________
Клятва Страуструпа: "Я обязуюсь прилежно комментировать свой код, не использовать goto и следить за состоянием своих потоков и выделяемой памяти. Я обязуюсь не оставлять мусора в системе и избегать однобуквенных переменных. Ресет." © Куч
M&M GM
Status: ON HOLD

Stepashka is offline   Reply With Quote
Old 24/01/2014, 03:33 PM   #9
Cypen
Banned
 
Join Date: Oct 2013
Posts: 28
Reputation: 0
Default Re: Anti Quick ReConnect

Quote:
Originally Posted by Stepashka View Post
Для проверки да, но в первом случае мы дополнительно сохраняем результат проверки в переменную, для её последующего использования.
А да точно, не посмотрел.
Cypen is offline   Reply With Quote
Old 26/01/2014, 09:34 PM   #10
warlock02
Big Clucker
 
warlock02's Avatar
 
Join Date: May 2010
Posts: 86
Reputation: 3
Wink Re: Anti Quick ReConnect

Quote:
new reason;
if(reason=AQRC_OnPlayerConnect(playerid))
{
Я один заметил некорректность условия if? Не хватает знака равенства вроде бы.
__________________
My english is bad, because i was learn him in Pakistani jail
warlock02 is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[Include] :: Anti-Reconnect Script. Avoid Auto Reconnects made by * tools! iPLEOMAX Includes 18 27/12/2013 01:53 PM
Anti-reconnect CamperGTA Русский/Russian 11 16/10/2013 05:23 PM
[FilterScript] [FS] Anti Auto Reconnect - MySQL | Stops Cheaters And Auto Reconnect Bot Attacks StrickenKid Filterscripts 33 05/05/2012 07:14 PM
[FilterScript] Anti Quick Reconnect MX_Master Релизы/Releases 41 25/07/2010 07:58 PM
Anti crash or Auto reconnect? NEW_IE General 7 21/01/2009 07:25 AM


All times are GMT. The time now is 12:30 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.