Теперь к сути и условиям корректной работы.Скачать программу и исходные коды: http://insane.su/jolly/ESCA/ESCA.zip
VirusTotal (ESCA.zip): https://virustotal.c...sis/1503697742/
VurusTotal (ESCA.exe): https://virustotal.c...sis/1503697760/
Для разработки я использовал версию Delphi, можете ее найти где-нибудь, например, на Рутрекере по названию Delphi XE8 22.0.19027.8951 Lite 11.0
Распространяется AS IS, в случае модификации, любая последующая версия должна содержать ссылку на insane.su и/или на Jolly Insane
Суть процесса:
EVE клиент в папку типа C:\Users\jolly\Documents\EVE\logs\Chatlogs\ пишет файлы логов, которые создаются при каждом отдельном запуске клиента. По фильтру названия канала в игре программа находит ПОСЛЕДНИЙ файл лога канала с указанным названием и копирует его в директорию, из которой она запускалась. Напрямую читать текстовый файл лога нельзя, клиент EVE его блокирует. Копирование происходит при каждом цикле (по-умолчанию 5 секунд, но можете настроить Check timer как угодно), так что информация в копии лог-файла актуальная (файл chat.txt в директории программы).
Юзер вбивает в файл regions.txt (или в поле Home region system) список интересующих его названий локаций и если кто-то из живых игроков линканет это название в указанный чат, то программа сообщит время и название канала. Ну еще проиграть может звук или мигать окошком небольшим поверх всех других окон (кроме фулл-скрин приложух).
Легально ли это? Я задал вопрос:
Добрый день!
Считается ли нарушением чтение текстовых лог-файлов чатов в папке Documents\EVE\logs\Chatlogs сторонним ПО для анализа текста, хранящегося в данных логах в режиме онлайн? Например, с целью оповещения при упоминании определенных фраз (названий системы, предметов, имен персонажей и тд)?
в саппорт и получил ответ, что это не должно нарушать правила игры:
*как оказалось, выкладывать скрины с перепиской с саппортом нельзя, поэтому верьте мне или спросите сами*
Это не автоматизация действий в игре (не макрос на продажу, не флуд-бот) и не анализатор пикселей в локал-чате. Информацию для SC (Secure Channel) собирают живые люди, лог-файл игры доступен для просмотра любым текстовым редактором. То есть я не автоматизирую игровые процессы, не получаю информацию, которую не должен получать, а просто предупреждаю пользователя о наличие в чате упоминания определенной строки. По похожему принципу можно, например, сделать сигналку на упоминание в торговом канале каких-либо товаров.
ESCA не мониторит ничего, кроме лога указанного чата, поэтому если в ваш SC никто не линканул врага, а он прилетел и убил вас, то это ваши проблемы. Смотреть в локал-чат на предмет нейтралов все равно нужно. ESCA скорее доп.глаза, которые пусть и на затылке, но ваши два глаза не заменяют.
Интерфейс:

