Относительно недавно ко мне обратился знакомый с просьбой помочь ему улучшить навыки PvP в нашем с вами любимом Perfect World, ну а по скольку дело это не простое и на прямую зависит от навыков и опыта (см. "прямые руки"), было решено подойти к вопросу комплексно и помочь многим людям страдающим от аналогичного недуга. Так на свет появилась идея написать программу ассистента, способную помочь даже не опытному игроку получить массу удовольствия от игры без необходимости тратить десятки, а то и сотни, часов на изучение всех нюансов и деталей игровой механики.
Начать было решено с основ - оценки обстановки. Ведь не важно сколько часов вы провели в дуэлях и уровень заточки на ваших предметах если вы находитесь в ситуации где силы противника существенно превышают ваши собственные. Самым очевидным решением в данной ситуации являлась реализация функций "радара", по аналогии с известными аналогами для L2, с возможностью отображения окружающих игроков и конечно же список с список с их именами.
На реализацию прототипа ушло некоторое время но результатом я остался доволен. К сожалению получить больше информации чем доступно в клиенте в разрезе данного функционала не получилось. Те же ассасины хоть и могут находится в непосредственной к нам близости, во время невидимости, но никак не фигурируют в данных которые мы получаем от сервера, что конечно было ожидаемо, но проверить стоило.
Следующим этапом планирую добавлять поддержку списков друзей и врагов и разобраться с границами чанков.
С удовольствием отвечу на любые вопросы и приму заявки на реализацию нового функционала
Обновление:
* Нейтральные игроки теперь выделены желтым цветом
* Добавлена базовая поддержка друзей и врагов (зеленые и красные точки соответственно)
* Окно программы теперь можно сделать прозрачным по желанию
* Добавлено отображение NPC на радаре (мелкие бежевые точки)
Границы чанка (видимой области) можно оценить на скриншоте, фактически она покрывает примерно 80% ГИ. Все что находится за границами чанка для клиента не существует и получить эти данные от сервера можно только при перемещении. Планирую добавить отображение границ что бы можно было оценить когда "появятся" новые игроки на радаре и в клиенте.
Список того что хотелось бы реализовать в данной программе:
* Определение игроков друг/враг (готово)
* Управление KoS листами
* Автопот
* Автоассист/Автотаргет
* Автоматическое применение имунок в зависимости от ситуации
Вообще на жуке очень хорошее комьюнити разработчиков под ПВ, где много информации по клиенту разобрано, если ты там не зареган то можешь зарегаться думаю что то полезное да найдешь для своей разработки.
еще есть пару вопросов:
1. на каком языке кодишь?
2. на каком уровне получаешь данные об персонажах? пакетный или чтением памяти клиента.
я конечно попробую вангануть и думаю что:
1. сишарп
2. чтение памяти
а вообще если есть какие то вопросы по пв можешь обращаться, я немного этой игрой занимался так что если чем то смогу помочь то помогу.
Вообще на жуке очень хорошее комьюнити разработчиков под ПВ, где много информации по клиенту разобрано, если ты там не зареган то можешь зарегаться думаю что то полезное да найдешь для своей разработки.
На жуке зарегистрирован. Тему тоже завел, но хотелось бы оценить аудиторию и на rf-cheats
Цитата:
Сообщение от Тигрь
еще есть пару вопросов:
1. на каком языке кодишь?
2. на каком уровне получаешь данные об персонажах? пакетный или чтением памяти клиента.
1. C++
2. И память читаю и к обработчику пакетов подключился, так что и то и другое
Цитата:
Сообщение от Тигрь
а вообще если есть какие то вопросы по пв можешь обращаться, я немного этой игрой занимался так что если чем то смогу помочь то помогу.
Спасибо. Пока опыта и знаний хватает, но если что - буду иметь в виду
Обновление:
* Отображение Мобов и Лута на радаре
* Добавлена сортировка в таблице по имени игрока и гильдии
* Улучшено окно радара, добавлены границы чанков (маленькие квадратики) и общей зоны видимости (большой квадрат)
* Реализован зум, как по кнопкам +/- так и по колесику мыши