Frequently Asked Questions

Материал из Руководство по OpenKore
Перейти к: навигация, поиск

Это перевод статьи, которую вы можете найти тут: openkore.com wiki

Содержание

Прежде, чем задавать вопрос

обновите OpenKore

OpenKore постоянно обновляется и исправляется. Таким образом, если ваша версия (ревизия) OpenKore не работает на Вашем сервере, если Вы обнаружили глюк или Вам не хватает какого-то функционала, то попробуйте сначала обновиться до свежей ревизии из git.

Имейте в виду, что старые релизы OpenKore не поддерживаются.

Про OpenKore

Что такое OpenKore?

OpenKore это бесплатно распространяемое программное обеспечение, с открытым исходным кодом, которое является клиентом и ботом для игры Ragnarok Online, большая часть написана на perl и создано в далёком 2003 году. Это ПО имеет лицензию GNU General Public License GPL. Некоторые составляющие части OpenKore основаны на стороннем программном обеспечении, распространяемом под другими лицензиями. Смотри файл LICENSE.

Что OpenKore может?

OpenKore способна делать практически всё, что доступно игроку в обычном игровом клиенте Ragnarok Online. В добавок к этому, OpenKore позволяет автоматизировать часть игрового процесса, например: атака мобов, движение, использование предметов и умений, складирование, покупка и продажа предметов через непись, открытие торговой лавки, телепорт и так далее. Обзорная статья по возможностям OpenKore - Overview.

Поддерживает ли OpenKore Renewal?

Конечно, в Renewal нет ничего особенного, что может помешать использовать OpenKore. Могут быть некоторые ошибки или отсутствующий контент (просто сообщите о них или внесите исправления), но сам Renewal не является проблемой.

А можно сделать так, чтобы...?

  • Есть ли способ, чтобы...?
  • Могу ли я...?

Скорее всего, ДА. Даже если в OpenKore или в множестве её плагинов не была реализована такая возможность, то Вы сами можете реализовать ваши потребности при помощи макроса, эвентМакроса, плагина или патча. Но для этого, скорее всего, потребуются некоторые знания в компьютерах вообще и программировании в частности.

"Я перепробовал всё..."

Всё? Ну если так, значит проблема неразрешима. Будьте более точны в выражениях и опишите, что вы конкретно пробовали сделать.

Установка и настройка

Где мне скачать OpenKore?

Ссылки для загрузки OpenKore доступны на главных страницах openkore.com и ragbot.ru/wiki. Можно поискать ссылки на странице Links. Можно взять OpenKore из svn-репозитория. Об этом рассказывается в TortoiseSVN Guide.

Внимание! Загружайте OpenKore только с главной страницы openkore.com или ragbot.ru/wiki, и http://sourceforge.net/projects/openkore/. Не загружайте OpenKore по ссылкам с форумов, IRC и т.д. В противном случае вы рискуете получить в комплекте всякие вирусы-трояны и можете потерять ваш игровой аккаунт. То же самое касается плагинов, макросов, конфигов и прочего.

См. также Patches Welcome.

Как мне подключиться к серверу?

Сейчас OpenKore поставляется с настройками только для официальных серверов Ragnarok Online. Для приватных серверов, коих развелось великое множество, вам следует самостоятельно выяснить необходимые настройки для конкретного сервера. Об этом рассказывается в Подключение бота к серверу.

Как мне настроить OpenKore?

Настройка OpenKore основывается на наборе текстовых конфигурационных файлов, которые располагаются в папке control. Каждый файл выполняет свою функцию и может быть легко настроен под ваши нужды. Смотри Руководство.

Вчера было обновление сервера и OpenKore перестала работать

Перенастройте заново все параметры подключения к серверу в файле servers.txt, заново извлеките ресивпакеты (recvpackets.txt) из запускаемого файла клиента.

Обновление

Существует несколько способов обновить OpenKore:

  • При помощи Openkore SVN AutoUpdater, который поставляется вместе с OpenKore, но требует установленного клиента Apache Subversion (для всех ботоводов)
  • При помощи subversion-клиента, например собственно "subversion" или TortoiseSVN (для разработчиков)
  • Просто скачать целиком свежий svn-архив. Пользуйтесь этим способом только в случае если ваш subversion-клиент или "рабочая копия" OpenKore были повреждены. Будьте осторожны и не затрите сделанные вами настройки и изменения.

