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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
21
прям заставляете самостоятельно хакером становиться =)
21
/////////
Чет все не могу понять, казалось, что это давно было, но нихрена
Патч 1.29 пока еще не поставлю, хочу именно через мх
Есть урон, нужно именно увеличить/уменьшить/аннулировать его, хоть на значение, хоть в процентах
Через инвул, отхил, еще один дамаг я могу, но это все "не православно" и каждый способ имеет некоторые недостатки, и не применим будет т. к. речь о идее героя, который постоянно будет переназначать величины получаемого и наносимого урона остальным героям на абсолютно любой получаемый ими урон, так что там ну никак не катит постоянно инвул давать и отхил делать с таймерами и доп. дамагами и т. п.
как через мх именно действительно увеличить/уменьшить/аннулировать значение урона
я вижу, что функции типа есть
но че они делают и как ими пользоваться - вот именно в их случае НИХРЕНА не понятно!
30
ну никак не катит постоянно инвул давать и отхил делать с таймерами
С чего бы? Сделай универсальный метод и применяй, благо событие получения урона любым юнитом легко реализуемо.

Китайцы подрубили ЛУА и ничего через варик больше не делают
Можно поподробнее на этот счёт?
21
Clamp, ну даже если на производительность критично не повлияет, все равно это не оч правильно, там будет не один усиленный урон, а один большой и еще один маленький, и это все надо везде учитывать
В идеале должно быть все-таки, чтобы именно урон менялся
30
Урон можно отменять вообще всегда, после чего наносить нужное количество.
32
ClotPh, Там есть пару детектов урона на мемхаке, но первый ресурсоемкий, это присоска на глобальное событие виджит получил урон внутри движка и работа со всеми параметрами пока не сработали триггерны на урон, второй вариант - попроще но там только чтение всех параметро а не запись ну и пошустрее будет.
16
function SetGetEventDamage takes real r returns nothing
	local integer a=CallThisCallWith1Args(GameDLL+0x3C1D40,0)
	if a!=0 then
		set a=CallThisCallWith1Args(GameDLL+0x3C1D60,0)
		if a!=0 then
			call WMem(a+0x30,mR2I(r))
		endif
	endif
endfunction
21
DracoL1ch, огромное спасибо, если что - отпишусь, но вроде все понятно
32
Clamp:
ну никак не катит постоянно инвул давать и отхил делать с таймерами
С чего бы? Сделай универсальный метод и применяй, благо событие получения урона любым юнитом легко реализуемо.

Китайцы подрубили ЛУА и ничего через варик больше не делают
Можно поподробнее на этот счёт?
Ну есть китайская версия мемхака, она работает на всех патчей в отличии от нашей, но там сам хак запускается в потоке ИИ и подгружает дллку, все остальные функции мемхака реализованы через пару АИ нативок котрые берут строку, в строку пишется имя функции, через глобалку или другие аркументы передаются параметры, дллка перехватывает некоторые функции и делает некоторые действия, в самом китайском редакторе все это дело зашито так как в jngp v или c JASS, т.е выглядит как нативка, а потом интерпритируется при сохранении..
32
функции для работы с сайленсом, позволяют задать разные типы сайленса (от обычного безмолвия, то паузы, когда способности скрываются с карты комманд)

    set pAddSilenceOnAbility=GameDLL+0x052B60 // оффсет для 1.26
    set pRemoveSilenceFromAbility=GameDLL+0x052BC0 // оффсет для 1.26

	set pAddSilenceOnAbility = GameDLL + 0x3E9FA0 // оффсет для 1.27
    set pRemoveSilenceFromAbility = GameDLL + 0x3EE3C0 // оффсет для 1.27


    function AddSilenceToAbility takes integer a returns nothing
        if a > 0 then
            call CallThisCallWith3Args( pAddSilenceOnAbility, a, 0, 1 )
 //0 for hide, 1 for silence 
        endif
    endfunction
    
    function RemoveSilenceFromAbility takes integer a returns nothing
        if a > 0 then
            call CallThisCallWith3Args( pRemoveSilenceFromAbility, a, 0, 1 )
        endif
    endfunction
 
    function AddSilenceHideToAbility takes integer a returns nothing
        if a > 0 then
            call CallThisCallWith3Args( pAddSilenceOnAbility, a, 1, 1 )
        endif
    endfunction
 
    function RemoveSilenceHideFromAbility takes integer a returns nothing
        if a > 0 then
            call CallThisCallWith3Args( pRemoveSilenceFromAbility, a, 1, 1 )
        endif
    endfunction
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.