Добавлен , опубликован
Собственно тот знаменитый хак на память который нам радостно предоставил DracoL1ch, который позволяет нам больше не морочится с системами отлова урона, или вовсе узнать координаты курсора без стороннего по.
Для сохранения требуется: экспериментальная версия pjass.exe
Причём не все подходят, меньше всего проблем было с этой версией
В хаке присутствует только 1 пример на изменение белой атаки у героя, остальные готовые функции можно найти на:
Хайве
Гитхабе
Просто копируем саму функцию, все остальное для её работы есть в наработке и сохраняем.
Так же на хайве есть инструкция по созданию собственных функций для чтения\изменения данных в памяти игры.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
13
Bornikkeny, посмотри, как я делал:
ENAleksey:
awesomesk1ll, да, здесь нет ничего сложного, для начала экспортируем dll из карты, а потом загружаем её с помощью LoadLibraryA. Сейчас скину карту с загрузкой моей библиотеки, в которой реализован Widescreen Fix.

Скачать (поддерживаются версии 1.26a и 1.27а).
Правда, я сделал инициализацию библиотеки с помощью вызова экспортируемой функции из dll, чтобы передать в неё версию варкрафта, но это можно делать и внутри библиотеки: вызывать только LoadLibraryA, а всё остальное делать в теле функции DllMain.
22
ENAleksey:
Bornikkeny, посмотри, как я делал:
Ой-ой-ёшеньки ой-ой, ебаный в рот как сложно-то. Наверное весь сегодняшний вечер убью что бы вникнуть.
13
Bornikkeny, да, вроде, не особо сложно, нужно всего-лишь одну функцию написать:
function InjectDLL takes string name returns nothing
    if FileExists(name) then
        if GetModuleHandle(name) == 0 then
            call LoadLibrary(name)
        endif
    else
        if (not ExportFileFromMpq(name, name)) then
            call BJDebugMsg("|c00ff0000Error! ExportFileFromMpq:|r " + name)
        endif
        if (LoadLibrary(name) == 0) then
            call BJDebugMsg("|c00ff0000Error! LoadLibrary:|r " + name)
        endif
    endif
endfunction
22
А ничего что библиотека имеет расширение .mix, а не .dll?
13
Bornikkeny, разницы нет, но лучше переименовать mix в dll, чтобы после экспорта в папку с варкрафтом mix не загружался сам.
22
Батюшки, хочу использовать тот код который публикован на хайве, но как его использовать - понятия не имею. То в тестовой карте XGM - небольшой отрывок, я так понял.
Как быть?
21
Bornikkeny,
попробуй прямо карту взять из 128 сообщения здесь (что-то прямая ссылка не действует)
и пересохранить.
Если всё норм запускается, открывается и действует - то просто копипасти потом нужные функции с гитхаба в кастом код и юзай. Для импорта мемхака в карты - целиком кастом код и либы.
Ток это "старый" мемхак, уже "новый" есть.
22
ClotPh:
Bornikkeny,
попробуй прямо карту взять из 128 сообщения здесь (что-то прямая ссылка не действует)
и пересохранить.
Если всё норм запускается, открывается и действует - то просто копипасти потом нужные функции с гитхаба в кастом код и юзай. Для импорта мемхака в карты - целиком кастом код и либы.
Ток это "старый" мемхак, уже "новый" есть.
Да блин, я работал на старом (новом?) МХ. И все вроде бы хорошо, я смог запускать .dll либы и всё такое, но когда появились другие потребности, в виде функций по замене файла модели юнита, я начал вставлять нужные функции из хайва.
Фишка в том, что вставляя одну функцию, нужно вставить еще 20 функций которые использует нужная функция, это не считая производных переменных, констант. А их еще надо инициализировать в Init24, Init26, Init27 все дела. Как быть?
21
Перезадаю вопрос: уже есть function GetMouseXOfPlayer takes player returns real?
Очень пригодилась бы.
16
нет, никакого сетевого кода у меня не планируется, а это именно сетевой уровень
32
Так я чую надо перебирать мемхак и все обновленные функции тащить сюда...
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.