Работает ли OpenKore под Linux?

Да, работает. Пользователи Linux (а также BSD, MacOS и других nix-ов) могут сразу запускать файл openkore.pl. При необходимости OpenKore автоматически скомпилирует libXSTools. Имеются некоторые общие зависимости, смотри "Как_запустить_OpenKore".

Версии OpenKore

  • Так называемая trunk-версия, (находящаяся в ^/openkore/trunk/ в svn-репозитарии), также называемая как svn-версия — рабочая версия, непосредственно над которой трудятся в данный момент программисты, так что она постоянно обновляется. Может быть в ней есть какие-то глюки, но она всегда является самой свежей версией OpenKore со всеми нововведениями и исправлениями. Svn-версия характеризуется номером ревизии, например r7362.
  • Так называемый релиз, release. Это состояние svn-репозитария на какой-то момент в прошлом, ознаменовавший качественный скачок в разработке OpenKore. Релиз характеризуется номером версии, например OpenKore 2.0.7, а также, возможно, датой выпуска релиза.

Локализация (язык) интерфейса

Язык интерфейса опеределяется параметром locale. Если он пуст, то используется локализация, соответствующая локализации операционной системы. Чтобы вернуть английский интерфейс, следует прописать locale en.

Общие ошибки

ext/hash_fun.h: No such file or directory

Если у вас появилась на консоли такое сообщение об ошибке, замените в файле src/auto/XSTools/utils/sparseconfig.h строку #define HASH_FUN_H <ext/hash_fun.h> новой строкой #define HASH_FUN_H <backward/hash_fun.h>.

Recursive inheritance detected in package Network::Receive::kRO

Если вы используете kRO-шные серветипы, то вам потребуется Perl 5.10 или выше.

Assertion ('HASH(...)' must be of class 'Actor::You') failed

Старая версия (ревизия) OpenKore. Обновите OpenKore. (Например, скачав с сайта openkore.collectskin.com или следуя этому руководству TortoiseSVN_Guide)

Can't call method "inventory" on unblessed reference

Старая версия (ревизия) OpenKore или неверные настройки подключения к серверу. Обновите OpenKore и перепроверьте настройки.

Ошибки соединения с сервером

Cannot load server message parser for server type

OpenKore не имеет такого сервертипа, какой был указан в servers.txt. Попробуйте обновить OpenKore, попробуйте использовать другой сервертип. Кроме того, проверьте, правильно ли вы написали название сервертипа. Например, так писать - kRo_RagexeRE_2010_01_26a - неправильно (прописная буква o вместо строчной), а вот так правильно - kRO_RagexeRE_2010_01_26a.

"Error code 10060" при соединении с сервером

Соединение с игровым сервером не может быть установлено. Скорее всего в файле servers.txt указана неверная информация - например ip-адрес или порт сервера. О том, как узнать настройки для подключения к серверу, можно почитать в Подключение бота к серверу. Однако, прежде чем что-то делать, попробуйте зайти в игру обычным клиентом - может быть ваш сервер сломался или находится на профилактике?

"Timeout on Account server", ошибка при соединении с сервером

Неверная информация о сервере в файле servers.txt или на сервере установлен какой-то антибот. Проверьте настройки согласно Подключение бота к серверу и просмотрите список неподдерживаемых OpenKore'ой серверов: unsupported servers.

Корявый список персонажей на аккаунте

Если в имени вашего персонажа пропали первые буквы, если у него не та профессия и вообще какой-то мусор при выборе персонажа в аккаунте, то у вас неправильно установлен параметр charBlockSize в файле servers.txt. См. "Определение charBlockSize".

Антибот не даёт подключиться к серверу

В OpenKore нет встроенных решений по обходу защит и антиботов, за исключением Poseidon'a, который позволяет обманывать HackShield на официальных серверах. Существует нехватка людей, которые были бы способны и имели желание в создании и раздаче обходов кустарных защит. Поэтому нет смысла постоянно каждый день спрашивать, появился ли обход защиты для данного сервера. Отсутствие ответов в теме говорит о том, что это никому не интересно.

Проблемы в игре

