Вы находитесь на странице: 1из 8

RENDEREDGE 17 [RenderEdge] Memory Hack ENAleksey, DracoL1ch, karaulov

ГОД » опубликован

Основная версия | Widescreen Fix | Экспериментальная версия

Актуальная версия v1.0.5a

Описание
Теперь можно редактировать стандартный интерфейс Варкрафта
Статус: Активен
без необходимости внедрять сторонние библиотеки.
Лидер: ENAleksey
Требования:
Главная страница
WarCraft III patch 1.26a;
Комментарии
Экспериментальная версия PJass.
проекта
Участники Код
Memory Hack
Ресурсы

» Typecast
» MemoryHack
 » FpCall
» Utils

ПОХОЖИЕ ПРОЕКТЫ Systems

RРG Engine » Interface


» FileSystem
» RenderEdge

Demo

» GUI
» Camera

Проекты использующие RenderEdge


Edemium | Show Your Skill | Nightmare in Kingspot

Nightmare in Kingspot
Edemium
Show Your Skill

Благодарности
DracoL1ch;
Karaulov;
leandrotp.

Warcraft, memoryhack, renderedge, war3 Скачать - 60 КБ


279

Поделиться Просмотров: 13 059

Все комментарии ← 1 2 3 4 →

» Лучшие комментарии

quq_CCCP #151 - 1 год назад 0


Кет, ты бы и не узнал.

pro100master #152 - 1 год назад 0

Я так понимаю можно выполнить библиотеку функцию через std_call1 и другие


аргументы если ранее зарегистрирован

set адрес память функция = GetModuleProcAddress(RENDEREDGE_DLL, "название функции")

не будет ли барахлить если я возму библиотеку у основного вызов функции??

ENAleksey #153 - 1 год назад 0

pro100master:
не будет ли барахлить если я возму библиотеку у основного вызов функции??

Вы хотите получать адреса функций из основной версии RenderEdge при помощи


GetModuleProcAddress? Так сделать не получится, так как в основной версии
используется совершенно другой способ вызова функций.

NazarPunk #154 - 11 месяцев назад 0

С помощью него можно свои кнопки создавать?

ENAleksey #155 - 11 месяцев назад 0

NazarPunk, нет, нельзя.

ENAleksey #156 - 10 месяцев назад (отредактировано ENAleksey) 4

Я только что нашёл способ редактирования подсказок! Функция устанавливает


координаты правого нижнего угла, позже я это исправлю.

function EditTooltip takes integer anchor, real offsetX, real offsetY returns nothing
local integer pTooltipFrame = fast_call1(address_GameBase + 0x337240, 0)
local integer pRootFrame = GetRootFrame()

call SetFramePoint(pTooltipFrame, ANCHOR_BOTTOMRIGHT, pRootFrame, anchor, offsetX, -offs


etY)
endfunction

call EditTooltip(ANCHOR_RIGHT, FromPixelX(-100), FromPixelY(160))

прикреплены файлы

Vitalik8 #157 - 10 месяцев назад 0

а можешь все фунции из мемхака в RenderCraft мемхак пихнуть?

FTFire #158 - 10 месяцев назад 0

ENAleksey, Всё заработало странно...Ты что-то поменял?


ENAleksey, Можешь сделать пример поворота камеры мышкой и чтобы персонаж
тоже поворачивался одновременно?Как в РПГ.

ENAleksey #159 - 9 месяцев назад (отредактировано ENAleksey) 0

Обновление v1.0.5a
Добавлена функция редактирования подсказок: EditTooltip;
Обновлена библиотека FpCall: добавлены функции fast_call, std_call и this_call;
Удалены функции типа EditMinimapPixel, вместо этого используйте
EditMinimap(..., FromPixelX(x), FromPixelY(y), ...).

прикреплены файлы

FTFire #160 - 9 месяцев назад 0

ENAleksey, Можешь сделать чтобы камера работала в мультиплеере?

ENAleksey #161 - 9 месяцев назад 0

FTFire:
Всё заработало странно...Ты что-то поменял?

Нет, ничего не менял.


FTFire:
Можешь сделать пример поворота камеры мышкой и чтобы персонаж тоже
поворачивался одновременно?

Берёшь систему управления камерой, которая в карте, добавляешь в триггер


OnMouseMove функцию SetUnitFacing(..., yaw).
FTFire:
Можешь сделать чтобы камера работала в мультиплеере?

Нет, не могу.

pro100master #162 - 9 месяцев назад 0

