ПолезностиИсключительно для полезных тем из других разделов. Темы тут не создаются!
Темы сюда перемещаются из других разделов, и на их старых местах остаются постоянные перенаправления.
Почитал про thiscall, в общих чертах понял проблему Дельфи.
Меня больше интересует инъект в работающий процесс.
Начал изучать С4 Engine.dll наткнулся на такую экспортируемую ф-цию:
UNetworkHandler::~UNetworkHandler -это деструктор.
Получить указатель на объект ты можешь только перехватив один из его методов, например конструктор, или найдя этот указатель в данных (неудобно, т.к. статический адрес)
UNetworkHandler::~UNetworkHandler -это деструктор.
Получить указатель на объект ты можешь только перехватив один из его методов, например конструктор, или найдя этот указатель в данных (неудобно, т.к. статический адрес)
xkor, там цветом раса показывается, а скрин в столице ДЕ поэтому там виден тольк 1 цвет для ДЕ, и цвет нпс, которых я еще не отфильтровал)
а перехваты там стоят на
возврат из FPlayerSceneNode::Render, для отрисовки
начало ALineagePlayerController::PlayerCalcView, для получения направления взгляда
начало обработчика CharInfoPacket (id=4), для получения id игрока и указателя на UNetworkHandler
тоже надо попробывать хукнуть сцену клиента. Пока хукаю директ-х подменяя d3dcreate в d3ddrive.dll и подсоввывая врапперы для вытекающих интерфейсов. Рисовать апи директа кодоемко и требует навыков но плюс тоже есть.
Директ один на всех а на dx10+ без поддржки 9 линейка имхо не скоро перейдет
Пытаюсь ходить персом вызывая функцию MoveBackwardToLocation(to,origin: TVector). В ответ получаю ответ сервера ActionFailed.
Через снифер видно, что клиент отсылает в пакете MoveBackwardToLocation третий параметр 0 или 1 (каким способом инициировано движение: 0 - клава, 1 - мышь).
При моем вызове функции MoveBackwardToLocation(to,origin: TVector) третьего параметра в пакете просто нет.
Хочу спросить, может кто нибудь уже сталкивался с такой проблемой при использовании апи клиента? И как ее можно обойти?
Добавлено через 4 часа 38 минут
отвечу на свой вопрос:
Клиент не использует функцию MoveBackwardToLocation. (проверяю на хрониках Грация+). Вместо нее используется функция MTL.
*ушел ковырят функцию MTL
Последний раз редактировалось maxilam, 05.06.2011 в 02:16.
Причина: Добавлено сообщение
Пытаюсь ходить персом вызывая функцию MoveBackwardToLocation(to,origin: TVector). В ответ получаю ответ сервера ActionFailed.
Через снифер видно, что клиент отсылает в пакете MoveBackwardToLocation третий параметр 0 или 1 (каким способом инициировано движение: 0 - клава, 1 - мышь).
При моем вызове функции MoveBackwardToLocation(to,origin: TVector) третьего параметра в пакете просто нет.
Хочу спросить, может кто нибудь уже сталкивался с такой проблемой при использовании апи клиента? И как ее можно обойти?
Добавлено через 4 часа 38 минут
отвечу на свой вопрос:
Клиент не использует функцию MoveBackwardToLocation. (проверяю на хрониках Грация+). Вместо нее используется функция MTL.
*ушел ковырят функцию MTL
как находишь текущие координаты перса? если не секрет канешна
как находишь текущие координаты перса? если не секрет канешна
Хук на функцию OnUserInfo - получаю ID, имя, начальные координаты и прочие данные своего чара. Обрабатываю только один раз, самый первый. А то потом приходят в нее левые чары )
Далее: хуки на OnMoveToLocation OnMoveToPawn OnTeleportToLocation OnMoveToActor (по мимо координат, в них приходит структура User с ID чара, по которому определяется какой именно чар совершил действие).
А именно текущие координаты в данный момент времени, для отрисовки карты, рассчитываю по формуле. Там правда нужна текущая скорость передвижения чара, но я ее не стал искать, просто взял за среднюю 130, а там уже положение чара корректируется функциями OnMoveTo...
Цитата:
Сообщение от Эдвадко
Че это не используется ?
Клинет шлет запрос чтоб идти - MoveBackwardToLocation
А сервер в ответ - мол вы пошли - MoveToLocation
Пакет с таким названием, да, шлется. Но в апи клиента есть еще функция с таким названием. Вот про нее я и говорил, что она не используется.
Последний раз редактировалось maxilam, 05.06.2011 в 18:50.