Неписи и мобы показываются как "Unknown xxxxxxxx"

В файле servers.txt указан неверный сервертип или файл с ресивпакетами устарел и не подходит. Смотри гайд Подключение бота к серверу чтобы найти правильный serverType, и Packet Length Extractor чтобы извлечь ресивпакеты.

Предметы и умения пишутся в консоли как "?????"

Скорее всего консоль была не в состоянии отобразить корейские иероглифы. Если вы используете kRO-шный сервертип, то по умолчанию берётся набор корейских табличных файлов - а в них и названия предметов, и умений. Вместо корейских таблиц можно использовать другие, например английские. Есть две возможности задать, какими таблицами пользоваться:

  1. При помощи аргумента командной строки --tables=<папка с таблицами>, например --tables=iRO
  2. При помощи параметра файла config.txt addTableFolders <папка с таблицами>, например addTableFolders translated/kRO_english

Unknown Packet xxxx

У вас старая версия OpenKore, обновитесь!

Packet Tokenizer: Unknown switch: xxxx

Пакет с заголовком "xxxx" не указан в файле с ресивпакетами, таким образом неизвестна длина этого пакета.

Правильные заголовки пакетов RO: 0064—04FF и 0700—07FF. Все остальные значения типа 9600, 0000 и тому подобное, не являются заголовками пакетов. Если вы получили пакет с таким неправильным заголовком, то ваши настройки в servers.txt или ресивпакеты ошибочны. Такие заголовки пакетов, как правило, получаются из-за того, что для предыдущего пакета была указана не та длина и вы видите середину или хвост другого пакета, а не его начало.

Необходимо обновить файл с ресивпакетами, как это сказано в Packet Length Extractor.

Имейте в виду, что из-за таких ошибок бот будет нестабилен и вы словите все возможные и забавные глюки, какие только есть (например, неубиваемые или несуществующие мобы). Это происходит потому, что все пакеты, которые были за ошибочным, будут проигнорированны или неправильно разобраны.

Если вы всё-таки хотите отключить вывод этих предупреждений, добавьте соответствующие заголовки пакетов в debugPacket_exclude.

Packet Parser: Unknown switch: xxxx

Длина пакета известна, но соответствующая структура пакета не была найдена в хэше %packet_list, поэтому пакет был проигнорирован.

В общем, ничего страшного в этом нет, если это не вызывает проблем. Это может быть неизвестный пакет или пакет для новой, ещё пока не поддерживаемой функции.

Packet Parser: Unhandled Packet: xxxx Handler: xxxxxxxx

Длина пакета известна, найдена соответствующая структура, но нет функции-обработчика в данном сервертипе для этого пакета. Пакет проигнорирован.

В общем, ничего страшного в этом нет, если это не вызывает проблем. Это может быть неизвестный пакет или пакет для новой, ещё пока не поддерживаемой функции.

Removed actor with off map coordinates

Возможные причины:

  • Вы используете неправильный и несовместимый с сервером serverType.
  • На сервере стоит антибот.
  • Сервер глючит.

Не видно умений и их не получается использовать

Проверьте вывод команды skills, чтобы посмотреть список ваших умений. Если в списке не выводятся умения, которые ваш персонаж по-идее должен иметь, то ваши настройки в файле servers.txt не верны.

Пустые сообщения в чате, обрезанные или с/без |xx

Возможные причины:

Дисконнект, в ответ на какое-то действие в игре