ENAleksey, Очень хорошо, и еще добавь xgm.guru/p/wc3/damagedetect на свой


render memory, тогда и появится полноценный мемхак оптимальный

ENAleksey #163 - 9 месяцев назад 0

pro100master, нет, моя версия предназначена только для редактирования


интерфейса.

pro100master #164 - 9 месяцев назад 0

ENAleksey, там лишь переносить и адрес и все.. Чтобы люди не бегали между
мемхак и рендер

Jack-of-shadow #165 - 9 месяцев назад 0

GetMouseTerrainX() - Возвращает проекцию позиции курсора на ландшафт. Можно


ли наоборот по позиции на ландшафте получить на экранные координаты?

Ige #166 - 4 месяца назад 7

что-то давненько не было обновлений :(


вот нашел адреса очков здоровья и маны (те что под портретом персонажа):
function GetHealthPointsFrame takes nothing returns integer
return Memory[ReadGameUIStruct(FRAME_Portrait)/4 + 144]
endfunction

function GetManaPointsFrame takes nothing returns integer


return Memory[ReadGameUIStruct(FRAME_Portrait)/4 + 145]
endfunction

и простой пример кода, меняющий показатели местами:

local integer pHealthPointsFrame = GetHealthPointsFrame()


local integer pManaPointsFrame = GetManaPointsFrame()
local integer pManaPointsParent = GetFramePointParent(pManaPointsFrame, ANCHOR_TOPLEF
T)
local integer pHealthPointsParent = GetFramePointParent(pHealthPointsFrame, ANCHOR_TOPL
EFT)
local real pHealthPointsX = GetFramePointX(pHealthPointsFrame, ANCHOR_TOPLEFT)
local real pHealthPointsY = GetFramePointY(pHealthPointsFrame, ANCHOR_TOPLEFT)
local real pManaPointsX = GetFramePointX(pManaPointsFrame, ANCHOR_TOPLEFT)
local real pManaPointsY = GetFramePointY(pManaPointsFrame, ANCHOR_TOPLEFT)

call SetFramePoint(pHealthPointsFrame, ANCHOR_TOPLEFT, pHealthPointsParent, ANCHOR_BO


TTOMLEFT, pHealthPointsX, pManaPointsY)
call SetFramePoint(pManaPointsFrame, ANCHOR_TOPLEFT, pManaPointsParent, ANCHOR_BOTT
OMLEFT, pManaPointsX, pHealthPointsY)

результат

Venommm #167 - 4 месяца назад 0

прикреплены файлы
Можно ли как-то скрывать\перемещать за камеру интерфейс\часть интерфейса
уже во время игры?

pro100master #168 - 4 месяца назад 4

Venommm, можно укажи отрицательный от текушего размера блока в обратный


и он уйдет

Ige #169 - 3 месяца назад (отредактировано Ige) 6

дополнение к прошлому сообщению и несколько новых ф-ций:

// *ВАЖНО* перед манипулированием фреймом здоровья/маны нужно обязательно создать


эти фреймы, просто триггерно выделив 1 раз любую боевую единицу и обязательно всем ж
ивым игрокам.
function GetHealthPointsFrame takes nothing returns integer // возвращает адрес фрейма оч
ков здоровья
function GetManaPointsFrame takes nothing returns integer // возвращает адрес фрейма очк
ов маны
function GetBuffBarButton takes integer id returns integer // возвращает адрес фрейма закл
инания (баффа); id принимает значения 0..7

// готовые ф-ции
function EditHealthPointsFrame takes integer anchor, real offsetX, real offsetY returns nothing
function EditManaPointsFrame takes integer anchor, real offsetX, real offsetY returns nothing
function EditBuffBarButton takes integer buttonId, integer anchor, real offsetX, real offsetY, real
width, real height returns nothing
» сам код

пример

local real healthPointsX = FromPixelX(5)


local real healthPointsY = FromPixelY(-175)
local real manaPointsX = FromPixelX(5)
local real manaPointsY = FromPixelY(-195)

local real buffBarButtonStartX = FromPixelX(160)


local real buffBarButtonStartY = FromPixelX(240)
local real buffBarButtonDeltaX = FromPixelX(-40)

call EditHealthPointsFrame(ANCHOR_TOPLEFT, healthPointsX, healthPointsY)


call EditManaPointsFrame(ANCHOR_TOPLEFT, manaPointsX, manaPointsY)

call EditBuffBarButton(0, ANCHOR_BOTTOM, buffBarButtonStartX + buffBarButtonDeltaX*0, b


uffBarButtonStartY, -1, -1) //дабы избежать изменения ширины/высоты, нужно указать отр
ицательное значение
call EditBuffBarButton(1, ANCHOR_BOTTOM, buffBarButtonStartX + buffBarButtonDeltaX*1, b
uffBarButtonStartY, -1, -1)
call EditBuffBarButton(2, ANCHOR_BOTTOM, buffBarButtonStartX + buffBarButtonDeltaX*2, b
uffBarButtonStartY, -1, -1)
call EditBuffBarButton(3, ANCHOR_BOTTOM, buffBarButtonStartX + buffBarButtonDeltaX*3, b
uffBarButtonStartY, -1, -1)
call EditBuffBarButton(4, ANCHOR_BOTTOM, buffBarButtonStartX + buffBarButtonDeltaX*4, b
uffBarButtonStartY, -1, -1)
call EditBuffBarButton(5, ANCHOR_BOTTOM, buffBarButtonStartX + buffBarButtonDeltaX*5, b
uffBarButtonStartY, -1, -1)
call EditBuffBarButton(6, ANCHOR_BOTTOM, buffBarButtonStartX + buffBarButtonDeltaX*6, b
uffBarButtonStartY, -1, -1)
call EditBuffBarButton(7, ANCHOR_BOTTOM, buffBarButtonStartX + buffBarButtonDeltaX*0, b
uffBarButtonStartY, -1, -1)

прикреплены файлы

ClotPh #170 - 3 месяца назад 0

Ige, есть карта, где все функциями настроено так, как на скрине?

Ige #171 - 3 месяца назад 4

ClotPh, карта из шапки + код из сообщения, вроде бы ничего сложного :)


