Добавлен , опубликован
Собственно тот знаменитый хак на память который нам радостно предоставил DracoL1ch, который позволяет нам больше не морочится с системами отлова урона, или вовсе узнать координаты курсора без стороннего по.
Для сохранения требуется: экспериментальная версия pjass.exe
Причём не все подходят, меньше всего проблем было с этой версией
В хаке присутствует только 1 пример на изменение белой атаки у героя, остальные готовые функции можно найти на:
Хайве
Гитхабе
Просто копируем саму функцию, все остальное для её работы есть в наработке и сохраняем.
Так же на хайве есть инструкция по созданию собственных функций для чтения\изменения данных в памяти игры.
`
ОЖИДАНИЕ РЕКЛАМЫ...
21
А можно через мх переименовать конкретную боевую единицу (примем, что пока не героя), оставив всем остальным и вновь создаваемым единицам того же типа обычное имя?
Например, у всех бугаев при выделении название "Бугай", а у конкретного заменить его на "Пеликан".
28
ClotPh, мх даёт прямой доступ к памяти
так что через него можно сделать всё что угодно
надо только найти нужные участки памяти и записать в них правильные данные
16
имена юнитов берутся через GetObjectName, так что только если совместишь с событиями выделениями или хуков своих напишешь
38
В 1.29 ptr есть SetUnitName, так что имя для каждого юнита лежит в отдельном участке памяти. Ну или они это сделали только в 1.29 ptr
38
Или ты о том, что передаем мы конкретного юнита, а имя меняется для типа юнита?
16
так лениво было второго юнита такого же создать рядом?) именно
22
DracoL1ch, он правда пишет... я тестировал можно создать тот же юнит но на разных именах... а вот предмет накосячили что все предметы заменяет если 1 предмет выбрано
38
Функция бы тип принимала, они же не совсем конченные. Если надо что-то сделать, какой смысл брать у юнита тип и делать что-то с ним, если можно просто передать тип.
16
А, вижу SetUnitNameAll, окей. Многие новые нативки принимают именно объект, а не ID, чтобы проверять тип
38
А векторы данных юнита уже определены? Он ведь по идее не такой тяжеловесный должен быть
16
"по-идее" никак не связано с реальностью, они явно поменяли алгоритм подгрузки имени юнита, чтобы учитывать таких одиночек, поэтому наверняка без хука не обойтись, а с хуком можно и сейчсас самим, было бы желание
Сложного нет, просто муторно - имя востребовано в ряде игровых инстансов, но реально важны только GetUnitName, рендерер панели и рендерер окна героев, т.е. от 3 хуков + какой-то костыль для указания, кто как зовется, скорее всего - отдельная хештаблица, чтобы с хендлом работать
а что с векторами?
21
////
подсказали, что мемхаком можно триггерно приказать открыть спеллбук, укажите плз функцию
27
а можно ли узнать текущую дальность обзора юнита? или как-то на обзор юнита влиять (подзорная труба не в счет, так как ограничение в 1800)
26
Steal nerves:
а можно ли узнать текущую дальность обзора юнита? или как-то на обзор юнита влиять (подзорная труба не в счет, так как ограничение в 1800)
делаешь абилки на основе "предмет: увеличение поля зрения" с разным количеством прибавляемого обзора
1
затем делаешь нужному юниту/юнитам минимальный нужный обзор в РО
2
а после уже функцией можно добавлять нужную абилку изменяя тем самым дальность обзора
3
по крайней мере я нашел лишь такой стандартный способ
Загруженные файлы
32
ClotPh, пример лежит в скиллах с конкурса - ссыль
Кароче мою карту смотри, там есть коменты что как и зачем.
21
/
Продублирую тут
/////
Блин, ну перепишите плз функцию GetUnitBaseDamage (и, ятп, GetUnitGreenBonusDamage), чтобы при отсутствии атаки она не варкрафт фаталила, а возвращала 0! Ну что это такое, второй раз уже из-за нее фаталы!
Можно и нужно офк фильтры и проверки ставить, но по-нормальному они внутри самой функции должны быть!
///////
Пока придется всем осязаемым юнитам давать атаку, а у кого ее не должно быть - склад орков совать... потому что при первой попытке подсчета атаки с у кого ее нет фатал сразу, а лучше бы, чтобы возвращало 0 и все
/////
Вообще стоит определиться: развивается мемхак параллельно "официальной линии" или нет, если да, то надо вот все вот такие фаталы исправлять, идеализировать функции, а если они уже есть в кул вариантах, то обновить ссылки выше.
В идеале, если развитие идет, вообще мемхак вывести в дополнительный гуи и прямо внутрь вшить O_O, слова нельзя я не понимаю.
38
Жалко, нет function_exists и объявлений на ходу)
16
function_exists - это что за зверь?
фаталов в мх нет, фаталы есть у тех, кто использует его на своих картах без учета собственных же особенностей разработки. Ну а поставить хотя бы тупо проверку на ноль в ответе не так сложно, полагал я в прошлом
38
Ну типа чтобы polyfill делать
if not function_exists("GetMouseX") then
    function GetMouseX takes nothing returns float
        // ...
    endfunction
endif
29
ScorpioT1000:
Ну типа чтобы polyfill делать
if not function_exists("GetMouseX") then
    function GetMouseX takes nothing returns float
        // ...
    endfunction
endif
типа рефлексии?
16
Это вообще уже что-то из редактора и к мх не имеющее отношения
1
ScorpioT1000, вроде есть к обращении к библиотеку например if not LIBRARY_name then а функция хз
Чтобы оставить комментарий, пожалуйста, войдите на сайт.