Страница 1 из 2

Управление ботом с xKore режима (захваченого клиента)

Добавлено: Сб ноя 11, 2006 6:19 am
kLabMouse
И так.. я давным давно искал как оно делается. Везде молчёк.
И потом чисто случайно нашёл такую штуку в ОпенКоровском мануале.
commandPrefix [<string>]
If you're running in X-Kore mode, messages you type in the Ragnarok Online client that begin with the specified prefix will be intercepted by Kore and interpreted as console commands.
Немного переведу
commandPrefix [<строка>]
Если Вы работаете через X-Kore режим, сообщения которые вы вводите в клиенте которые начинаются на <строка> будут перехвачены Kore'ом и интерпретированы как консольные команды.
По умолчанию там всегда стоит символ ;
Но не всё так просто.
Что бы отправить команду кору нужно не просто поставить символ ; в начале строки. Но и поставить пробел. (для особо недогаднивых).
Теперь ваш бот будет воспринимать команды с окна клиента :D

Только вот одно НО. Ета зараза флудит в консоль клиента. Как от етого избавится. Я пока не знаю. Нуно будет думать.

П.С. Если кто попросит как управлять ботом с удалённого чара.. ну ето другая история. И там немного по другому.

Re: Управление ботом с xKore режима (захваченого клиента)

Добавлено: Сб ноя 11, 2006 9:39 am
JekkiOne
kLabMouse писал(а):И так.. я давным давно искал как оно делается. Везде молчёк.
Вот супер! Ну значит уже не везде молчек :wink:

Просто люди умные сволочи, сделают и забивают, не передают свои знания, ну влом им! Так вот и я)))) Это вообщем нахдиться элементарно, но не кто не спрашивает!))))

Таким образом в начале своего знакомства мучил shop.
Метод подбора работает безотказно, особенно если и мануал можешь перевести)))


Функция удобная, но вот только требует опыта или распечатки комманд под клавой))) Было бы удобнее если был бы прозрачный интерфейс с "кнопками" простых команд! По крайне мере мне. 8)

Добавлено: Сб ноя 11, 2006 10:10 am
piroJOKE
Хм. Вообще ситуация парадоксальная, раньше это ";e huh" работало чудесно без всяких пробелов и было отлично документировано. Но потом во время очередной "перестройки" там что-то перекроили и вот...

PS: ...c тех пор я этой штукой не пользуюсь. Все команды вводятся в окно консоли. Точка.

Добавлено: Сб ноя 11, 2006 10:25 am
miniBot
Раньше пробовал, че-та ничего не получалось, там еще какие-нибудь параметры влияют кроме этого, чтоб заработало?
Я когда пробовал эту функцию, круто лоханулся. Крикнул в общий чат ;ai manual некоторые это видели. ЫЫЫ.

