|
Макросы и Плагины Всё что относится к макросам и плагинам. Сборник готовых макросов. |
|
Опции темы | Опции просмотра |
16.02.2013, 23:27 | #1 |
Новичок
Регистрация: 12.11.2012
Сообщений: 31
Вы сказали Спасибо: 12
Поблагодарили 0 раз(а) в 0 сообщениях
|
Плагин AntiBotKiller (перевод на инглиш)
Нашел старенький плагин AntiBotKiller модифицированный под русский язык Moonlight. Мне он нужен был в инглиш варианте и я решил попробовать сам его преобразовать. В итоге работает иногда сразу, иногда с 3ей попытки из 5ти. Пока ни разу все 5 раз не сфейлил. Хотелось бы мнения знатаков как можно исправить ещё лучше.
Вот некоторые ошибки: Код:
[Feb 16 22:40:23 2013.43] [АвтоБот] Вроди нашел ту строчку: "one Hundred seventy nine". [Feb 16 22:40:23 2013.43] [АвтоБот] Распознал СОТНЮ: "Hundred". [Feb 16 22:40:23 2013.44] [АвтоБот] Распознал 1: "one". [Feb 16 22:40:23 2013.44] [АвтоБот] Распознал 3: "seventy". [Feb 16 22:40:23 2013.44] [АвтоБот] Итого в граммах: "170". [Feb 16 22:40:23 2013.44] [АвтоБот] Эрегиру.. тоесть реагируем - пиздим "170". [Feb 16 22:40:23 2013.44] [АвтоБот] ах да, •••••, для приличия ждем 5 секунд Проблема из-за двойного пробела, в итоге в последнюю переменную попадает пустота вместо числа. Код:
[Feb 16 22:40:17 2013.16] [АвтоБот] Вроди нашел ту строчку: "seven Hundred meighty oney". [Feb 16 22:40:17 2013.17] [АвтоБот] Распознал СОТНЮ: "Hundred". [Feb 16 22:40:17 2013.17] [АвтоБот] Распознал 1: "seven". [Feb 16 22:40:17 2013.17] [АвтоБот] Распознал 3: "eight". [Feb 16 22:40:17 2013.17] [АвтоБот] Распознал 4: "one". [Feb 16 22:40:17 2013.17] [АвтоБот] Итого в граммах: "709". [Feb 16 22:40:17 2013.17] [АвтоБот] Эрегиру.. тоесть реагируем - пиздим "709". [Feb 16 22:40:17 2013.18] [АвтоБот] ах да, •••••, для приличия ждем 5 секунд плагин: Код:
# ======================= # АвтоБот v.1.2.666 #( с помощью ебаной матери и перла, русификация Moonlight) # ======================= # Copyright 2006 # Base Script : hakore(reactOnNPC) # Modified by : AqlX # Далее помог : Moonlight 2007 # Далее помог : Derrek 2013 # package AntiBotkiller; use strict; use Plugins; use Globals; use Utils; use Commands; use Log qw(message debug); use encoding 'Russian'; Plugins::register('АвтоБот', "Умно объебем тупого антибота", \&Unload); my $hooks = Plugins::addHooks( ['packet/npc_talk', \&onNPCTalk, undef], ['packet/npc_talk_close', \&onClo, undef], ['packet/npc_talk_continue', \&onCon, undef], ['packet/npc_talk_number', \&onNPCAction, undef] ); sub Unload { Plugins::delHooks($hooks); }; my %reactOnNPC; my $code; my $str; sub onNPCTalk { my (undef, $args) = @_; my $msg = unpack("Z*", substr($args->{RAW_MSG}, 8)); $msg = I18N::bytesToString($msg); $msg =~ s/\^[a-fA-F0-9]{6}//g; if (!defined %reactOnNPC || $reactOnNPC{action}) { undef %reactOnNPC if defined %reactOnNPC; $reactOnNPC{index} = 1; $reactOnNPC{msg}[$reactOnNPC{index}] = $msg; } else { $reactOnNPC{index}++; $reactOnNPC{msg}[$reactOnNPC{index}] = $msg; } } sub onNPCAction { $code = reply(); message "[АвтоБот] Эрегиру.. тоесть реагируем - пиздим \"$code\".\n", "success"; message "[АвтоБот] ах да, •••••, для приличия ждем 5 секунд ...\n", "success"; my $cmd = "talk num $code"; sleep 5; Commands::run($cmd); } sub onClo { undef %reactOnNPC if defined %reactOnNPC; } sub onCon { message "[АвтоБот] 0 \"$reactOnNPC{msg}[0]\".\n", "success"; message "[АвтоБот] 1 \"$reactOnNPC{msg}[1]\".\n", "success"; message "[АвтоБот] 2 \"$reactOnNPC{msg}[2]\".\n", "success"; message "[АвтоБот] 3 \"$reactOnNPC{msg}[3]\".\n", "success"; message "[АвтоБот] 4 \"$reactOnNPC{msg}[4]\".\n", "success"; $reactOnNPC{msg}[3] =~ s/> //; $reactOnNPC{msg}[4] =~ s/> //; undef $str; $str = $reactOnNPC{msg}[3]; if (length($str) < 2) { undef $str; $str = $reactOnNPC{msg}[4]; } undef %reactOnNPC if defined %reactOnNPC; } sub reply { message "[АвтоБот] Вроди нашел ту строчку: \"$str\".\n", "success"; my %sn = ("one", 1, "two", 2, "three", 3, "four", 4, "five", 5, "six", 6, "seven", 7, "eight", 8, "nine", 9, "ten", 10, "eleven", 11, "twelve", 12, "thirteen", 13, "fourteen", 14, "fifteen", 15,"sixteen", 16,"seventeen", 17, "eighteen", 18, "nineteen", 19 ,"twenty", 20, "thirty", 30, "forty", 40, "fifty", 50, "sixty", 60, "seventy", 70, "eighty", 80, "ninety", 90,"one Hundred",100,"two Hundred",200,"three Hundred",300,"four Hundred",400,"five Hundred",500,"six Hundred",600,"seven Hundred",700,"eight Hundred",800,"nine Hundred",900); my @sl = ("one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety", "one Hundred","two Hundred","three Hundred","four Hundred","five Hundred","six Hundred","seven Hundred","eight Hundred","nine Hundred"); my @sy = ("Hundred","hundred"); my ($str1, $str2, $str3,$str4) = split(/ /, $str); my $tmp; my $tmr; my $kflag=0; foreach $tmr (@sy){ if ($str2 =~/^.?$tmr.?$/) { $kflag=1; message "[АвтоБот] Распознал СОТНЮ: \"$tmr\".\n", "success"; } } if ($kflag==1) { foreach $tmp (@sl){ if ($str1 =~/^.?$tmp.?$/) { message "[АвтоБот] Распознал 1: \"$tmp\".\n", "success"; $str1 = $tmp; } } foreach $tmp (@sl){ if ($str3 =~/^.?$tmp.?$/) { message "[АвтоБот] Распознал 3: \"$tmp\".\n", "success"; $str3 = $tmp; } } foreach $tmp (@sl){ if ($str4 =~/^.?$tmp.?$/) { message "[АвтоБот] Распознал 4: \"$tmp\".\n", "success"; $str4 = $tmp; } } } if ($kflag==0) { foreach $tmp (@sl){ if ($str1 =~/^.?$tmp.?$/) { message "[АвтоБот] Распознал 1: \"$tmp\".\n", "success"; $str1 = $tmp; } } foreach $tmp (@sl){ if ($str2 =~/^.?$tmp.?$/) { message "[АвтоБот] Распознал 2: \"$tmp\".\n", "success"; $str2 = $tmp; } } foreach $tmp (@sl){ if ($str3 =~/^.?$tmp.?$/) { message "[АвтоБот] Распознал 3: \"$tmp\".\n", "success"; $str3 = $tmp; } } } if ($kflag==0) { $code = $sn{$str1}+$sn{$str2}+$sn{$str3}; } if ($kflag==1) { $code = $sn{$str1}*100+$sn{$str3}+$sn{$str4}; $kflag=0; } message "[АвтоБот] Итого в граммах: \"$code\".\n", "success"; return $code; } return 1; Последний раз редактировалось Derrek; 17.02.2013 в 02:40. |
17.02.2013, 10:57 | #2 |
Админ
|
Derrek, а на каком серваке стоит этот древний антибот? скинь настроечки.
попробуй в плагине строчку: Код:
my ($str1, $str2, $str3,$str4) = split(/ /, $str); Код:
my ($str1, $str2, $str3,$str4) = split(/\s+/, $str); Для потомков: плагин с распознаванием русских символов А вот этот же анти-антибот на основе макроса
__________________
¤Config checker¤Руководство¤Файлы¤Конфиги¤Макросы¤ Быстро и качественно напишу конфиг (макрос) за yAD! Стучи! |
Этот пользователь сказал Спасибо 4epT за это полезное сообщение: | Derrek (17.02.2013) |
17.02.2013, 19:15 | #3 | ||
Новичок
Регистрация: 12.11.2012
Сообщений: 31
Вы сказали Спасибо: 12
Поблагодарили 0 раз(а) в 0 сообщениях
|
Код:
ip 199.59.160.223 port 6900 private 1 master_version 14 version 25 serverType kRO_RagexeRE_2010_07_13a serverEncoding Russian charBlockSize 112 recvpackets recvpackets.txt addTableFolders translated/kRO_english;kRO Цитата:
Цитата:
|
||
17.02.2013, 22:29 | #4 | ||
Админ
|
Цитата:
Цитата:
__________________
¤Config checker¤Руководство¤Файлы¤Конфиги¤Макросы¤ Быстро и качественно напишу конфиг (макрос) за yAD! Стучи! |
||
Этот пользователь сказал Спасибо 4epT за это полезное сообщение: | Derrek (18.02.2013) |
19.02.2013, 00:32 | #5 |
Новичок
Регистрация: 12.11.2012
Сообщений: 31
Вы сказали Спасибо: 12
Поблагодарили 0 раз(а) в 0 сообщениях
|
Работает как часы, только проблему с восьмёркой осталось решить. Чую нужно ветвления делать при каждой проверке на наличие "y" в конце "eight"... Но скорее всего можно забить. Там 5 попыток и обычно больше 1го раза подряд восьмёрка не всплывает.
|
19.02.2013, 10:20 | #6 |
Админ
|
а ты попробуй изменить строчку:
Код:
my @sl = ("one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety", "one Hundred","two Hundred","three Hundred","four Hundred","five Hundred","six Hundred","seven Hundred","eight Hundred","nine Hundred"); Код:
my @sl = ("eighty", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "ninety", "one Hundred","two Hundred","three Hundred","four Hundred","five Hundred","six Hundred","seven Hundred","eight Hundred","nine Hundred");
__________________
¤Config checker¤Руководство¤Файлы¤Конфиги¤Макросы¤ Быстро и качественно напишу конфиг (макрос) за yAD! Стучи! |
19.02.2013, 17:46 | #7 |
Новичок
Регистрация: 12.11.2012
Сообщений: 31
Вы сказали Спасибо: 12
Поблагодарили 0 раз(а) в 0 сообщениях
|
Ок, потестирую, если в логах 8ку найду сообщу о результате.
Вот что вышло: Код:
[Feb 20 03:14:41 2013.54] [АвтоБот] Вроди нашел ту строчку: "~five Hundred eighty one!". [Feb 20 03:14:41 2013.54] [АвтоБот] Распознал СОТНЮ: "Hundred". [Feb 20 03:14:41 2013.55] [АвтоБот] Распознал 1: "five". [Feb 20 03:14:41 2013.55] [АвтоБот] Распознал 3: "eighty". [Feb 20 03:14:41 2013.56] [АвтоБот] Распознал 3: "eight". [Feb 20 03:14:41 2013.56] [АвтоБот] Распознал 4: "one". [Feb 20 03:14:41 2013.57] [АвтоБот] Итого в граммах: "509". Код:
[Feb 20 03:14:47 2013.23] [АвтоБот] Вроди нашел ту строчку: "six Hundred eightym ". [Feb 20 03:14:47 2013.24] [АвтоБот] Распознал СОТНЮ: "Hundred". [Feb 20 03:14:47 2013.24] [АвтоБот] Распознал 1: "six". [Feb 20 03:14:47 2013.25] [АвтоБот] Распознал 3: "eighty". [Feb 20 03:14:47 2013.25] [АвтоБот] Распознал 3: "eight". [Feb 20 03:14:47 2013.26] [АвтоБот] Итого в граммах: "608". Код:
[Feb 20 04:06:40 2013.31] [АвтоБот] Вроди нашел ту строчку: "tone Hundred eighty msix". [Feb 20 04:06:40 2013.32] [АвтоБот] Распознал СОТНЮ: "Hundred". [Feb 20 04:06:40 2013.32] [АвтоБот] Распознал 1: "one". [Feb 20 04:06:40 2013.33] [АвтоБот] Распознал 3: "eighty". [Feb 20 04:06:40 2013.33] [АвтоБот] Распознал 3: "eight". [Feb 20 04:06:40 2013.34] [АвтоБот] Распознал 4: "six". [Feb 20 04:06:40 2013.34] [АвтоБот] Итого в граммах: "114". Код:
foreach $tmp (@sl){ if ($str3 =~/^.?$tmp.?$/) { message "[АвтоБот] Распознал 3: \"$tmp\".\n", "success"; $str3 = $tmp; } } Код:
foreach $tmp (@sl){ if ($str3 =~/^.?$tmp.?$/) { message "[АвтоБот] Распознал 3: \"$tmp\".\n", "success"; $str3 = $tmp; last; } } Код:
foreach $tmp (@sl){ last if ($str3 =~/^.?$tmp.?$/) { message "[АвтоБот] Распознал 3: \"$tmp\".\n", "success"; $str3 = $tmp; } } UPD ^_^ Код:
[Feb 20 14:47:24 2013.21] [АвтоБот] Вроди нашел ту строчку: "nthreed Hundred eighty ~niney". [Feb 20 14:47:24 2013.21] [АвтоБот] Распознал СОТНЮ: "Hundred". [Feb 20 14:47:24 2013.22] [АвтоБот] Распознал 1: "three". [Feb 20 14:47:24 2013.22] [АвтоБот] Распознал 3: "eighty". [Feb 20 14:47:24 2013.22] [АвтоБот] Распознал 4: "nine". [Feb 20 14:47:24 2013.23] [АвтоБот] Итого в граммах: "389". Последний раз редактировалось Derrek; 20.02.2013 в 17:42. |
22.02.2013, 08:29 | #8 |
Админ
|
всё типо клёво теперь?
__________________
¤Config checker¤Руководство¤Файлы¤Конфиги¤Макросы¤ Быстро и качественно напишу конфиг (макрос) за yAD! Стучи! |
22.02.2013, 09:04 | #9 |
Новичок
Регистрация: 12.11.2012
Сообщений: 31
Вы сказали Спасибо: 12
Поблагодарили 0 раз(а) в 0 сообщениях
|
Да, бот с первого раза проходил все проверки. Только админы как-то вычислили всех моих ботов всё равно =)) Забанили все акки по айпи. Ищу другой щас сервак.
|