PDA

Просмотр полной версии : Антибот. Ввод с чата


Hardy
20.03.2010, 11:09
Готовое решение смотрите тут (http://ragbot.ru/forum/showthread.php?p=28377#post28377)

Помогите пожлуста с обходом этого антибота. Весь форум пересмотрел ничего не нашёл похожего. только ввод цифр с табличек. С чата есть, но там совсем другое...

Что он делает:
Фризит. Просит выбрать язык. так как сервер иностранный. Потом уже выводит данные в чате и просит их ввести. При этом весит статус эндюр)

Вот весь антибот в скринах:

http://s12.radikal.ru/i185/1003/bd/a9bcad7180a7.jpg

http://s54.radikal.ru/i145/1003/a8/a11a8db69507.jpg

http://s52.radikal.ru/i138/1003/7e/11f995321f1e.jpg

http://s15.radikal.ru/i188/1003/14/d05e0d6b4e1d.jpg

http://s49.radikal.ru/i125/1003/c9/4a6ef87da151.jpg

http://s46.radikal.ru/i112/1003/13/8096bdad3c0b.jpg


А вот что в боте пишет:
http://s52.radikal.ru/i138/1003/fe/f7ec61f3ebf1.jpg (http://www.radikal.ru)

manticora
20.03.2010, 17:27
Я думаю, что этот антибот можно победить.
Для начала стоит запустить поиск по форуму по слову "антибот". Кое-что, наработки по другим серверам можно найти.
Это раз.
Потом можно попробовать сделать самому, читаем вики по макроплагину, обращая внимание на автомакросы и слово console. Учимся писать regexp'ы.
Это два.
Пожно еще найти и настроить плагин reactonnpc.pl, он вроде бы так называется. Как-раз предназначен для выскакивающих ниоткуда неписей.
Это три.

Вот примерно так.

Hardy
20.03.2010, 18:14
1 поиска ничего не дал результатов. только с таблички. а тут с чата. совсем другое
2 Пытались сделать вдвоём. ничего не вышло
3 Может и можно настроить но что где прописать чтоб считывал с чата а не с таблички я хз.

Как бы я нашёл чтоб выбирать язык вот этот макрос
automacro antibot {
console /Select Your Language/
delay 3
call {
do talk resp 0
}
}

А что делать дальше я хз

manticora
20.03.2010, 20:15
Попробуй что-то наподобие:
automacro antibot2 {
console /Gorgo: _+\[(\S+)\]_+/
delay 3
call antibot2M
}

macro antibot2M {
log Ответ - $.lastMatch1
do talk text="$.lastMatch1"
}

То, что попадает в первые (и единственные тут) скобки (\S+) помещается в переменную $.lastMatch1.

Hardy
20.03.2010, 20:23
Мало что понял. так чтольи?

automacro antibot2 {
console /CODIGO DE SEGURIDAD: _+\[(\S+)\]_+/
delay 3
call antibot2M
}

macro antibot2M {
log Input number - $.lastMatch1
do talk 1="$.lastMatch1"
}

manticora
20.03.2010, 21:33
automacro antibot2 {
console /CODIGO DE SEGURIDAD: _+\[(\S+)\]_+/
delay 3
call antibot2M
}

macro antibot2M {
do talk text $.lastMatch1
}

Вот так должно сработать. Мне просто не видно было, как называется непись, и я забыл, как пишется talk text. Будешь пробовать?

Hardy
20.03.2010, 22:19
Тоесть он будет считывать то что в чате написано?

manticora
20.03.2010, 22:26
Автомакрос antibot2 будет смотреть в консоли (так как мы указали - console) все сообщения, но сработает только тогда, когда очередная строка в консоли подпадёт под прописанный нами шаблон - /CODIGO DE SEGURIDAD: _+\[(\S+)\]_+/.
То есть строка должна начинаться с имени неписи - CODIGO DE SEGURIDAD, затем следует двоеточие и пробел, потом некоторое количество знаков подчеркивания, затем первая квадратная скобка... Между первой и второй квадратными скобками находится интересующий нас текст. Так как он выделен круглыми скобками, и это первая пара круглых скобок в шаблоне, то этот текст будет помещен в спец. переменную - $.lastMatch1. Значение этой переменной мы и говорим назад неписи - do talk text $.lastMatch1

