Добавлен , опубликован
Алгоритмы, Наработки и Способности
Способ реализации:
vJass
Тип:
Наработка
Версия Warcraft:
1.26 и ниже
Собственно тот знаменитый хак на память который нам радостно предоставил DracoL1ch, который позволяет нам больше не морочится с системами отлова урона, или вовсе узнать координаты курсора без стороннего по.
Для сохранения требуется: экспериментальная версия pjass.exe
Причём не все подходят, меньше всего проблем было с этой версией
В хаке присутствует только 1 пример на изменение белой атаки у героя, остальные готовые функции можно найти на:
Хайве
Гитхабе
Просто копируем саму функцию, все остальное для её работы есть в наработке и сохраняем.
Так же на хайве есть инструкция по созданию собственных функций для чтения\изменения данных в памяти игры.
0
6
7 лет назад
0
ClotPh, скорее всего только одна функция DisableOPLimit, но это не страшно можно делать как всегда делали.
0
16
7 лет назад
0
любая функция, использующая нативки, вынесенные вперед, модифицирует память безвозвратно. ну и естественно любые записи по адресам, которые вынесены в список предустановленных, тк это gamedll-адреса.
0
4
7 лет назад
Отредактирован abidin
0
После запуска функции из DLL вылетает ошибка
Загруженные файлы
0
16
7 лет назад
0
хз что ты там накодил, но явно возврат не сделан
0
4
7 лет назад
0
DracoL1ch:
хз что ты там накодил, но явно возврат не сделан
Да,там не было возврата.
Новая проблема:
Моя библиотека на моём компе запускается нормально,а на других фаталит.
Как нужно её собрать,чтобы не фаталило на компах других людей.
0
6
7 лет назад
0
function GetUnitBaseSpeedAttack takes unit u returns real
return cleanReal(indexToReal(Memory[GetUnitAttackAbility(u)/4 + 0x158/4 ]))
endfunction
function SetUnitBaseSpeedAttack takes unit u, real r returns nothing
set Memory[GetUnitAttackAbility(u)/4 + 0x158/4 ] = cleanInt(realToIndex(r))
endfunction
Есть такая функция ? Нашел почти все базовые функции, для модифицирование атаки, если кому надо, могу скинуть в личку.
0
5
7 лет назад
0
подскажите какая фунция запускает абилку в кд?
а все нашел:)
0
7
7 лет назад
0
Что-то до меня не очень доходит, как этот хак использовать, точнее импортировать в карту.
0
32
7 лет назад
0
ELB359:
Что-то до меня не очень доходит, как этот хак использовать, точнее импортировать в карту.
Прочитать внимательно инструкцию.
0
5
7 лет назад
0
фатал когда пытаюсь запустить спелл в кд,как лечится?
и можно ли запустить спелл в кд для конкретного юнита?
или я пытаюсь заюзать нету функцию?, StartAbilityCD
0
32
7 лет назад
Отредактирован quq_CCCP
0
А какой спел ты в кд запускаешь? Написано же юзать:
 function StartAbilityCooldown takes unit whichUnit, integer abilityId, real cd returns boolean
        local integer pAbility = 0
        if whichUnit == null or GetUnitAbilityLevel( whichUnit, abilityId  ) < 1 or cd == 0.00  then
            return false
        endif
        set pAbility = GetUnitAbility(whichUnit, abilityId)
        if pAbility < 1 then
            return false
        else
            if ReadRealMemory(pAbility+0x134)==-1 and ReadRealMemory(pAbility+0x138)==-1 then
                call WriteRealMemory(pAbility+0x134,0)
                call WriteRealMemory(pAbility+0x138,0)
            endif
            set Memory[pReserverdIntArg1 / 4] = SetRealIntoMemory(cd)
            call CallThisCallWith2Args( pStartAbilityCD, pAbility, pReserverdIntArg1 )
            return IsAbilityOnCooldown( pAbility )
        endif
        return false
    endfunction
