Добавлен , опубликован
Алгоритмы, Наработки и Способности
Способ реализации:
vJass
Тип:
Наработка
Версия Warcraft:
1.26 и ниже
Собственно тот знаменитый хак на память который нам радостно предоставил DracoL1ch, который позволяет нам больше не морочится с системами отлова урона, или вовсе узнать координаты курсора без стороннего по.
Для сохранения требуется: экспериментальная версия pjass.exe
Причём не все подходят, меньше всего проблем было с этой версией
В хаке присутствует только 1 пример на изменение белой атаки у героя, остальные готовые функции можно найти на:
Хайве
Гитхабе
Просто копируем саму функцию, все остальное для её работы есть в наработке и сохраняем.
Так же на хайве есть инструкция по созданию собственных функций для чтения\изменения данных в памяти игры.
`
ОЖИДАНИЕ РЕКЛАМЫ...
2
32
7 лет назад
2
Diaboliko, адресс абилки у юнита, если она есть, так же может возвращать 0 и отрец. значения, поэтому нужно обязательно проверять что вернула эта функция. Баффы это тоже абилки, они подчинаются тем же правилам что и обычные абилки, т.е по ро-коду можно получить их адресс, удалить, отредактировать через мемхак. Для дамми баффов юзайте 'Aasl' или другую ауру, чтобы делать баффы-иконки, которые ничего не делают, а висят в статусе для информации, им можно задать длительность, мигание, уровень и прочее.
0
20
7 лет назад
0
Может ли возвращаться значение <= 0 если юнит гарантированно жив и имеет способность, с которой ведется работа?
0
32
7 лет назад
0
Diaboliko:
Может ли возвращаться значение <= 0 если юнит гарантированно жив и имеет способность, с которой ведется работа?
Известны только случаи такого поведения, конкретики нет. Драколич такое обнаруживал.
0
20
7 лет назад
Отредактирован Diaboliko
0
Работает ли ожидаемо-стандартно функция:
function DisableUnitControl
?
Конкретно: будет ли он юнит искать цели для атаки, если его текущий приказ - атаковать на точку/удерживает позицию/простаивает?
Думаю расшарить контроль неуправляемого союзного бота для визуальной индикации создаваемого при спецэффичных обстоятельствах героя под контролем для этого бота. При этом лишать всех юнитов контроля при помощи упомянутой функции, дабы оставить лишь иконку этого героя как результат шары контроля. (ИИ все-равно триггерный)
Можно ли отдавать юниту приказы через ПКМ?(будет полностью игнорироваться или будет эффект как при добавлении непрерываемого флага через руну морфа(можно отдавать приказы, но юнит будет их игнорировать)?)
0
32
7 лет назад
0
Diaboliko, кароче приказ отдать низя, но автоатака и последний отданный приказ будет работать.
Лучше юзать мут на 'Amov' и триггер с 2 событиями, так можно полностью убрать контроль юнита игроком, контролируя юнита триггернно.
0
20
7 лет назад
0
Открыта ли уже возможность запуска кд без блокировки способности? (создание модели кулдауна на интерфейсе на нужном оффсете)
0
21
7 лет назад
0
По поводу фатала при запуске кулдауна блинка. Он сайленсится и там какое-то значение надо поменять, чтобы не фаталило. Мб просто прямо в функцию запуска кулдауна любой способности встроить проверку и, если у способности фаталящее значение - менять его, запускать кд, а потом менять обратно?
0
32
7 лет назад
0
ClotPh, так и сделал, я хз зачем близзарды изобрели сайленс на время каст тайма, вероятно это зачем то нужно, может багнутся при ручном применении.
0
21
7 лет назад
0
quq_CCCP, а функцию готовую можешь сюда скинуть? Если еще и под старый и под новый мемхак, вообще збс было бы, я на новый еще только в процессе перехода.
0
4
7 лет назад
0
Вновь у меня какие-то проблемы с мемхаком+оптимизером. Юзаю мемхак для функции смены урона юнита, брони и хп по быстрому(знаю что можно и без него это сделать, но все же). Открытая "базовая" версия карты работает и норм хостится, но оптимизированная прогой не ловится варкрафтом, при попытке создать ее в батлнете просто вылетает обратно в чат, либо пишет игра не найдена. Полагаю это может быть связано с какими то галочками в оптимизере, но у меня уже мозги кипят и я ниче не понимаю. Если кто может помочь, я могу скинуть базовую версию карты и вы посмотрите. Может я и мемхак как-то криво юзаю(но все ведь работает).
0
32
7 лет назад
0
Daniil18, писали же, настройки в твиках тулов:
  • рокоды в цифры
  • не переименовывать stand
  • убирать мусор
Вот скрин:
Загруженные файлы
0
4
7 лет назад
0
quq_CCCP, все равно нет. А что насчет галок в основных настройках? что нужно что нет, мб тут?
1
32
7 лет назад
1
Все ставишь, я не ставлю "оптимизировать прочие скрипты". Все работает, возможно у тебя ошибки в коде.
Блин я забыл описать про антиудаление, оптимизаторы хреновы стирают несипользуемые функции, а в мемхаки есть туча паразитных функций, которые нужны чтобы надурить пасер....
Смотри новый мемхак, где то тут прикреплял...
Вот ссылка на комент с новым мх -http://xgm.guru/p/wc3/memoryhack?postid=345483#comment259
0
22
7 лет назад
0
Подскажите как пользоваться:
function ExportDllFromMpqAndInjectToWarcraft takes string source, string dest returns nothing
function LoadLibrary takes string nDllName returns integer
Хочу использовать отлов клавиш от Alexander12 xgm.guru/p/wc3/160205 но при этом не пихать Key2.mix в корень вар3. Как мне быть?
2
13
7 лет назад
2
Bornikkeny, посмотри, как я делал:
ENAleksey:
awesomesk1ll, да, здесь нет ничего сложного, для начала экспортируем dll из карты, а потом загружаем её с помощью LoadLibraryA. Сейчас скину карту с загрузкой моей библиотеки, в которой реализован Widescreen Fix.

Скачать (поддерживаются версии 1.26a и 1.27а).
Правда, я сделал инициализацию библиотеки с помощью вызова экспортируемой функции из dll, чтобы передать в неё версию варкрафта, но это можно делать и внутри библиотеки: вызывать только LoadLibraryA, а всё остальное делать в теле функции DllMain.
1
22
7 лет назад
1
ENAleksey:
Bornikkeny, посмотри, как я делал:
Ой-ой-ёшеньки ой-ой, ебаный в рот как сложно-то. Наверное весь сегодняшний вечер убью что бы вникнуть.
0
13
7 лет назад
0
Bornikkeny, да, вроде, не особо сложно, нужно всего-лишь одну функцию написать:
function InjectDLL takes string name returns nothing
    if FileExists(name) then
        if GetModuleHandle(name) == 0 then
            call LoadLibrary(name)
        endif
    else
        if (not ExportFileFromMpq(name, name)) then
            call BJDebugMsg("|c00ff0000Error! ExportFileFromMpq:|r " + name)
        endif
        if (LoadLibrary(name) == 0) then
            call BJDebugMsg("|c00ff0000Error! LoadLibrary:|r " + name)
        endif
    endif
endfunction
0
22
7 лет назад
0
А ничего что библиотека имеет расширение .mix, а не .dll?
2
13
7 лет назад
Отредактирован ENAleksey
2
Bornikkeny, разницы нет, но лучше переименовать mix в dll, чтобы после экспорта в папку с варкрафтом mix не загружался сам.
0
22
7 лет назад
0
Батюшки, хочу использовать тот код который публикован на хайве, но как его использовать - понятия не имею. То в тестовой карте XGM - небольшой отрывок, я так понял.
Как быть?
0
21
7 лет назад
Отредактирован ClotPh
0
Bornikkeny,
попробуй прямо карту взять из 128 сообщения здесь (что-то прямая ссылка не действует)
и пересохранить.
Если всё норм запускается, открывается и действует - то просто копипасти потом нужные функции с гитхаба в кастом код и юзай. Для импорта мемхака в карты - целиком кастом код и либы.
Ток это "старый" мемхак, уже "новый" есть.
0
22
7 лет назад
0
ClotPh:
Bornikkeny,
попробуй прямо карту взять из 128 сообщения здесь (что-то прямая ссылка не действует)
и пересохранить.
Если всё норм запускается, открывается и действует - то просто копипасти потом нужные функции с гитхаба в кастом код и юзай. Для импорта мемхака в карты - целиком кастом код и либы.
Ток это "старый" мемхак, уже "новый" есть.
Да блин, я работал на старом (новом?) МХ. И все вроде бы хорошо, я смог запускать .dll либы и всё такое, но когда появились другие потребности, в виде функций по замене файла модели юнита, я начал вставлять нужные функции из хайва.
Фишка в том, что вставляя одну функцию, нужно вставить еще 20 функций которые использует нужная функция, это не считая производных переменных, констант. А их еще надо инициализировать в Init24, Init26, Init27 все дела. Как быть?
0
21
7 лет назад
0
Перезадаю вопрос: уже есть function GetMouseXOfPlayer takes player returns real?
Очень пригодилась бы.
0
16
7 лет назад
0
нет, никакого сетевого кода у меня не планируется, а это именно сетевой уровень
0
32
7 лет назад
Отредактирован quq_CCCP
0
Так я чую надо перебирать мемхак и все обновленные функции тащить сюда...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.