Hardy
21.03.2010, 09:00
Мм немогу проверить работает или нет. а какой макрос нужен чтобы выбрать язык сначало. он просит ввести 1 или 2.

automacro antibot {
console /Escoge tu idioma - choose your languaje
1 for English e, 2 para o en Espacol/
delay 3
call lang
}

macro lang {
do talk text 1
}

так не правильно?

manticora
21.03.2010, 12:10
Правильнее будет наверное так:
automacro antibot {
console /1 for English e, 2 para o en Espacol/
delay 3
call lang
}

macro lang {
do talk num 1
}

Во-первых я не умею в console писать, чтобы он проверял две строчки сразу, да и не уверен, что нам такое надо. Во-вторых, убелись, что фраза написана правильно. В-третьих, я думаю, что раз тебя спрашивают число, то надо писать так: do talk num 1
Я-то думал, что с этой частью ты уже разобрался.
Удачи тебе в дальнейшем.

Hardy
21.03.2010, 12:55
не хочет вводить цифру 1((

manticora
21.03.2010, 12:58
Есть такая штука - лог консоли, можно скопировать из консоли нескольско строк текста. Я хочу, чтобы ты скопировал сюда тот текст из консоли, из которого будет видно, что антибот тебе что-то сказал, а автомакрос "automacro antibot" не сработал. И проверь еще раз строку 1 for English e, 2 para o en Espacol, вдруг в ней ошибки.

Hardy
21.03.2010, 13:11
Вот

You are in Frozen state
Autorejecting is activated.
Invisible: On
Unknown #112026519: TFE - AntiBot
Unknown #112026519: Escoge tu idioma - choose your languaje.
Unknown #112026519: 1 for English e, 2 para o en Espaсol.
NPC Exists: Unknown #112026519 (158, 324) (ID 112026519) - (0)
Unknown #112026519: Type 'talk num <number #>' to input a number.


вот ещё что интересно. вводил вручную с бота не верный код постоянно. я хз почему так.

[Guild] CODIGO DE SEGURIDAD : ____________[ 438fQtFe ]_____________c
Unknown #112026519: Type 'talk text' (Respond to NPC)
Stuck at gef_fild05 (158,324), while walking from (158,324) to (161,187).
Stuck during route.
Calculating random route to: Geffen Field(gef_fild05): 196, 280
talk num 438fQtFe
Unknown #112026519: AntiBot
Unknown #112026519: Sorry, but should be expelled.
Unknown #112026519: Auto-continuing talking
You are out of Frozen state
You are no longer: Endure
You are no longer: Berserk
Autorejecting is deactivated.
Invisible: Off
Disconnecting (96.9.179.85:8110)...disconnected
Error: You have been forced to disconnect by a GM

manticora
21.03.2010, 13:31
Если я ещё не совсем тупой, то вот это должно работать:
#Unknown #112026519: 1 for English e, 2 para o en Espaсol.
automacro antibot1 {
console /1 for English e, 2 para o en Espacol/
delay 3
call antibot1M
}
macro antibot1M {
do talk num 1
}

#[Guild] CODIGO DE SEGURIDAD : ____________[ 438fQtFe ]_____________c
automacro antibot2 {
console /CODIGO DE SEGURIDAD : _+\[ (\S+) \]_+/
delay 3
call antibot2M
}
macro antibot2M {
do talk text $.lastMatch1
}

Скорее всего была проблема в том, что кое-где в console // не было прописано необходимых пробелов, вот он и не видел совпадения.

Hardy
21.03.2010, 13:45
так вообщем проблема вся в воде языка.
я ввёл вручную язык а бот дальше сам ввёл код.

Вот что думаю а точки имеют значение в конце?

http://s12.radikal.ru/i185/1003/bd/a9bcad7180a7.jpg

вот тут их видно.

manticora
21.03.2010, 13:57
Необязательно указывать точки. Можно указать в console минимум букв, и если они встретятся где-нить, тогда оно и сработает. Можно в первом автомакроса, который про язык, сократить или поменять фразу нафиг, например:

#Unknown #112026519: TFE - AntiBot
#Unknown #112026519: Escoge tu idioma - choose your languaje.
#Unknown #112026519: 1 for English e, 2 para o en Espaсol.
automacro antibot1 {
console /Escoge tu idioma - choose your languaje/
delay 3
call antibot1M
}
macro antibot1M {
do talk num 1
}

#[Guild] CODIGO DE SEGURIDAD : ____________[ 438fQtFe ]_____________c
automacro antibot2 {
console /CODIGO DE SEGURIDAD : _+\[ (\S+) \]_+/
delay 3
call antibot2M
}
macro antibot2M {
do talk text $.lastMatch1
}

Может быть, какие-то кодировки с языком? Есть у них там какие-нибудь нестандартные буквы?

А код, говоришь, он сам ввёл? Фантастика!

Hardy
21.03.2010, 14:05
Вообщем на 1 строку реагирует. видно что макрос запускает перед 2-й строкой
на 2 строку не реагирует.

Сервер чилийский вроде. вот сайт http://tfe-world.net/site/

manticora
21.03.2010, 14:23
Так у тебя работает или нет? В каком он у тебя сейчас виде?

Hardy
21.03.2010, 14:25
Дак всё тоже самое. приходиться вводить цифру 1. осталное он сам делает

manticora
21.03.2010, 14:36
ну это же бред!
попробуй в первом макросе написать:
automacro antibot1 {
console /TFE - AntiBot/
delay 3
call antibot1M
}

и приложи текст из консоли, я хочу посмотреть, запустится или нет этот вариант автомакроса...

Hardy
21.03.2010, 14:46
Нехочет((

You are in Frozen state
Autorejecting is activated.
Syntax Error in function 'ignore' (Ignore Player/Everyone)
Usage: ignore <flag> <name | all>
Invisible: On
Syntax Error in function 'ignore' (Ignore Player/Everyone)
Usage: ignore <flag> <name | all>
Unknown #112026519: TFE - AntiBot
[macro] automacro antibot1 triggered.
Unknown #112026519: Escoge tu idioma - choose your languaje.
Unknown #112026519: 1 for English e, 2 para o en Español.
NPC Exists: Unknown #112026519 (218, 166) (ID 112026519) - (0)
Unknown #112026519: Type 'talk num <number #>' to input a number.
Item Appeared: Rotten Fish (1) x 1 (217, 167)
Item Appeared: Cyfar (2) x 1 (218, 165)
Item Appeared: Rotten Fish (4) x 1 (218, 166)
Item Appeared: Arrow of Shadow (6) x 1 (218, 165)
Item Appeared: Nut Shell (7) x 1 (216, 167)
Item Appeared: Arrow of Shadow (8) x 1 (216, 166)
Item Appeared: Cyfar (9) x 1 (218, 165)
Item Appeared: Monster's Feed (10) x 1 (216, 165)
Item Appeared: Monster's Feed (11) x 1 (217, 167)
Item Appeared: Rotten Fish (12) x 1 (217, 166)
Item Appeared: Arrow of Shadow (13) x 1 (217, 165)
Item Appeared: Nut Shell (14) x 1 (218, 167)
Item Appeared: Cyfar (15) x 1 (216, 167)
Target died
Unknown #112026519: AntiBot
Unknown packet - 040C

вот когда я нажимаю на нпс и ввожу 1:

Calculating random route to: Geffen Field(gef_fild05): 287, 259
Stuck at gef_fild05 (218,166), while walking from (218,166) to (287,259).
Stuck during route.
Calculating random route to: Geffen Field(gef_fild05): 232, 306
talk num 1
Unknown #112026519: AntiBot
Unknown #112026519: Enter the code that goes into your chat box, caution! the system differentiates CapsLock
Unknown #112026519: Auto-continuing talking
[Guild] CODIGO DE SEGURIDAD : ____________[ 512dPtFe ]_____________i
[macro] automacro antibot2 triggered.
Unknown #112026519: Type 'talk text' (Respond to NPC)
You are out of Frozen state
You are no longer: Endure
You are no longer: Berserk
Autorejecting is deactivated.
Syntax Error in function 'ignore' (Ignore Player/Everyone)
Usage: ignore <flag> <name | all>
Invisible: Off

manticora
21.03.2010, 14:58
automacro antibot1 {
console /TFE - AntiBot/
delay 5
call antibot1M
}
macro antibot1M {
log Makpoc zapustilsjy!!!
pause 4
do talk num 1
}

По крайней мере видно, что автомакрос срабатывает, а вот чтобы через три секунды запускался макрос - не видно...
Попробуем увеличить паузы, иногда помогает. А также сделаем вывод на консоль тупой фразы, которая поможет отследить - запустился ли макрос.
Ещё проверь, одинаково ли назвается макрос в строчках call antibot1M и macro antibot1M, это маловероятно, но хз.

Hardy
21.03.2010, 15:10
You are in Frozen state
Autorejecting is activated.
Syntax Error in function 'ignore' (Ignore Player/Everyone)
Usage: ignore <flag> <name | all>
Invisible: On
Syntax Error in function 'ignore' (Ignore Player/Everyone)
Usage: ignore <flag> <name | all>
Unknown #112026519: TFE - AntiBot
[macro] automacro antibot1 triggered.
Unknown #112026519: Escoge tu idioma - choose your languaje.
Unknown #112026519: 1 for English e, 2 para o en Español.
NPC Exists: Unknown #112026519 (210, 316) (ID 112026519) - (0)
Unknown #112026519: Type 'talk num <number #>' to input a number.
Item Appeared: Arrow of Shadow (0) x 1 (209, 316)
Item Appeared: Nut Shell (1) x 1 (208, 316)
Item Appeared: Monster's Feed (2) x 1 (208, 316)
Item Appeared: Rotten Fish (3) x 1 (208, 316)
Item Appeared: Cyfar (4) x 1 (210, 315)
Item Appeared: Big Ribbon (5) x 1 (209, 316)
Item Appeared: Monster's Feed (6) x 1 (209, 317)
Item Appeared: Rotten Fish (7) x 1 (208, 317)
Item Appeared: Arrow of Shadow (8) x 1 (210, 317)
Item Appeared: Nut Shell (9) x 1 (208, 315)
Item Appeared: Cyfar (10) x 1 (210, 316)
Target died
[macro][log] Makpoc zapustilsjy!!!

manticora
21.03.2010, 15:18
То есть всё работает?

Hardy
21.03.2010, 17:45
неа(( опять в ручную приходиться.

Добавлено через 2 минуты
Я понял почему он не вводит цифру. Косяк в этом

1 for English e, 2 para o en Español

5-я буква в последнем слове сохраняеться в macros.txt как знак ?

Можно как нибудь это исправить? и будет ли бот читать этот язык?

manticora
21.03.2010, 17:56
1. Сохрани macros.txt в кодировке UTF-8 без BOM. Это умеет делать Notepad++.
2. Или используй только ту часть фразы, которая нормально сохраняется: 1 for English e, 2 para o en Espa

Hardy
21.03.2010, 18:13
не помогло(( целый день с этим антиботом уже сидим...

вот через Notepad++

#Unknown #112026519: TFE - AntiBot
#Unknown #112026519: Escoge tu idioma - choose your languaje.
#Unknown #112026519: 1 for English e, 2 para o en Español.
automacro antibot1 {
console /1 for English e, 2 para o en Español/
delay 5
call antibot1M
}
macro antibot1M {
log Makpoc zapustilsjy!!!
pause 4
do talk num 1
}


#[Guild] CODIGO DE SEGURIDAD : ____________[ 438fQtFe ]_____________c
automacro antibot2 {
console /CODIGO DE SEGURIDAD : _+\[ (\S+) \]_+/
delay 3
call antibot2M
}
macro antibot2M {
do talk text $.lastMatch1
}

4epT
22.03.2010, 07:34
при каких условиях появляется этот антибот?

Hardy
22.03.2010, 08:04
А просто так. бегаешь по локе бьёшь мобов, и тебя фризят и просят выбрать язык, потом код указанный в чате.

Hardy
23.03.2010, 16:52
Так сам решил проблему. 3 дня сидел задрил и наконец то всё работает))

manticora, Спасибо большое за помощь. Вот окончательный обход вообщем:

automacro antibot1 {
console /TFE - AntiBot/
delay 1
call antibot1M
}
macro antibot1M {
do talk num 1
}

automacro antibot2 {
console /CODIGO DE SEGURIDAD : _+\[ (\S+) \]_+/
delay 3
call antibot2M
}
macro antibot2M {
do talk text $.lastMatch1
}

manticora
23.03.2010, 18:16
Спасибо, что смог сам довести дело до конца, спасибо, что выложил в итоге рабочий вариант.
Скажи, мне интересно, в чём была проблема? Почему первый автомакрос не вводил число - номер языка? Спать не смогу от любопытства, что же там было?

Hardy
23.03.2010, 19:22
А я хз)) может быть дело в delay и паузах?

Pipo
03.04.2010, 13:38
Так сам решил проблему. 3 дня сидел задрил и наконец то всё работает))

manticora, Спасибо большое за помощь. Вот окончательный обход вообщем:

automacro antibot1 {
console /TFE - AntiBot/
delay 1
call antibot1M
}
macro antibot1M {
do talk num 1
}

automacro antibot2 {
console /CODIGO DE SEGURIDAD : _+\[ (\S+) \]_+/
delay 3
call antibot2M
}
macro antibot2M {
do talk text $.lastMatch1
}

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

automacro antibot1 {
console /TFE - AntiBot/
delay 1
call antibot1M
}
macro antibot1M {
do talk num 1
}

#[Guild] CODIGO DE SEGURIDAD : ____________[ 438fQtFe ]_____________c
automacro antibot2 {
console /CODIGO DE SEGURIDAD : _+\[ (\S+) \]_+/
delay 3
call antibot2M
}
macro antibot2M {
do talk text $.lastMatch1
}

хоть он все и вводит нормально, но он в самом конце не нажимает кнопочку "Close", ну это уже не так важно, он же у мну варпается и все эти окна проподают при первом же варпе, главное что работает, а так окна остаются висеть вот эти в конце: http://yfrog.com/4w63939087j
хоть бот все и ввел, но окошко ввода остается, пока он не нажмет клоуз )
вобщем то проблем нету, просто написал как у мну это работает.

как то всеравно видно не до конца все понятно, первый раз сборка Hardy не сработала, а теперь работает )
вобщем то работает через раз, как я понимаю там 2 вида диалога вылетает, хз конечно в чем отличие, но судя по тому что выдает бот, в одном случае это как тут описаный это:
"____________[ 438fQtFe ]_____________c"
а второй: "____________[ 286BPtFe ]_____________i"
вот когда на конце "с" - то срабатывает сборка Hardy
а когда на конце "i" - то срабатывает сборка manticora
вроде именно так получается, надеюсь ниче не напутал ) как это все можно собрать в 1 целое и рабочее ?
другие отличий кроме букв на конце не нашел.