а, я думал, ты хочешь узнать тип объекта по его адресу. конвертировать в джасс сложно, не минуту доставать, позже
globals
integer l__Int2Unit
integer pGetHandleIDStackCounter=GameDLL+0x3A8060//26
integer pConvertAddressToHandleId=GameDLL+0x430C80//26
endglobals
function setInt2Unit takes integer i returns nothing
set l__Int2Unit=i
return Prevents JassHelper from inlining this function
endfunction
function ConvertUnitAddressToHandleID takes integer address returns integer
local integer a=CallThisCallWith1Args(pGetHandleIDStackCounter,RMem(GameState))
return CallThisCallWith3Args(pConvertAddressToHandleId,a,address,0)
endfunction
function Typecast4 takes nothing returns nothing
local unit l__Int2Unit
endfunction
# +nosemanticerror
function I2Unit takes integer i returns unit
call setInt2Unit(ConvertUnitAddressToHandleID(i))
return l__Int2Unit
endfunction
не забудь уточнить, что ВСЕ используемые здесь адреса НЕ делены на 4, или умножай их сам, если делились. GameState вроде был разделен в паблике.
function GetAgentType takes handle h returns integer returns code of the handle's type +w3u for unit, +tmr for timer, +trg for trigger, +arg for region, etc check the type you may need yourself, Im not gonna write down all of those
local integer func = RMem(RMem(ConvertHandle(h))+0x1C)
return RMem(func)/0x100+RMem(func+4)*0x1000000
endfunction
конвертация адреса в хендл, который затем конвертируется в объект - сложнее
у тебя старая версия мб? у меня всё без деления на 4, если в ReadMemory деления нет - то сам дели перед продолжением. И проверяй везде на то, что в адресе >0
function RMem takes integer addr returns integer
if addr<0x500 or addr>0x7FFFFFFF then
return 0
endif
return Memory[addr/4]
endfunction
ну есть такая возможность
в [[gameClass2]+0x1B4]+0x14 хранится адрес виджета под мышкой. естественно, деревья не в счет, может, только у рабочих они учитываются
RMem(RMem(RMem(gameClass2)+0x1B4)+0x14)==address
для версии 26 можно мемхаком сломать участки, которые ловят эти клавиши. для актуальных патчей - нет ничего. что еще раз доказывает, что только отбитые будут верить в близзард.
прямой возможности такой нет
можно костыль, который будет восстанавливать последние известные координаты камеры при нажатии этих кнопок, но это неточное движение будет
вообще=-то диз берется по адресу xDisabled\DISy, где x - путь к иконке до последнего слеша, y - полное имя файла с расширением
xxx\MyButton.blp - диз будет искаться в xxxDisabled\DISMyButton.blp
» WarCraft 3 / Абилки которые можно кастовать сквозь стан
ISSUED_*_ORDER
» WarCraft 3 / Цвет построек в очереди на строительство
» WarCraft 3 / (Memory Hack) 2 вопроса
» WarCraft 3 / [Мемхак] Функции для способностей.
» WarCraft 3 / Не убегающий юнит, но с безмолвием.
» WarCraft 3 / (Memory Hack) 2 вопроса
globals
integer l__Int2Unit
integer pGetHandleIDStackCounter=GameDLL+0x3A8060//26
integer pConvertAddressToHandleId=GameDLL+0x430C80//26
endglobals
set l__Int2Unit=i
return Prevents JassHelper from inlining this function
endfunction
local integer a=CallThisCallWith1Args(pGetHandleIDStackCounter,RMem(GameState))
return CallThisCallWith3Args(pConvertAddressToHandleId,a,address,0)
endfunction
local unit l__Int2Unit
endfunction
function I2Unit takes integer i returns unit
call setInt2Unit(ConvertUnitAddressToHandleID(i))
return l__Int2Unit
endfunction
» WarCraft 3 / (Memory Hack) 2 вопроса
returns code of the handle's type
+w3u for unit, +tmr for timer, +trg for trigger, +arg for region, etc
check the type you may need yourself, Im not gonna write down all of those
local integer func = RMem(RMem(ConvertHandle(h))+0x1C)
return RMem(func)/0x100+RMem(func+4)*0x1000000
endfunction
» WarCraft 3 / War3map.j до и после оптимизации?
» WarCraft 3 / Нужно отловить widget (memory hack)
» WarCraft 3 / Нужно отловить widget (memory hack)
» WarCraft 3 / Нужно отловить widget (memory hack)
» WarCraft 3 / Нужно отловить widget (memory hack)
if addr<0x500 or addr>0x7FFFFFFF then
return 0
endif
return Memory[addr/4]
endfunction
» WarCraft 3 / Нужно отловить widget (memory hack)
в [[gameClass2]+0x1B4]+0x14 хранится адрес виджета под мышкой. естественно, деревья не в счет, может, только у рабочих они учитываются
RMem(RMem(RMem(gameClass2)+0x1B4)+0x14)==address
» WarCraft 3 / Нужно отловить widget (memory hack)
» WarCraft 3 / Камера
» WarCraft 3 / Камера
можно костыль, который будет восстанавливать последние известные координаты камеры при нажатии этих кнопок, но это неточное движение будет
» WarCraft 3 / Не работает DISBTN модели
xxx\MyButton.blp - диз будет искаться в xxxDisabled\DISMyButton.blp
» WarCraft 3 / Контроль юнитов врага
» WarCraft 3 / Файлы и язык программирования jass
» WarCraft 3 / Файлы и язык программирования jass
» WarCraft 3 / Нужна модель? - Вам сюда!
» WarCraft 3 / Ошибка в коде?
» WarCraft 3 / Ошибка в коде?
ну либо движок решил пустить меня по ложному следу, как опытный маньяк
» WarCraft 3 / Ошибка в коде?
» WarCraft 3 / Ошибка в коде?