function SetUnitPositionNoStop takes unit u, real x, real y returns nothing
set LastConvertedHandle=ConvertHandle(u)
if LastConvertedHandle!=0 then
call WRMem(pReservedWritableMemory,x)
call WRMem(pReservedWritableMemory2,y)
call CallThisCallWith11Args(RMem(RMem(LastConvertedHandle)+0x180),LastConvertedHandle,pReservedWritableMemory,pReservedWritableMemory2,1,1,-1,0,0,0,-1,0)
endif
endfunction
если у юнита нет Amov , для него отключается перерисовка, попробуй добавить SetUnitPosition после поворота, если не поможет - то хз даже, надо копать, а я занят
ну нет же понятия "одновременный", всегда кто-то первый, кто-то второй. другое дело, как в движке это обрабатывается. Например, при создании юнита через CreateUnit() триггеры, реагирующие на ВХОД юнита в область, сработают только в следующем кадре, но не этом. А при вызове иллюзии через палку и наличии события UNIT_SUMMONED иллюзия будет поймана сразу же, поток прервется на выполнение кода триггера с вызовом.
Полагаю, удаление тоже не моментально их удаляет из трекинга. Попробуй отдавать "стоп" перед удалением, например,
пауза не предназначена для использования в боевых условиях, вот и ловишь всякое с нею. используй станы обычные, если уж жмет, а для башен и дизарм сгодится обычный
integer pReservedForCoordinatesData=0//global
//memhack init with mallocs
set pReservedForCoordinatesData= malloc(12)
function GetUnitZNative takes widget h returns real
set LastConvertedHandle=ConvertHandle(h)
if LastConvertedHandle!=0 then
call CallThisCallWith5Args(GameDLL+0xC9F0,LastConvertedHandle,pReservedForCoordinatesData,0,-1,0)
return RRMem(pReservedForCoordinatesData+8)
endif
return 0.
endfunction
function GetUnitPojectileImpactZ takes unit h returns real
set LastConvertedHandle=ConvertHandle(h)
if LastConvertedHandle!=0 then
return RRMem(LastConvertedHandle+0x228)//swim Z offset = 0x22C
endif
return 0.
endfunction
это рандомно, часто садится на 6F, но когда ут ебя будет 20к разнообразных клиентов ежедневно, быстро увидишь огромное количество вылетов
берешь и переписываешь память, предварительно её разлочив на запись. а хак может повторить перезапись. смысла мало
и у меня модуль Msseax.m3d дефолтно используется игрой, а у тебя он считается хаком
UnitAlive лучше всех:
если юнита не существует, его хп ==0, но IsUnitType(DEAD)==false (потому что юнита нет)
если юнит мертв, но его хп поднялись, то хп >0 при UnitType(DEAD) == true
и UnitAlive работает четко во всех этих ситуациях
миникарта - это просто картинка, которая при загрузке трансформируется в чистое BMP изображение, где на каждую точку по 4 байта, RGBA. Так что можно и перерисовать при желании вручную. Подгрузить другую картинку я не могу, но на этапе загрузки могу подменить путь к ней, чтобы из двух альтернатив выбирать. Это единтсвенное, что могу предложить из такого, всё остальное нужно разбирать самому.
потому что на низких настрйках игра берет текстуры разрешения пониже, которые могут быть как ложными слоями, так и просто багованными (не проверенны на низких и крашат)
все форматы варкрафта закрыты и по сути просто случайная удача, что кто-то разобрался в них до такой степени, что они не крашат каждый раз
» WarCraft 3 / повернуть здание через мемхак
» WarCraft 3 / повернуть здание через мемхак
» WarCraft 3 / повернуть здание через мемхак
» WarCraft 3 / повернуть здание через мемхак
» WarCraft 3 / Оптимизация GUI перменных в массивы
» WarCraft 3 / Оптимизация GUI перменных в массивы
» WarCraft 3 / Запретить автоатаку
» WarCraft 3 / Последовательность выполнения
Полагаю, удаление тоже не моментально их удаляет из трекинга. Попробуй отдавать "стоп" перед удалением, например,
» WarCraft 3 / PauseUnit
» WarCraft 3 / Статы предметов
Ред. DracoL1ch
» WarCraft 3 / Вычисляем по IP
» WarCraft 3 / Проверка файла мемхаком
если инфа для синхронизации важна, то еще и передать число ты как-то должен
» WarCraft 3 / Вычисляем по IP
» WarCraft 3 / Вычисляем по IP
» WarCraft 3 / АнтиХак
» WarCraft 3 / Спел похищение жизни!
Ред. DracoL1ch
» WarCraft 3 / Спел похищение жизни!
» WarCraft 3 / АнтиХак
берешь и переписываешь память, предварительно её разлочив на запись. а хак может повторить перезапись. смысла мало
и у меня модуль Msseax.m3d дефолтно используется игрой, а у тебя он считается хаком
» WarCraft 3 / АнтиХак
» WarCraft 3 / Вопрос по поводу версии( Требуется экспертное мнение)
» WarCraft 3 / АнтиХак
» WarCraft 3 / АнтиХак
» WarCraft 3 / Предмет: Божественный Щит
если юнита не существует, его хп ==0, но IsUnitType(DEAD)==false (потому что юнита нет)
если юнит мертв, но его хп поднялись, то хп >0 при UnitType(DEAD) == true
и UnitAlive работает четко во всех этих ситуациях
» WarCraft 3 / Мемхак - смена миникарты во время игры
» WarCraft 3 / Вылет ntdll.dll
все форматы варкрафта закрыты и по сути просто случайная удача, что кто-то разобрался в них до такой степени, что они не крашат каждый раз