Тут защита от неверных аргументов или баганых абликов, пассивки в кд не пускает...
0
5
7 лет назад
0
в данном случае скачок,ну пассивки ясное дело.Просто делаю свою систему блок заклинания,принцип работы как у линкен сфер в доте,только по шансам а не по времени
сразу не заметил эту функцию,спасибо
2
32
7 лет назад
2
Что мешает вешать дефолт руну спелл нигейшина, отследить срабатывания руны негейшина можно по урону в 0.00 ед и наличию баффа нигейшина, а потом запустить таймер на 0.00 сек, если баффа по истечению таймера не будет - спеллнигейшин сработал (блокнул некий спелл).
0
5
7 лет назад
Отредактирован l_Avenger_l
0
попробую, но я сперва возился со способностью, со временем когда в юнита одновременно кастуют несколько юнитов включая стан замедление, проклятие и тд. но этот юнит не выполнял приказы, т.е. такой же баг как с морфом
с руной думал не парится, потому что думал такой же портак будет, поэтому решил через мемхак
порядок события ведь такой:
Юнит применяет способность
У цели есть способность или же определенные предметы (в условии просматривается наличие предметов у этого юнита и просчет шансов исходя из наличия предметов в инве)
затем я добавлял цели способность нейтрализации и удалял по событию, когда наша цель применяет эту самую способность нейтрализации
0
5
7 лет назад
0
Всем привет еще раз, хотел бы узнать. Есть ли возможность отловить событие получение урона дикорациями. И как спрятать хпбар юнита используя мемхак?
Затея, отловить событие когда декорация получает урон, событие такого не нашел, решил делать через дамика. Т.е. катапульта стреляет по местности и наносит урон декорациям, решил поставить дамиков возле этих декораций и отлавливать полученный урон от катапульты.
1
32
7 лет назад
1
Этого не было реализовано близзардами и придется пилить свою ддлку.
А хп бар юнита скрывается с помощью 2 флагов записанных в структурую юнита:
адресс:5с, значения : 0x8000000 и 0x10000
Функция call SetUnitFlags_2( targ, 0x8000000 ) дает эффект похожий на москитов, юнита совсем низя выделить, низя кастануть таргет спелл, но его будут бить автоатакой враги.
2
24
7 лет назад
2
спрятать хпбар юнита
Отрицательный размер выборки
1
16
7 лет назад
1
самый элементарный способ прятать хп - круг выделения = -5
все остальные, известные мне, включают в себя неуязвимость
0
21
7 лет назад
0
Мб невнимательно изучены функции, но, ятп, отлова стоимости предмета в золоте нет?
Пока только БД и/или прочность в РО ставить равной золотостоимости?
Хак, конечно, и без этого классный и полезный, но, ятп, ведь должна быть возможность найти ячейку памяти, которая отвечает и за это? Офк менее важно, чем изменение перезарядок, манакостов, отлов атаки и т. п., но все-таки.
0
16
7 лет назад
0
на тот момент не было базы итемов, счас есть
0
21
7 лет назад
0
Так функция уже есть/реализуема - задать/определить голдкост предмета?
0
28
7 лет назад
0
ClotPh, поищи сам
неужели так сложно найти поле у итема в котором хранится голд
0
16
7 лет назад
0
ну, вообще-то не так просто, ибо офсета на базу итемов я не давал
для 1.26
pItemDataNode=GameDLL+0xAB4BE8
скопируй GetUnitDataDefAddr и там замени адрес базы юнитов на эту переменнубю, и можно пользоваться по аналогии
0
21
7 лет назад
0
Простой вопрос по мемхаку.
Есть абила с перезарядкой 40 сек. Заюзалась у какого-то юнита. Её перезарядка дошла до половины, т. е. осталось бы 20 сек. по-нормальному и 20 сек. прошло, и в этот момент с помощью SetAbilityCD перезарядка этой абилы на этом уровне меняется с 40 секунд до 20 секунд. Через сколько секунд именно в этот раз у этого юнита завершится перезарядка этой абилы?
PS Предполагаемые мной варианты ответов:
  1. двадцать
  2. десять (склоняюсь к этому, и именно так было бы лучше и логичнее всего, хотя вообще допускаю все три варианта и все они приемлемы)
  3. ноль
Важно, бо планирую мутить целого героя на замутах с перезарядками.
2
32
7 лет назад
2
ClotPh:
Простой вопрос по мемхаку.
Есть абила с перезарядкой 40 сек. Заюзалась у какого-то юнита. Её перезарядка дошла до половины, т. е. осталось бы 20 сек. по-нормальному и 20 сек. прошло, и в этот момент с помощью SetAbilityCD перезарядка этой абилы на этом уровне меняется с 40 секунд до 20 секунд. Через сколько секунд именно в этот раз у этого юнита завершится перезарядка этой абилы?
PS Предполагаемые мной варианты ответов:
  1. двадцать
  2. десять (склоняюсь к этому, и именно так было бы лучше и логичнее всего, хотя вообще допускаю все три варианта и все они приемлемы)
  3. ноль
Важно, бо планирую мутить целого героя на замутах с перезарядками.
Сколько было столько и останется, вроде же эта функция меняет перезарядку всех способностей с таким ИД, но ты смотришь на кулдаун индикатор (да то самое затемнение иконки, которое постепенно снимается с иконки - это кулдаун индикатор) который никуда не денется, для кулдаун индикатора юзается отдельная функция которую размусолили выше (StartAbilityCooldown).
Ты либо меняешь кулдаун абилки, т.е её время перезарядки, которое возьмет кулдаун индикатор при её касте, либо сам кулдаун индикатор, одно от другого не зависит и можно менять по своему хотению каждое из них. Снизить кд абилки которая еще не перезарядилась, да пожалуйста - StartAbilityCooldown на нужное тебе число.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.