ClotPh просил, выложу тут архив с MemoryHack, который я смог собрать. Если будет нужно, буду обновлять по возможности. Можно писать в лс, что поправить или добавить
Lenivex, у тебя есть, а каждому, у кого нет, их потом у тебя или у драколича просить или по темам искать бегать?
так давайте так. Я постоянно достаю Dracol1ch'a, постоянно достаёт всё новые и новые функции. Я могу создать на Google диске архив, с готовым, максимально информативным и функциональным Memory Hack'ом, который смог собрать, если хотите DracoL1ch:
странно, но в любом случае, я снова дал не ту, эта именно обновляет скин - мороз, оживление, вот это всё пересчитывает. Вот функция смены модели:
function ChangeUnitModelTo takes unit u, string modelpath returns nothing
local integer a
local integer s
set LastConvertedHandle=ConvertHandle(u)
if LastConvertedHandle>0 then
set a=RMem(LastConvertedHandle)+0x88
if a>0 then
set a=RMem(a)
if a>0 then
set s=GetStringAddress(modelpath)
call CallThisCallWith3Args(a,LastConvertedHandle,s,1)
endif
endif
endif
endfunction
Напишите уже, если не трудно, эти функции RMem и WMem в шапке с темой мемхака - xgm.guru/p/wc3/179535 и/или вообще прямо на гитхаб поместите. Рациональнее будет...
лучше всего сразу скинуть хотя бы все обновлённые функции без Utils'ов, там ведь не так много. RMem, WMem у меня есть.
Lenivex, насколько знаю - нет, не всем интересно лезть в интерфейс, меня интересуют способы контроля юнита и всякие визуальные фитчи с контролем юнитов, личу интереста только дота, тебе вот надо "квикасты", так что даже не знаю, копал ли кто то в этом направлении на хайве.
Много ли народа вовсе юзает мемхак?
Печально. Думаю больше бы юзали мем хак, если бы вывесили более простую инструкцию о нём. Да возможно для некоторых и Инструкция hive хватает, но всё же. Ещё нужно учесть что мем хак развивается (всмысле постоянно добавляются новые Utils) с Dracol1ch'ем и командой на hive. Каждый раз приходится уточнять что там за функции новые, и так всё по кусочкам
set pRedrawUnitFunction=GameDLL+0x284830//26
function RedrawUnit takes unit u returns nothing
set LastConvertedHandle=ConvertHandle(u)
if LastConvertedHandle>0 then
call CallThisCallWith1Args(pRedrawUnitFunction,LastConvertedHandle)
endif
endfunction
Если использую функцию
function RedrawUnit takes unit u returns nothing
local integer LastConvertedHandle=ConvertHandle(u)
if LastConvertedHandle>0 then
call CallThisCallWith1Args(pRedrawUnitFunction,LastConvertedHandle)
endif
endfunction
то выдаёт фатал, к слову CallThisCallWith1Args() у меня такой:
Нужно вызвать функцию перерисовки Юнита, в теме про мемхак вроде это было...
блин, точно! там написано (в google переводе):
Игра не будет перерисовывать модель до тех пор, пока она не будет принудительной, и мы не знаем, как ее заставить. Пока лучший подход - это изменить модель до создания единицы, тогда у него будет новая модель
и как же мне перерисовать модель?
Думаю можно, нужно будет Cheat Engine анализировать что изменяется в момент нажатия Enter или открытия меню (это само по себе не сильно то просто), а потом пытать пролезть туда с уровня jass при помощи мемхака.
никто не пробовал так делать? Без этого не решить вопрос с квикастами
Lenivex, нет терпение и ты умеешь колупать защищенные карты? P.S по секрету, у лича это юзается для прыжка войда, смекаешь? Там все прекрасно работает!
Я не тороплю, просто оперативно отвечаю. Колупать карты? Всмысле вскрывать? Если только модели достать какие нибудь. Насчёт кода хз, не знаю
Lenivex, это немного не та функция, она способна спрятать эффект совсем, если поставить false... Подождите...
мм, поставил false эффект и вправду пропал. Это работает, но немного не то
если поставить false - эффект точно невидим
true - эффект виден, если он не в тумане войны
а мне нужно абсолютное значение видимости, при любых условиях
P.S:
function WMem takes integer addr, integer val returns nothing
if addr<0x100 or addr>0x7FFFFFFF then
return
endif
set Memory[addr/4]=val
endfunction
Ошибки нету, ничего особого не происходит, эффект виден вне тумана войны и не виден в тумане войны.
function WMem takes integer addr, integer val returns nothing
if addr<0x100 or addr>0x7FFFFFFF then
return
endif
set Memory[addr/4]=val
endfunction
function SetEffectVisibility takes effect fx, boolean visible returns nothing
local integer a=ConvertHandle(fx)
if a>0 then
if visible then
call WMem(a+0x20,0)
else
call WMem(a+0x20,1)
endif
endif
endfunction
Лич хитрый, как лисица, мемхак дал, а прямо точно написанных новых функций - никогда не даст
Типа ну он же с мемхаком мучился, пусть и другие помучаются, а уж потом результат поимеют
он сейчас даёт самый упрощённый вариант. Хотя новые функции безо всяких /4 были бы точно удобнее
''
function SetEffectVisibility takes effect fx, boolean visible returns nothing
local integer a=ConvertHandle(fx)
if a>0 then
if visible then
call WMem(a+0x20,0)
else
call WMem(a+0x20,1)
endif
endif
endfunction
''
адреса целые, без деления на 4
Не известна функция WMem - подставил WriteMemory - не работает
адреса такие подставлял:
a+0x20
(a+0x20) * 4
a*4 + 0x20
Либо не работает либо выдаёт фатал
Тогда можно просто создать модификатор видимости в точке, где находится эффект.
опять же, я просто увижу лишнее. У меня effect появляется каждый раз при клике. Таким образом можно раскрывать туман войны. А это очень тупо, можно просто всю карту так прокликать и узнать где находится противник
кек, мем хак позволяет делать то, что вообще не возможно с обычным инструментарием на триггерах Jass'a
Можно реализовать бег на стрелках и квиккаст одной абилы, жёстко привязанный к ЛКМ, пока что это лимит того, что я нашёл. За примером можно посмотреть сюда, там же опенсорс лежит, в принципе.
не, бег на стрелках не для той карты, которую я сейчас делаю
Забавно, я тоже буквально вчера начал думать, как бы реализовать квиккасты, но пока что особых подвижек нету =(
Возможно даже, что это тот самый случай, когда мемхак и правда окажется незаменим.
кек, мем хак позволяет делать то, что вообще не возможно с обычным инструментарием на триггерах Jass'a
» WarCraft 3 / (MH) Отдача приказа
» WarCraft 3 / (MH) Отдача приказа
» WarCraft 3 / Хак на память Warcraft3
Отредактирован Lenivex
» WarCraft 3 / (MH) Что с присвоением анимации юниту?
ClotPh: архив на Google Диске. Можете писать в личку что не так, поправлю.
» WarCraft 3 / (MH) Что с присвоением анимации юниту?
» WarCraft 3 / (MH) Что с присвоением анимации юниту?
DracoL1ch: Выдаёт фатал при использовании
Отредактирован Lenivex
» WarCraft 3 / (MH) Что с присвоением анимации юниту?
ClotPh: лучше всего сразу скинуть хотя бы все обновлённые функции без Utils'ов, там ведь не так много. RMem, WMem у меня есть.
Отредактирован Lenivex
» WarCraft 3 / Интерфейс игрока
» WarCraft 3 / (MH) Что с присвоением анимации юниту?
» WarCraft 3 / (MH) Что с присвоением анимации юниту?
Игра не будет перерисовывать модель до тех пор, пока она не будет принудительной, и мы не знаем, как ее заставить. Пока лучший подход - это изменить модель до создания единицы, тогда у него будет новая модель
и как же мне перерисовать модель?
» WarCraft 3 / Интерфейс игрока
» WarCraft 3 / (Memory hack) Visible effect'a в тумане войны
» WarCraft 3 / (Memory hack) Visible effect'a в тумане войны
» WarCraft 3 / (Memory hack) Visible effect'a в тумане войны
» WarCraft 3 / (Memory hack) Visible effect'a в тумане войны
если поставить false - эффект точно невидим
true - эффект виден, если он не в тумане войны
а мне нужно абсолютное значение видимости, при любых условиях
P.S:
Отредактирован Lenivex
» WarCraft 3 / (Memory hack) Visible effect'a в тумане войны
Отредактирован Lenivex
» WarCraft 3 / (Memory hack) Visible effect'a в тумане войны
» WarCraft 3 / (Memory hack) Visible effect'a в тумане войны
адреса такие подставлял:
a+0x20
(a+0x20) * 4
a*4 + 0x20
Либо не работает либо выдаёт фатал
» WarCraft 3 / (Memory hack) Visible effect'a в тумане войны
Отредактирован Lenivex
» WarCraft 3 / +2 Вопроса (effect, интерфейс игрока)
» WarCraft 3 / +2 Вопроса (effect, интерфейс игрока)
» WarCraft 3 / +2 Вопроса (effect, интерфейс игрока)
» WarCraft 3 / +2 Вопроса (effect, интерфейс игрока)
» WarCraft 3 / +2 Вопроса (effect, интерфейс игрока)