Добавлено: Сб ноя 11, 2006 11:10 am
piroJOKE
Угу, у всех такие же случаи были. Поэтому, я там сделал альясы (это пока оно ЕЩЕ нормально работало), и команды стали неузнаваемыми. Как например насчет ;) и ;--) и ;*( и ;\ и тп.

Добавлено: Сб ноя 11, 2006 7:09 pm
kLabMouse
piroJOKE
Ну не знаю. Я вот вчера тестил. Нуно было создать штучный лаг. доделал команду а как вызвать не знал. Пришлось перелопатить весь ОпенКоровский форум. Потом чисто случайно набрёл на ключь конфига которым никогда не интиресовался. Полазил по исходникам, глянул что где и как. Они там немного перемудрили. Но если первый символ стоки ; второй пустое место (пробел) то всё красиво пашет.
Только вот бы каким-то образом отключать долбаный мусор в консольке. Ваще заебца было-бы.

Добавлено: Сб ноя 11, 2006 7:43 pm
piroJOKE
А нельзя ли как-нибудь колдануть, шоб и без пробела пахало?

Добавлено: Сб ноя 11, 2006 8:06 pm
kLabMouse
piroJOKE

Хз... нуно подумать.
Вот нашёл два куска где ето всё парсится

# Private message

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

		my $prefix = quotemeta $config{commandPrefix};
		if ($chat =~ /^$prefix/) {
			$chat =~ s/^$prefix//;
			$chat =~ s/^\s*//;
			$chat =~ s/\s*$//;
			parseInput($chat, 1);
			undef $sendMsg;
		} else {
			undef %lastpm;
			$lastpm{msg} = $chat;
			$lastpm{user} = $user;
			push @lastpm, {%lastpm};
		}
# Public chat

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

		my $prefix = quotemeta $config{'commandPrefix'};
		if ($chat =~ /^$prefix/) {
			$chat =~ s/^$prefix//;
			$chat =~ s/^\s*//;
			$chat =~ s/\s*$//;
			$chat =~ s/\000*$//;
			parseInput($chat, 1);
			undef $sendMsg;
		}
И так немного подумав найдём общие черты....
if ($chat =~ /^$prefix/) -- Если в начале строки найден префикс
$chat =~ s/^$prefix//; -- Удалим префикс в начале строки
$chat =~ s/^\s*//; -- Удалить пробелы с начала строки
$chat =~ s/\s*$//; -- Удалить пробелы с конца строки
$chat =~ s/\000*$//; -- Ну и удалим символы \0 в конце строки (здесь бы я лучше написал так: $chat =~ s/\000*//; и поставил ещё после него ещё разок
$chat =~ s/\s*$//;)

Чесно говоря он вроде должен шарить и без пробела. Но хз. Всё нуно пробовать на своей шкуре.

Добавлено: Сб ноя 25, 2006 11:58 am
GalAnt

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

XKore_silent 1
В этом случае Опенкора не флудит в окошко игрового чата.

Добавлено: Пт янв 26, 2007 11:17 am
Elvira
а у меня при захвате клиента кором (XKore_silent 1), выдается ошибка, текст конктено не напишу...
в духе: "вы пытаетесь поизвести запись в область памяти клиента, действие заблокировано"
кто мне скажет, как бороться с этим?

Добавлено: Пт янв 26, 2007 11:48 am
miniBot
Блочит, скорее всего антивирус, или фаэрвол. Даже скорее всего Outpost, он ужасно не любил, когда какая-то прога пыталась на д ИЕ глумиться и отрубала ИЕ доступ к инету. Если мои телепатические способнобности меня не обманули, то где-то в Otpost надо коре разрешить изменение области памяти других приложений, или что-то в этом роде.

Добавлено: Пт янв 26, 2007 12:17 pm
Elvira
М-да скорее всего так и есть, убить Аутпост нах :D

Добавлено: Чт фев 01, 2007 4:13 pm
wolf
Вопрос в догонку, после запуска коры в режиме XCore 1, захвата клиента, выбора чара и входа в игру, кора выдает ошибку:
OpenKore version 1.9.3

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

@ai_seq = skill_use
Loaded plugins:
  plugins/alertsound.pl (alertsound)
  plugins/doCommand.pl (doCommand)
  plugins/macro.pl (macro)
  plugins/patchConnect.pl (patchconnect)
  plugins/ropp.pl (ppengine)

Error message:
Wrong number of parameters: expected 1, got 0.

Stack trace:
Wrong number of parameters: expected 1, got 0. at C:/path_to_bot/src/Interface/Wx.pm line 131
	Interface::Wx::mainLoop('Interface::Wx=HASH(0x2cd6ca0)') called at openkore.pl line 382
	main::__start() called at start.pl line 127
Соответственно кора вылетает, клиент пишет, что потерянно соединение с сервером и тоже вылетает. Как побороть эту проблемму?

Добавлено: Чт фев 01, 2007 9:58 pm
kLabMouse
wolf
Во первых. Ты пытаешся Подключится к Офф Серверу (Вау Я Медиум уже. ГГ! :D )
Во вторых. У тебя Гибридный Клиент, ТЕ стоят не все Апдейты, а только основной на Протоко (Режим хКор 0, или обычный)
Обнови и всё будет ОК.

Добавлено: Пт фев 02, 2007 7:50 am
wolf
все, разобрался... ммм... достаточно было прописать serverType 13 и отрубить Outpost... хз что из этого помогло... в любом случае спасибо за содействие )