Home region systems - текстовое поле, в котором строка должна содержать СТРОГО либо 1-2 символьное число (от 0 до 99), либо 6-значный набор символов, которые являются названиями систем. То есть пригодится программа только для жителей нулей.
Если вы живете в нулях, то находите на http://evemaps.dotlan.net/map карту своего региона и переписываете в данное поле (оно же равно файлу regions.txt в папке с программой) ПОСТРОЧНО соседние локации. Если вы хотите, чтобы локации шли не просто подряд, а были систематизированы, то программа позволяет указать раздел в виде числа, которое означает кол-во прыжков от вашей домашней локации до соседних. Для нашей корпы я переписал все системы в радиусе 5 прыжков, список для загрузки есть в бюллетенях корпы.
Директория с чатом берется вручную из папки вашего windows-юзера. А вот название канала нужно указать вручную.
Поле Jump range: количество прыжков, в пределах которых мониторить нужно нейтралов/врагов. Если вы заморочитесь и построите карту в пределах 10 прыгов - флаг вам в руки, я на 5 устал.
Check timer (sec) - время в секундах, через которое программа проверяет чат. Кулдаун крч.
Chat period (sec) - за какой период (за сколько последних секунд) проверять чат. Если вставите 60, то будет проверять упоминания в чате за последние 60 секунд. По мне эта величина должна быть х2 от Check Timer, либо чуть больше. Смысл знать, что год назад кто-то упоминался в чате?
No sound - проигрывать ли звук (файл alarm.wav, который можно заменить на любой другой .wav файл, mp3 не поддерживается). Если стоит галка - звука не будет. Удобно кликать эту галку в момент, когда прозвучала сирена, чтобы она не повторялась Chat period секунд.
Hide to tray кнопка свернет главное окно в трей. Вернуть можно окно по правой кнопке на иконку в трее - Show main form. Там же можно закрыть приложение или проинициализировать формы, то бишь поставить оба окна программы по центру экрана (если они убежали за пределы).
Show AlarmForm - покажет вручную окошко сирены. Его можно разместить в любом удобном месте, у него свойство быть поверх всех других окон, так что если нет второго монитора, можно разместить в углу основного, где и запущена игра.
Close - закрывает программу.
Alarm systems - показывает список систем, которые находятся в списке вашего региона (поле Home region system) и упоминались в чате не более, чем Chat period секунд назад. Формат простой - время, название локации и количество прыжков. Если вы не указали разделитель в виде числа прыжков, то будет писаться "0 jumps", но я рекомендую указать разделы и сократить число прыжков до 3-5.
Окно AlarmForm гораздо проще. Это список аналогичный Alarm system списку на главном окне, только он умеет мигать, если не стоит галка DONT BLINK. Если ESCA нашла врага в чате, окно AlarmForm будет поверх всех других окон (если у вас игра только не в фулл-скрине).
Исходники и дисклеймер:
В архиве лежат исходники программы. Можете изучить их самостоятельно и скомпилировать вручную. Код там простой и задокументирован мной на ломанном английском. То, что экзешник весит больше 10 Мб - издержки кривой среды разработки Delphi XE. Она пихает все подряд в конечный файл, даже если там указано, что я компилирую релизную версию. Попытки убрать лишнее и сделать прогу на максимум 200кб не увенчались успехом, так как эта версия Delphi все делает через жопу, а другую я пока не нашел. В принципе в моей проге используются компоненты самой голой и урезанной версии Дельфей, которую вы сможете найти и запустить на современной Винде. Разве что так и незаюзанный нигде statusbar может быть какой-то уникальный, но его можно просто удалить. В остальном это TForm, TEdit, TBtBtn (можно было и TButton, но я извратился ради иконки кнопки Close), TCombobox, TChecbox, TLabel, TMemo и TListbox. Ну и добавлены компоненты для иконки в трее и меню. Также стандартные.
Я не ставил все возможные защиты от дурака, так что если вы вобьете в списки систем пробелы или каким-то образом запорите все - просто распакуйте все из архива снова и гоу по-новой.
Я привел текст ответа саппорта, но в любом случае любое использование ESCA - на ваш страх и риск. Я не несу никакой ответственности за любые последствия, что с вашим акком произойдут при использовании данной программы. Никаких секретных функций в программе нет, так что сознательных деструктивных действий в ней не предусмотрено, только те, что в описании. Не доверяете мне - собирайте вручную из исходников. Школьной программы по Pascal/Deplhi хватит для изучения кода. У меня у самого примерно такие знания.
Так как писал данную прогу не на коленке, а считая, что мой код кто-нить когда-нить посмотрит, то на понятный код и удобства ушло дофига времени, так что я толком не поиграл, поэтому в ближайшие дни не будет записок по игре.
Также не смотря на то, что в моей предыдущей нерелизнутой программе EVE Route Checker (ERC) принцип поиска упоминаний локаций в SecChannel аналогичный, в ESCA я писал 99% кода с нуля, поэтому теперь для ERC нужно взять уже более прилизанный код из ESCA и на его основе допилить ERC. Но там даже тупо нет сохранения файлов настроек и тд, да и настроек особо.
Еще у меня в планах релизнуть EVExcel, ту шуточную прогу на экселе с макросами, что я набросал некоторое время назад, но так и не причесал для норм релиза.
Зато сегодня я накидал тему по тому как сделать альта под пвп веселуху в импе: http://insane.su/for...фа-клоне-в-pvp/