Держи
прикреплены файлы

Vitalik8 #172 - 3 месяца назад 0

Ige, если зайти за другого игрока игра вылетает


А как можна узнать какой игрок нажал на кнопку?

Jack-of-shadow #173 - 3 месяца назад 0

Vitalik8:
Ige, если зайти за другого игрока игра вылетает
А как можна узнать какой игрок нажал на кнопку?
GetLocalPlayer() но не поможет в большинстве случаев, так как нужна
синхронизация, если идёт взаимодействие с объектами.

FTFire #174 - 3 месяца назад 0

Ige, Слушай можешь сделать от слежку WASD клавиш и/или левой кнопки
мышки? Скажем как в обычном РПГ нажимаешь ЛКМ и воспроизводится атака.
Jack-of-shadow #175 - 3 месяца назад (отредактировано Jack-of-shadow) 0

ENAleksey:
Такой вопрос, у меня два ноута, с одинаковыми версиями вара, точнее второй
ноут по локалке подключен к харду другого. (Извращение конечно..)Так вот обыно
так все пашет, даже мультиплейер можно играть. Но когда пытаюсь на втором
грузить карту (пытаюсь загрузить сингл) со встроенным RenderEdgeMini, вар
вылетает с ошибкой, что неудалось открыть RenderEdgeMini.dll. Так вот, это
последствия моего изврата с локалкой или у ноута должен быть подключен
доступ локальным файлам?, кажется для Preload Exploit такая тема нужна была.

Отредактировал реестр "Allow Local Files", не помогло.

ENAleksey #176 - 3 месяца назад 0

Jack-of-shadow , RenderEdgeMini.dll лежит в папке с варом на обоих компах? Какие


пути к папкам на разных компах, соответствуют ли они путям в реестре?

Jack-of-shadow #177 - 3 месяца назад (отредактировано Jack-of-shadow) 0

ENAleksey:
RenderEdgeMini.dll лежит в карте.

Или этого все таки не достаточно?, я почему думал то что библиотеки должны
работать, если дллка встроена в карту.

ENAleksey #178 - 3 месяца назад (отредактировано ENAleksey) 0

Jack-of-shadow , с помощью функции ExportFileFromMpq происходит извлечение


файла из карты в папку с варкрафтом, и только после этого данный файл
загружается в память процесса (LoadLibrary).

Jack-of-shadow #179 - 3 месяца назад (отредактировано Jack-of-shadow) 0

ENAleksey:
похоже вылетало, изза разрешения экрана, нетбука. Попробовал на других
компах, все норм, только вылетает, при завершении (выходе в меню, или из игры).

Naadir #180 - 2 месяца назад (отредактировано Naadir) 0

Каким образом в демо-версии рендера осуществляется передача полосок хп и мп


