Страница 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'ом и интерпретированы как консольные команды.
По умолчанию там всегда стоит символ
;
Но не всё так просто.
Что бы отправить команду кору нужно не просто поставить символ
; в начале строки. Но и поставить пробел. (для особо недогаднивых).
Теперь ваш бот будет воспринимать команды с окна клиента
Только вот одно НО. Ета зараза флудит в консоль клиента. Как от етого избавится. Я пока не знаю. Нуно будет думать.
П.С. Если кто попросит как управлять ботом с удалённого чара.. ну ето другая история. И там немного по другому.
Re: Управление ботом с xKore режима (захваченого клиента)
Добавлено: Сб ноя 11, 2006 9:39 am
JekkiOne
kLabMouse писал(а):И так.. я давным давно искал как оно делается. Везде молчёк.
Вот супер! Ну значит уже не везде молчек
Просто люди умные сволочи, сделают и забивают, не передают свои знания, ну влом им! Так вот и я)))) Это вообщем нахдиться элементарно, но не кто не спрашивает!))))
Таким образом в начале своего знакомства мучил shop.
Метод подбора работает безотказно, особенно если и мануал можешь перевести)))
Функция удобная, но вот только требует опыта или распечатки комманд под клавой))) Было бы удобнее если был бы прозрачный интерфейс с "кнопками" простых команд! По крайне мере мне.
Добавлено: Сб ноя 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
В этом случае Опенкора не флудит в окошко игрового чата.
Добавлено: Пт янв 26, 2007 11:17 am
Elvira
а у меня при захвате клиента кором (XKore_silent 1), выдается ошибка, текст конктено не напишу...
в духе: "вы пытаетесь поизвести запись в область памяти клиента, действие заблокировано"
кто мне скажет, как бороться с этим?
Добавлено: Пт янв 26, 2007 11:48 am
miniBot
Блочит, скорее всего антивирус, или фаэрвол. Даже скорее всего Outpost, он ужасно не любил, когда какая-то прога пыталась на д ИЕ глумиться и отрубала ИЕ доступ к инету. Если мои телепатические способнобности меня не обманули, то где-то в Otpost надо коре разрешить изменение области памяти других приложений, или что-то в этом роде.
Добавлено: Пт янв 26, 2007 12:17 pm
Elvira
М-да скорее всего так и есть, убить Аутпост нах
Добавлено: Чт фев 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
Во первых. Ты пытаешся Подключится к Офф Серверу (Вау Я Медиум уже. ГГ!
)
Во вторых. У тебя Гибридный Клиент, ТЕ стоят не все Апдейты, а только основной на Протоко (Режим хКор 0, или обычный)
Обнови и всё будет ОК.
Добавлено: Пт фев 02, 2007 7:50 am
wolf
все, разобрался... ммм... достаточно было прописать serverType 13 и отрубить Outpost... хз что из этого помогло... в любом случае спасибо за содействие )