Возможные причины:

  • Структуры пакетов в используемом сервертипе не подходят к вашему серверу.
  • Совершенное действие приводит к дисконнекту даже в официальном клиенте Ragnarok Online (например, попытка идти во время разговора с неписью)
  • Совершенное действие не предусмотренно в данной ситуации (неправильные действия при разговоре с неписями, неправильные идентификаторы акторов)
  • Вы использовали площадное умение, которое не настроено должным образом в файле skillsarea.txt. Например, смотри тему про Renewal-умения (http://forums.openkore.com/viewtopic.php?t=11747).

Как вернуть английский интерфейс?

В файле sys.txt прописать параметр locale:

locale en

Как вернуть английские названия вещей и умений?

В файле servers.txt для вашего сервера добавить параметр

addTableFolders translated/kRO_english

или

addTableFolders iRO

Macro plugin

Malformed UTF-8 character

Ваш файл с макросами (по умолчанию - macros.txt) сохранён в национальной кодировке. Пересохраните этот файл в кодировке UTF-8.

Синтаксическая ошибка в первой строке

Если при загрузке OpenKore макро-плагин выдаёт ошибку синтаксиса в первой же строке файла macros.txt, то:

  • либо обновите ваш макро-плагин из svn-репозитария OpenKore. В одной из недавних ревизий макро-плагин стал нечувствителен к наличию или отстутствию двух первых, служебных байтов, так называемого "BOM".
  • либо сохраните файл macros.txt в кодировке "UTF-8 without BOM", что можно сделать в Notepad++, но невозможно сделать в обычном Notepad Windows.

Как записать сообщение в текстовый файл?

Например, возникала задача при убийстве MVP сделать запись из макроса про это в отдельном текстовом файле - mvp.txt (см. источник).

automacro mvp {
   exclusive 1
   run-once 1
   console /^You become MVP/
   call logmvp
}
macro logmvp {
   pause 1
   do eval open(FILE, ">>", Settings::getControlFilename("mvp.txt")); print FILE "$.time kills $.lastMonster at $.map \n"; close FILE;
   release mvp
}

Проблемы в Unix

Зависание в самом начале

Интерфейс Console::Unix использует потоки для работы и может зависнуть на вызове pthread_create, если Perl был собран без опции THREADS. Это можно узнать при помощи команды perl -V | grep threads. Должно быть что-то вроде -Dusethreads=y. Соберите Perl заново с потоками - THREADS или воспользуйтесь другим интерфейсом. Выбрать другой интерфейс можно задав параметр командной строки --interface=Console::Simple, Console::Curses или Wx

XSTools.so

Если в unix-системах (например BSD/Linux/OSX) обновить Perl или библиотеки, от которых зависит OpenKore, то библиотека XSTools перестаёт работать.

Пример сообщения об ошибке:

~/path/to/openkore$ perl ./openkore.pl
/usr/bin/perl: symbol lookup error: /path/to/openkore/src/auto/XSTools.so: undefined symbol Perl_Gther_key_ptr

См. Fix XSTools

Проблемы в Windows

OpenKore конфликтует с клиентом Ragnarok Online

Такие конфликты могут случиться, если защита клиента находит OpenKore или Poseidon. Есть пара решений такой проблемы:

WPE конфликтует с клиентом Ragnarok Online

Кроме WPE есть ещё другие утилиты для перехвата и анализа пакетов. Подберите себе ту, что будет работать.

Отсутствует файл start.exe или wxstart.exe

Эти файлы можно загрузить со страницы from http://misc.openkore.com/

XSTools.dll is not found

Скачайте XSTools.dll и поместите его в папку src/auto/XSTools или в одну из папок, перечисленную переменной окружения PATH.

В файле из папки control или table всё написано в одну строку

Проблема заключается не в ваших конфигурационных или табличных файлах, а в текстовом редакторе, который не понимает unix-овый символ перевода строки. Эта проблема наиболее часто встречается при использовании Блокнота (Notepad) Windows. Попробуйте какой-нибудь другой текстовый редактор, например http://notepad-plus-plus.org/ notepad++].

Your Windows TCP/IP stack is broken

Ваш набор протоколов, относящихся к TCP/IP, так называемый стэк протоколов, был каким-то образом повреждён. Вам нужно восстановить его:

Если у вас Windows XP
  1. Убедитесь, что вы зашли в систему с админскими правами.
  2. Откройте окно с командной строкой.
  3. Введите в командной строке следующую команду и нажмите энтер: netsh int ip reset resetlog.txt
Если у вас Windows 2000

Перейдите по нижеследующей ссылке и проделайте указанные там действия: http://www.petri.co.il/reinstall_tcp_ip_on_windows_2000.htm

Консоль start.exe работает очень медленно (windows 10)

Необходимо:

  1. Запустить start.exe
  2. Кликнуть правой кнопкой по заголовку и выбрать "Свойства"
    win10 cmd1.png
  3. На вкладке "Настройки" отметить галочкой "Использовать прежнюю версию консоли"
    win10 cmd2.png