на экран? Выбирается случайный персонаж для каждого игрока? По умолчанию
показываются хп и мп Чародея Крови, даже если я выбираю другогоперсонажа.
Если убрать с карты ЧК, выбирается Паладин и т.п.

Начал искать по коду, но по какой-то причине не нашёл никаких отсылок на


выбор.

Это вообще связано?

Ага, стоп. Он по айди обращается?

Хм-м-м-м...

А это айди юнита или игрока..? Тэк-с. Это айди кнопки. Не могу понять, что такое
buttonId. Как она находится, где? Если Id = 0 -- это первая кнопка..? Что?

Всё, я понял! Это Id юнита. Эврика.


А можно его как-то отловить при получении приказа?

Насколько я понял, у Ige в наработке с баффами они показываются для


выделенного персонажа. Но я не понимаю, в чём отличие этой функции от
функции со здоровьем. При этом функция для здоровья показывает по айди...
ВТФ.
Я вообще перестал понимать, хм.
ENAleksey #181 - 2 месяца назад (отредактировано ENAleksey) 2

Naadir, что-то у меня не отображалось, что появился новый комментарий в теме.


Функции EditHeroBarHealthBar и EditHeroBarManaBar редактируют полоски
здоровья и маны на панели героев для иконки с номером buttonId:

» Скриншот
прикреплены файлы

Naadir #182 - 2 месяца назад 0

ENAleksey, а! Ёлки! Спасибо большое. :) Пойду дальше изучать.

Atesla #183 - 2 месяца назад 0

Был уже подобный вопрос, но я все же осмелюсь задать его еще раз. Возможно ли
изменить полоску перезарядки способностей? При изменении размера обычных
кнопок "фрейм перезарядки" остается неизменным.

Naadir #184 - 2 месяца назад 0

Atesla, просто импортируешь картинку с нужным тебе размером в игровой


интерфейс.

ENAleksey #185 - 2 месяца назад 0

Atesla, иконка перезарядки способности - это mdx модель, поэтому нельзя


просто так взять и изменить её ширину или высоту с помощью соответствующих
функций. Есть два способа это сделать: отредактировать модель в mdlvis, либо
изменить матрицу проекции при её рендеринге.
Naadir, можно сделать и так, но качество текстуры будет хуже, так как она
растянется вместе с иконкой перезарядки.

Atesla #186 - 2 месяца назад 0

Спасибо за ответ, господа, немного копнул знаний.)

Naadir #187 - 2 месяца назад 0

ENAleksey, текстура перезарядка не растягивалась же раньше. Ты поправил?

ScopteRectuS #188 - 2 месяца назад (отредактировано ScopteRectuS) 0

Сори за нубский вопрос, только начал разбираться с RenderEdge.

Как задавать координаты, например для функции EditUpperButtonBarButton( ),


задаю свои координаты, a кнопка улетает не пойму куда. ANCHOR_TOPRIGHT,
ANCHOR_BOTTOM, ANCHOR_RIGHT и т.д. - это точки, откуда отсчитываются
координаты?

В прилагаемой карте есть функции FromPixelX( ), FromPixelY( )..., которые


используются в функции EditStandardInterface( ). Правильно ли я понял, что эти
функции локальные и у каждого игрока кнопки будут настроены относительно их
разрешений экрана?

Также карта критует во время загрузки, если в коде есть ! inject main.

UPD: понял, это не координаты, а проценты, как у мультибоарда.

ENAleksey #189 - 2 месяца назад (отредактировано ENAleksey) 2

ScopteRectuS, аргументы, задающие координаты и размер во всех функциях,


принимают значения от 0.0 до 1.0 (да, можно сказать, что это проценты от
размера экрана).

Параметры ANCHOR_TOPRIGHT и другие задают точку отсчёта координат


относительно экрана.

Функции FromPixelX и FromPixelY не работают в мультиплеере, это можно


исправить, изменив способ получения разрешения экрана (вместо использования
сторонней библиотеки, получать ширину и высоту экрана из game.dll, возможно,
когда-нибудь сделаю это), либо задав его самостоятельно (например, дать
пользователю возможность выбора разрешения его монитора с помощью
диалогового окна).
А, нет, всё верно, я просто неправильно понял вопрос.

ScopteRectuS:
Также карта критует во время загрузки, если в коде есть ! inject main.

По этой проблеме ничего ответить не могу.

← 1 2 3 4 →

© XGM v8.6.1806 (2018-09-27)


Разработка игр  Gamedev  Создание игр  Программирование  Unity 3D - Вопросы
О нас
Помощь
Обратная связь