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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
11
16
7 лет назад
11
На хайве вшили функционал хака в редактор
1
21
7 лет назад
1
Круто, но что-то у меня опять все ошибки начинают с начала вылезать, которые были.

Пока сделан бэкап до своего JNGP + своей тест-карты с кастом кодом + 1 триггером, это уже не сложно импортировать, все там у меня уже точно норм работает и норм пересохраняется.
Но все равно +, т. к. склоняюсь к тому, что это на моей стороне наркомания.
1
21
7 лет назад
Отредактирован awesomesk1ll
1
Подгруз своих .dll из mpq карты уже сделали для чайников?
п.с. Что мертво - умереть не может.
1
29
7 лет назад
1
awesomesk1ll, ну смотри, функцию распаковки из mpq я видел, функцию загрузки dll я тоже видел, так что вперед)
1
13
7 лет назад
Отредактирован ENAleksey
1
awesomesk1ll, да, здесь нет ничего сложного, для начала экспортируем dll из карты, а потом загружаем её с помощью LoadLibraryA. Сейчас скину карту с загрузкой моей библиотеки, в которой реализован Widescreen Fix.

Скачать (поддерживаются версии 1.26a и 1.27а).
Правда, я сделал инициализацию библиотеки с помощью вызова экспортируемой функции из dll, чтобы передать в неё версию варкрафта, но это можно делать и внутри библиотеки: вызывать только LoadLibraryA, а всё остальное делать в теле функции DllMain.
Загруженные файлы
0
4
7 лет назад
0
Возможно ли с помощью хака сделать что-то типо Preloader'а?
0
32
7 лет назад
0
abidin:
Возможно ли с помощью хака сделать что-то типо Preloader'а?
Возможно и уже реализовано, создавай хоть тхт, хоть exe, хоть dll. Правда их сначала нужно написать... Но тем не менее создавать файлы можно, хотя можно было и раньше, правда не так удобно.
0
4
7 лет назад
0
quq_CCCP, можно уточнить твои контакты , чтобы отдельно поговорить на эту тему?
0
32
7 лет назад
0
abidin, Нет, я своими контактами не торгую!
Пиши лс.
2
4
7 лет назад
2
Мне не нравится организация связи на XGM.
1
32
7 лет назад
Отредактирован quq_CCCP
1
Функции для смены уровня баффов:
function GetBuffLevel takes integer pBuff returns integer 
    if pBuff < 1 then
        return 0
    endif
    return Memory[(pBuff+0xb0)/4] + 1
endfunction

function SetBuffLevel takes integer pBuff, integer level returns nothing
     if pBuff < 1 or level < 1 then
        return 
    endif
    set Memory[(pBuff+0xb0)/4] = level -1
endfunction
Меняет уровень баффа, влияет только на визуальный эффект баффа (уровень в описании баффа), уровень будет отображаться только у многоуровневых баффов.
Можно узнать уровень баффа, будет несомненно полезно для триггерных баффов, которые дают ауры.
А вот функци которые задают длительность баффа.
    local integer  pBuff = GetUnitAbility( u, 'B00A' ) + 0x90  

    call WriteRealMemory(ReadRealMemory(pBuff)+0x4,SetRealIntoMemory(текущее время + 15.00)) // задаёт длительность
    call WriteRealMemory(ReadRealMemory(pBuff)+0x8,SetRealIntoMemory(текущее время  + 10.408)) // Задает время после которого бафф начнёт мигать
Жаль что нормально выудить игровое время не получается, поэтому юзаем таймер который мы запускаем при старте карты на 99999999999.00 сек., и по нему мы будем узнавать текущее время, который кстати будет отставать относительно игрового примерно на 0.408 сек.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.