Ru-MaNGOS

Вернуться   Ru-MaNGOS > Ядро > Опкоды, Формулы, Клиент

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

Опкоды, Формулы, Клиент Разбор и изучение взаимодействия клиента с сервером

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.01.2011, 20:28   #1
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию Взаимодействие клиента и внешних программ

Я тут озадачился одной темой - придумать способ взаимодействия клиента ВоВ с внешними приложениями. Для передачи данных от клиента к приложению идея была такова: создаем мини адон, который формирует строку с некоторыми интересующими нас данными. В начало строки добавляется сгенерированный GUID или любая другая уникальная последовательность символов. Приложение ищет в памяти ВоВ наш GUID, запоминает адрес и читает периодически строку с данными.

Однако на практике я обломался
Тестовое приложение успешно нашло гуид и первоначальное значение строки. Дальнейшее чтение из памяти по этому же адресу все так же выдавало эту же строчку, хотя в адоне строка изменялась. А через несколько секунд в этом месте оказались другие данные.

Как выяснилось после модификации строки, lua интерпретатор не перезаписывает ее по тому же адресу, а плодит копии. Видимо для скорости новая строка создается по новому адресу, а сборщик мусора подчищает все хвосты.

В связи с этим вопрос, существует ли способ как-то получить значения переменных адона из внешнего приложения

З.Ы. и еще, кто нибудь знает почему в wow в клавиатурный хук нажатия всех кнопок приходят дважды ? В другое приложение (проверял на notepad.exe) все ок, на нажатие одной клавиши приходит два события - keydown и keyup, а в вов все события приходят парами с абсолютно одинаковыми флагами.
Йоха вне форума   Ответить с цитированием
Старый 25.01.2011, 21:05   #2
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

«Я не страдаю извращениями, я ими наслаждаюсь.»

В клиенте есть функция по абсолютному адресу 0079E920, возвращающая значение переменной. Я использовал её.
LordJZ вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
пакеты от клиента к серверу acteros Опкоды, Формулы, Клиент 34 24.07.2014 09:15
[need инструкция] Автообновление клиента Dragon Установка MaNGOS 3 03.07.2010 19:01
вылет клиента astlan Корзина 1 28.04.2010 15:04
Ошибка клиента #134 pdx15 Флудильня 9 22.04.2010 09:04
Настройки клиента ВоВ tempura Tools 6 25.03.2010 01:44


Текущее время: 08:09. Часовой пояс GMT +3.


ru-mangos.ru - Русское сообщество MaNGOS
Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума Ru-MaNGOS будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot