TextDraw Captcha -
OKStyle - 23.03.2013
Решил написать настоящую каптчу на текстдравах.
* Никаких диалогов, только текстдравы.
* Текстдравы персональные, удаляются при перезаходе сами.
* Система на PVar'ах, исключено перекрестное заполнение массивов.
* При правильном вводе каптчи Вас пустит на сервер.
* При неправильном вводе - сменит каптчу.
* До момента ввода правильной каптчи нельзя писать в чат, юзать команды и спавниться (дорабатывайте по своим нуждам).
http://pastebin.com/GMA6DU2e
Re: TextDraw Captcha -
GameMan - 23.03.2013
Code:
new PlayerText:Captcha[40]
Если я не ошибаюсь, то при заходе другого игрока, ID тексдравов старого игрока заменятся новыми.
Так будет правильней:
Code:
new PlayerText:Captcha[MAX_PLAYERS][40]
pawn Code:
if(i == 0) Captcha[i] = CreatePlayerTextDraw(playerid, 269.0, 139.0, "Anti-bot captcha:");
if(i == 1)
{
new cstring[24];
format(cstring, sizeof(cstring), "%c%c%c%c%c", TextArray[random(sizeof(TextArray))], TextArray[random(sizeof(TextArray))], TextArray[random(sizeof(TextArray))], TextArray[random(sizeof(TextArray))], TextArray[random(sizeof(TextArray))]);
Captcha[i] = CreatePlayerTextDraw(playerid, 422.0, 139.0, cstring);
SetPVarString(playerid, "CaptchaCode", cstring);
}
if(i == 2) Captcha[i] = CreatePlayerTextDraw(playerid, 285.0, 174.0, "Please repeat:");
if(i == 3) Captcha[i] = CreatePlayerTextDraw(playerid, 427.0, 178.0, "-----");
...
Для того, чтобы избежать многочисленной проверки одной переменной, логичнее будет использовать
else if вместо
if
Re: TextDraw Captcha -
OKStyle - 23.03.2013
Во-первых, персональные ТД создаются для конкретного игрока, а другим не видны и для них они не существуют. Во-вторых, вне зависимости от ID существует константа, к которой цепляется ID: если новый ID - константа останется. В-третьих, в цикле, имхо, без разницы особой if/else if.
Система может не работать при наличии других персональных текстдравах. Для фикса вшиваем в мод или в тот ФС, где есть другие PTD.
Re: TextDraw Captcha -
Alexander_Petrov - 23.03.2013
Quote:
Originally Posted by OKStyle
Во-первых, персональные ТД создаются для конкретного игрока, а другим не видны и для них они не существуют. Во-вторых, вне зависимости от ID существует константа, к которой цепляется ID: если новый ID - константа останется. В-третьих, в цикле, имхо, без разницы особой if/else if.
Система может не работать при наличии других персональных текстдравах. Для фикса вшиваем в мод или в тот ФС, где есть другие PTD.
|
Все правильно тебе сказали, или ты хочешь сказать, что твоя система будет работать после такого, если использовать ее не только при подключении?
pawn Code:
public OnPlayerConnect(playerid)
{
for(new r; r < random(20); r++) CreatePlayerTextDraw(playerid, 200.0, 200.0, "_");
// Тут твои ТД
return 1;
}
Re: TextDraw Captcha -
OKStyle - 23.03.2013
Моя система везде и всегда будет работать, если сделать так, как я написал. Внимательно читаем последнюю фразу.
Re: TextDraw Captcha -
AirKite - 23.03.2013
Зачем такое количество цифр и букв если они всё равно не имею никакой графической защиты? Три цифры в тексте и циферблат обеспечит на практике защиту такого же уровня. А сейчас 5-значная капча с цифрами и буквами латинского языка лишнее мучение и затрата времени для игроков.
Да и потом, от кого защита? Боты умеют читать string из текстдрава и посылать клик по ним. Достаточно сопоставить нужные данные и вуаля, защита бесполезна. Для реализации капчи нужно что то другое, например текст или цифры из кубиков (текстдравных), и то это не даст никакой 100% гарантии, т.к. бота можно подключить через оболочку, в которой всё это будет видно, почти как в игре. Единственный реально стоящий выход, который на 99% даст защиту это изображение чего либо в 3D пространстве мира (игры), а затем вопрос по этому самому миру. Пока ещё не видел ботов со своей 3D средой... Так что именно такой способ будет пожалуй самым надёжным.
Re: TextDraw Captcha -
Mutha_X - 24.03.2013
В некоторых случаях типовой юзер никогда не догадается, что ему показывают xD
Re: TextDraw Captcha -
OKStyle - 25.03.2013
Была у меня одна идея "каптчи" по взаимодействию с 3d-объектами мира, но делать пока лень.
Скрипт обновлён: теперь по нажатию ESC невозможно завершить режим выбора символов.
Re: TextDraw Captcha -
vampir9763 - 06.04.2013
не плохо, нужная штука, а то боты уже надоели
Re: TextDraw Captcha -
lost13 - 06.06.2013
Quote:
Originally Posted by OKStyle
Решил написать настоящую каптчу на текстдравах.
* Никаких диалогов, только текстдравы.
* Текстдравы персональные, удаляются при перезаходе сами.
* Система на PVar'ах, исключено перекрестное заполнение массивов.
* При правильном вводе каптчи Вас пустит на сервер.
* При неправильном вводе - сменит каптчу.
* До момента ввода правильной каптчи нельзя писать в чат, юзать команды и спавниться (дорабатывайте по своим нуждам).
http://pastebin.com/GMA6DU2e
|
Здарова, ты писал както что у тебя есть скрипт ящика с оружием в котором есть динамические диалоги. Так вот где его скачать?
Re: TextDraw Captcha -
Stepashka - 06.06.2013
Quote:
Originally Posted by lost13
Здарова, ты писал както что у тебя есть скрипт ящика с оружием в котором есть динамические диалоги. Так вот где его скачать?
|
С такими индивидуальными вопросами пожалуйста в ЛС.