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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
32
7 лет назад
0
darkowlom, Легче сказать чем сделать, работа со сторонними либами и вирусописание это уже куда сложнее копипаста, не говоря что то просто не шарит в c++ и так далее.
0
24
7 лет назад
0
quq_CCCP, я конкретно это реализовывал - сложного ничего нет. Да и виросуописание тут ни причем, не путай термины
4
16
7 лет назад
4
не нужно знать асм или си, чтобы искать данные, достаточно иметь мозг, заточенный под программирвание на хоть каком-то языке, а там по аналогии
0
22
7 лет назад
0
Можно узнать? Что не так с этой функцией SetUnitModelUF?
0
16
7 лет назад
0
всё с ней так, менять модель надо до спавна, или найти функцию перерисовки. я второе не осилил
0
24
7 лет назад
Отредактирован darkowlom
0
DracoL1ch, не натыкался на функцию, которая отвечает за положение портрета на интерфейсе? Край не хватает для широкофрматного фикса
0
16
7 лет назад
0
не интересуюсь подобным
0
22
7 лет назад
0
DracoL1ch:
всё с ней так, менять модель надо до спавна, или найти функцию перерисовки. я второе не осилил
Спасибо.
0
27
7 лет назад
0
quq_CCCP, А вот функции которые задают длительность баффа.
    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 сек.
После 20-минутного копипаста, сохранил карту. Запустил карту, но как только произошел тот момент, когда должен код работать, у меня фаталит =((. Пример, божественный щит
Загруженные файлы
1
16
7 лет назад
1
во всех местах Read* проверяй. что возвращается, в первую очередь. адрес должен быть >0 строго.
и вроде бы common knowledge что spell-effect срабатывает до эффекта, и бафа там еще нет. поэтому у тебя Read возвращает 0, а ты ничего даже не проверяешь, вернуло ли оно корректный адрес, а сразу идешь писать что-то в память
0
27
7 лет назад
Отредактирован MpW
0
DracoL1ch, я просто не шарю в этом =(( кода много просто. это надо проверять больше 0, а чем так варику не нравятся нули. И еще вопрос что такое вот 0x90, умножают на нули
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.