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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
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 на нужное тебе число.
3
21
7 лет назад
Отредактирован ClotPh
3
Понятно, ну т. е. кулдаун считается в момент запуска и потом со сменой времени перезарядки абилы уже пропорционально не меняется
Лучше и логичнее было бы, имхо, чтобы он пропорционально менялся, ну сойдет и так, спасибо, один хрен тут поле непаханое - можно, например, значение перезарядки абилы добавлять/убавлять к атаке и т. п., столько комб и идей, ну а основная идея - ппц повышать врагам перезарядки на время и понемногу постепенно, чтобы они вроде и не под салом были, а сделать НИЧО ПОЧТИ НЕ МОГЛИ ))) Ну и своим снижать, чтобы все раскастовывались как бристлбеки - кто когда говорил, что маги не лейт?
Офк баланс, да, ну тут уже бкб и антимагии всякие должны помогать
PS dota2.ru/forum/threads/psixopompa.1025855
Так, а если так:
Событие - unit приводит способность в действие.
Действия:
  • Запомнить как реалку перезарядку этой способности.
  • Через SetAbilityCD немедленно изменить ей перезарядку на 2 секунды (тогда, ятп, она успеет начать считаться как новое).
  • Через 0.2 секунды вернуть ей то значение перезарядки, которое было, из запомненной реалки.
Тогда перезарядка в этот раз уже пойдет как 2 секунды, но GetAbilityCD будет возвращать 10 (ну уже через те самые 0.2 секунды, когда перезарядка "фактически нормализуется на будущее").
Всё верно? Как понимаю, да.
Просто это можно ультовый бафф на союзника "все ваши способности перезаряжаются 2 секунды вместо действительной перезарядки". Ну или дебафф на врага, только там будет не 2 секунды, а 30 каких-нибудь.
P. S. Какого панциря даже через много дней последовательные сообщения от одного юзера склеиваются? Нелогично, да и правильность их плюсо-минусовой оценки тогда может быть сомнительной, оценивалось-то самое первое.
0
16
7 лет назад
0
если тебе нужно конкретному юниту конкретную перезарядку поменять, так поменяй её после spell_effect, персонально, по известному навыку, конкретному юниту, зачем огоород с глобальным изменением кд и восстановлением?
типа кастанул - через 0 секунд берется адрес способности и в её кулдаун вписывается нужное значение. всё
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.