Версия v1.0.5a
Дополнительные функции для редактирования стандартного интерфейса Варкрафта
212 47K
4
function GetMouseX takes nothing returns integer
function GetMouseY takes nothing returns integer
это для чего? отлавливает положение курсора? Просто уже чет такое выкладывали, но там время синхронизации довольно большое и неиграбельно в мультиплеере.
6
Прошу прощения перепутал, там обращение к библиотеке идёт)
28
Так а дополнительный интерфейс уже научились создавать? Например сделать закупку итемов как в доте, чисто на мемхаке?
6
А как у вас получается собственные типы объявлять? У меня WE от этого начинает жаловаться, что не удалось инициализировать глобальные переменные.
32
Я правильно понял, вы опять пишите и читаете код процесса из игры?)
Парни, я когда то 100 лет назад (на самом деле лет 5) описывал уязвимость, которая позволяла из jass кода писать в память процесса, из-за чего вышел патч, который убрал return bug как таковой. Там все было просто - с помощью return bug можно было с ним работать как с int и задать любое другое смещение, не кратное 4. Потом подбирались специальные инструкции псевдокода jass, которые как-то устанавливали метки массивов, и позволяли писать в память процесса.
Я еще тогда написал маленькую утилу, которая патчила game.dll, а именно то место, где jass интерпритатор обрабатывал тип code - с помощью сплайсинга и одной логической операции просто устанавливал в 0 последние биты аддресса, в результате чего варианты типа code + 2 не прокатывали. Жалко, что до Близов мы тогда это так и не донесли ;)
Тут я, просмотрев код мельком вижу изменение фактического значение переменной типа code за счет какой-то работы с пространством имен локальных и глобальных переменных, нет?
13

Обновление v1.0.1a

  • Добавлено внедрение динамической библиотеки RenderEdge_mini.dll (извлекается из карты в папку с варкрафтом);
  • Widescreen Fix;
  • Добавлена функция для редактирования миникарты.
Функции из RenderEdge_mini.dll:
function GetWindowX takes nothing returns integer
function GetWindowY takes nothing returns integer
function GetWindowWidth takes nothing returns integer
function GetWindowHeight takes nothing returns integer
function GetMouseX takes nothing returns integer
function GetMouseY takes nothing returns integer
А вот некоторые фреймы, которые я нашёл:
ReadGameUIArray(239) + 180 // Black Borders
ReadGameUIArray(240) + 180 // Minimap
ReadGameUIArray(241)       // Unit InfoPanel
ReadGameUIArray(243)       // ResourceBarFrame
ReadGameUIArray(244)       // UpperButtonBarFrame
ReadGameUIArray(247)       // ?
ReadGameUIArray(248)       // IdlePeon
ReadGameUIArray(253) + 180 // Portrait
ReadGameUIArray(255) + 180 // ?
ReadGameUIArray(251)       // WorldFrameChatMessage

ReadGameUIArray(258)       // Minimap button 1
ReadGameUIArray(259)       // Minimap button 2
ReadGameUIArray(260)       // Minimap button 3
ReadGameUIArray(261)       // Minimap button 4
ReadGameUIArray(262)       // Minimap button 5
Загруженные файлы
13
FTFire, кода нет, как я уже писал, нужно искать первый аргумент функции SetFramePoint либо в IDA Pro, либо методом перебора значений в функции ReadGameUIArray.