Плагин AntiBotkiller - диалог с НПЦ, требующим ввода чисел

Дополнения к OpenKore, расширяющиее её функциональность, называются плагинами.

Модератор: 4epT

Аватара пользователя
Click
Разработчик
Сообщения: 1564
Зарегистрирован: Сб ноя 04, 2006 11:30 pm
Сервер RO:: clickro.sytes.net
Откуда: Великий Новгород
Контактная информация:

Сообщение Click »

точку с запитой не стирай
Nedfor2
Новичок
Сообщения: 3
Зарегистрирован: Чт окт 30, 2008 3:52 am

Сообщение Nedfor2 »

Оставил патом он пишет ошибка в responseOnImageNumbers.pl 23 если стереть там use comand опять ошибка тоже самое ток теперь уже на 63 строке.
Аватара пользователя
Дядя Дима
Новичок
Сообщения: 8
Зарегистрирован: Пт сен 19, 2008 12:22 am
Контактная информация:

Re:

Сообщение Дядя Дима »

moonlight писал(а):карочи исправляюсь. вот тот аотибот

Код: Выделить всё

# =======================
# АвтоБот v.1.2.666
#( с помощью ебаной матери и перла, русификация Moonlight)
# =======================
# Copyright 2006
# Base Script : hakore(reactOnNPC)
# Modified by : AqlX
# Далее помог : Moonlight 2007
#

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 = ("один", 1, "два", 2, "три", 3, "четыре", 4, "пять", 5, "шесть", 6, "семь", 7, "восемь", 8, "девять", 9, "десять", 10, "одиннадцать", 11, "двенадцать", 12, "тринадцать", 13, "четырнадцать", 14, "пятнадцать", 15,"шестнадцать", 16,"семнадцать", 17, "восемнадцать", 18, "девятнадцать", 19 ,"двадцать", 20, "тридцать", 30, "сорок", 40, "пятьдесят", 50, "шестьдесят", 60, "семьдесят", 70, "восемьдесят", 80, "девяносто", 90,"сто",100,"двести",200,"триста",300,"четыреста",400,"пятьсот",500,"шестьсот",600,"семьсот",700,"восемьсот",800,"девятьсот",900);
	my @sl = ("один","два","три","четыре","пять","шесть","семь","восемь","девять","десять","одиннадцать","двенадцать","тринадцать","четырнадцать","пятнадцать","шестнадцать","семнадцать","восемнадцать","девятнадцать","двадцать","тридцать","сорок","пятьдесят","шестьдесят","семьдесят","восемьдесят","девяносто","сто","двести","триста","четыреста","пятьсот","шестьсот","семьсот","восемьсот","девятьсот");
#Заменяем злоебучие символы, написанные в латинице
	$str =~ tr/m/т/;
	$str =~ tr/e/е/;
	$str =~ tr/o/о/;
	$str =~ tr/a/а/;
	$str =~ tr/u/и/;
	$str =~ tr/p/р/;
	$str =~ tr/c/с/;
	message "[АвтоБот] Перевели на русский: \"$str\".\n", "success";

my ($str1, $str2, $str3) = split(/ /, $str);

my $tmp;

foreach $tmp (@sl){
	if ($str1 =~/^.?$tmp.?$/) {
		message "[АвтоБот] Распознал: \"$tmp\".\n", "success";	
		$str1 = $tmp;
	}
}

foreach $tmp (@sl){
	if ($str2 =~/^.?$tmp.?$/) {
	message "[АвтоБот] Распознал: \"$tmp\".\n", "success";
		$str2 = $tmp;
	}
}

foreach $tmp (@sl){
	if ($str3 =~/^.?$tmp.?$/) {
	message "[АвтоБот] Распознал: \"$tmp\".\n", "success";
		$str3 = $tmp;
	}
}


$code = $sn{$str1}+$sn{$str2}+$sn{$str3};

message "[АвтоБот] Итого в граммах: \"$code\".\n", "success";

return $code;


}

return 1;
на самом деле непонятно не черта куда что вводить ....
вот мой диалог бота
[АвтоБот] 0 "".
[АвтоБот] 1 "[Антибот]".
[АвтоБот] 2 "Привет. Я твой новый антибот.".
[АвтоБот] 3 "Чтобы попасть в игру надо ввести код: 9320".
[АвтоБот] 4 "".
остается два вопроса куда в плагин вписать строчку с кодом чтоб он отсортировал мусор от кода то есть бля бля бля от 9320
и что делают эти строки
$reactOnNPC{msg}[3] =~ s/> //;
$reactOnNPC{msg}[4] =~ s/> //;
... если они отвечают в какой строке типо код смотреть или нет...
и надоли стирать одну из них в моем случае: $reactOnNPC{msg}[4] =~ s/> //;
Или я ваще нето говорю и несу полный бред .... я в етой фитчи не секу ))) в заранее спс за помощь :pardon:
Изображение
Greenk
Новичок
Сообщения: 1
Зарегистрирован: Чт июл 09, 2009 2:35 am

Re: Плагин AntiBotkiller - диалог с НПЦ, требующим ввода чисел

Сообщение Greenk »

Ребят вот такая вот фигня как обойти помогите пожалуйста
Изображение
Аватара пользователя
4epT
macro-маньячина
Сообщения: 2792
Зарегистрирован: Чт дек 21, 2006 1:23 pm
Сервер RO:: 4game
Discord: ya4ept#8494
Контактная информация:

Re: Плагин AntiBotkiller - диалог с НПЦ, требующим ввода чисел

Сообщение 4epT »

на ZenyRO раньше была подобная защита, в общем проштудируй тут, хотя там открытого ответа для тебя нету, нужно будет доработать для своих нужд
Быстро и качественно напишу конфиг (макрос)! Стучи!
¤ Свежий бот ¤ Config checker ¤ Manual ¤
Изображение
Изображение
Ответить