Перейти к содержанию

Дайджесты за январь-февраль

Обновления гайдов и аддонов

Январь Февраль

Мониторинг серверов и редактор аддонов

Представляем вам две легенды. То, о чем можно было только мечтать, стало реальностью.

Мониторинг серверов Редактор аддонов

Подсказки из игры на вашем сайте

Теперь вы можете отображать сведения о внутриигровых элементах простым наведением курсора мыши.

Подробнее

Апдейтер аддонов

Представляем вам программу для автообновления аддонов и делимся подробностями.

Подробнее Скачать

Связь аддона со сторонним приложением


Гость Dside

Рекомендуемые сообщения

Пока не буду распространяться для чего, поскольку планы ещё не до конца ясны, но вопрос определён довольно точно:

Насколько реально наладить аддоном связь со сторонним приложением?

Я видел, что возможна запись в текстовые файлы. Есть ли что-нибудь ещё подобное?

То есть, с файлами получается примерно следующее:

> аддон записывает результаты своей работы в файл

> каждые N секунд программа просматривает этот файл (путь указывается через настройки), стирает содержимое и выполняет команду, данную ей через него

PS: я никоим образом не знаком с Lua, но в программировании смыслю, правда, в ООП пока не силён.

PPS: идея не имеет отношения к ботоводству, это задумывалось как инструмент некоторой инфо-поддержки для гильдий.

Заранее спасибо за ответ,

D-side.

Ссылка на комментарий
Поделиться на другие сайты

Насколько я знаю, на сегодня аддоны могут сохранять данные только в 2 файла: Personal\user.cfg (файл настроек игры) и Personal\Logs\mods.txt (файл отладки аддонов). При этом запущенная игра первый из этих файлов держит в ОЗУ = любая запись в файл сторонней программой будет перезаписана игрой. То есть, если файл необходимо ни только читать, но и писать в него - можно использовать mods.txt. Но лучше делать проверку на запущенность игры и писать в user.cfg, так как mods.txt может не хило раздуваться от ошибок различных аддонов. Ни каким другим способом связать действие аддона с программой сейчас нельзя (опять-таки: насколько я в теме).

Как пример работы с mods.txt, можно посмотреть AIE, которая раз в 10 минут при соотв. настройках просматривает mods.txt, сохраняет ошибки каждого из аддонов в отдельный файл, а лог чата аддона ChatLogByN00b разбивает по дате (сохраняет лог каждого дня в отдельный файл). В этой же программе можно посмотреть и пример работы с user.cfg, если установить аддон aGAI - программа построит список персонажей для экспорта из user.cfg автоматически.

Ссылка на комментарий
Поделиться на другие сайты

Принципиальная разница между User.cfg и Mods.txt в том, что в User.cfg можно писать, и можно его читать (НО только аддоном, а сторонняя программа не может ничего туда записать во время работы игры, Abagor объяснил, почему). В Mods.txt можно только писать. Кроме того, User.cfg - это файл конфигурации, в который можно как добавлять новую информацию, так и перезаписывать старую. А Mods.txt - это обычный лог-файл, где каждая новая запись добавляет новую строку.

Quote:

> аддон записывает результаты своей работы в файл

> каждые N секунд программа просматривает этот файл (путь указывается через настройки), стирает содержимое и выполняет команду, данную ей через него

Для этого можно использовать любой из двух файлов, но, имхо, лучше подойдёт User.cfg. Только стирать из него ничего нельзя, пусть аддон просто перезаписывает одну и ту же таблицу по верху, но каждый раз, с каким-нибудь новым признаком, чтобы программа соображала, когда эта таблица обновилась. В качестве такого признака лучше всего подойдёт порядковый номер команды (1, 2, 3, ...).

Впрочем, если есть вероятность, что команды могут быть отправлены с интервалом меньше секунды, то User.cfg не подходит, т.к. аддон тупо перезапишет одну команду другой, и программа одну команду упустит. Тогда, лучше пользоваться Mods.txt. Тоже, наверное, можно ничего не стирать, просто к командам приписывать порядковые номера.

Ссылка на комментарий
Поделиться на другие сайты

Quote:
программа одну команду упустит

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

Нюанс: пост выше - если user.cfg держится в ОЗУ, то как часто идёт сохранение? Раз в секунду?

То есть, из игры возможен только вывод, ввод невозможен, так? Нормально. Это меня устроит, большая часть команд всё равно не требует фидбэка.
Вариант с порядковым номером команды я рассматривал раньше. Видимо, это лучший вариант из возможных :)
Видимо, можно приступать к разработке утилиты... Спасибо за помощь!
Ссылка на комментарий
Поделиться на другие сайты

Quote:
если user.cfg держится в ОЗУ, то как часто идёт сохранение? Раз в секунду?

Вроде, запись на диск начинается мгновенно, сразу после каждого изменения.
Запись может занять разное время, в зависимости от размера этого файла. У меня она длится с полсекунды, т.к. у меня установлен HealthDB и раньше работал LootInfo, а почистить этот файл руки не доходят :) Во время записи, в игре наблюдается полусекундный лаг.
Ссылка на комментарий
Поделиться на другие сайты

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

p.s. данная утилита также есть в пакете программ к windows server и возможно установка на любую ос windows =)

p.p.s. писал подобную программку для сервера одной онлайн рпг ;)

Ссылка на комментарий
Поделиться на другие сайты

Нет, пожалуй, я попробую воспользоваться user.cfg... А доступ для чтения другой программой точно есть во время игры, кто-нибудь проверял?

2 Ameno: У себя на Win7 ничего подобного не нашёл, да и не понадобится это. Вариант с перезаписью таблицы гораздо лучше, на мой взгляд. Команды могут быть очень нехилыми по размеру, и куча таких команд, записанная в лог, может покушать мегабайтики свободного места...

Спасибо всем за отклики! Дописываю проектик с учётом этих данных, скоро перейду к реализации...

Ссылка на комментарий
Поделиться на другие сайты

Quote:
Нет, пожалуй, я попробую воспользоваться user.cfg... А доступ для чтения другой программой точно есть во время игры, кто-нибудь проверял?

Блокнотом по крайней мере открывается :)
Ссылка на комментарий
Поделиться на другие сайты

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...

Важная информация

Пользуясь сайтом, вы принимаете Условия использования