16

» WarCraft 3 / повернуть здание через мемхак

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
16

» WarCraft 3 / повернуть здание через мемхак

в смысле перестает атаковать? здания не поворачиваются для атаки же оО или ты про то ,что SetPos отдает приказ стопа? не пойму
16

» WarCraft 3 / повернуть здание через мемхак

если у юнита нет Amov , для него отключается перерисовка, попробуй добавить SetUnitPosition после поворота, если не поможет - то хз даже, надо копать, а я занят
16

» WarCraft 3 / Оптимизация GUI перменных в массивы

Принятый ответ
повторяю еще раз, количество переменных НИКАК не сказывается на скорости загрузки или работы, что 1000, что 30000
16

» WarCraft 3 / Последовательность выполнения

ну нет же понятия "одновременный", всегда кто-то первый, кто-то второй. другое дело, как в движке это обрабатывается. Например, при создании юнита через CreateUnit() триггеры, реагирующие на ВХОД юнита в область, сработают только в следующем кадре, но не этом. А при вызове иллюзии через палку и наличии события UNIT_SUMMONED иллюзия будет поймана сразу же, поток прервется на выполнение кода триггера с вызовом.
Полагаю, удаление тоже не моментально их удаляет из трекинга. Попробуй отдавать "стоп" перед удалением, например,
16

» WarCraft 3 / PauseUnit

Принятый ответ
пауза не предназначена для использования в боевых условиях, вот и ловишь всякое с нею. используй станы обычные, если уж жмет, а для башен и дизарм сгодится обычный
16

» WarCraft 3 / Вычисляем по IP

это просто обертка для одноименного винапи. проверки У МЕНЯ не происходит, просто код такой есть, не более
16

» WarCraft 3 / Проверка файла мемхаком

Принятый ответ
обычным if LocalPlayer==твой игрок then {read} endif
если инфа для синхронизации важна, то еще и передать число ты как-то должен
16

» WarCraft 3 / Вычисляем по IP

версия биоса мне глубоко побоку, что отдает традиционное winAPI , то и собираю
16

» WarCraft 3 / Вычисляем по IP

не угонишь, все нормальные программы шифруют ключевые файлы с данными
16

» WarCraft 3 / Спел похищение жизни!

я хз где и кто в движке берет координату какого-либо аттача, а соска берет высоту получения снаряда юнитов
16

» WarCraft 3 / Спел похищение жизни!

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
высота = Z + offsetImpactZ
16

» WarCraft 3 / АнтиХак

это рандомно, часто садится на 6F, но когда ут ебя будет 20к разнообразных клиентов ежедневно, быстро увидишь огромное количество вылетов
берешь и переписываешь память, предварительно её разлочив на запись. а хак может повторить перезапись. смысла мало
и у меня модуль Msseax.m3d дефолтно используется игрой, а у тебя он считается хаком
16

» WarCraft 3 / АнтиХак

а в 79/80 у тебя будет ложное срабатывание, если GameDLL окажется не на 6F000000
16

» WarCraft 3 / Вопрос по поводу версии( Требуется экспертное мнение)

обратная совместимость КАРТ полная, но РЕДАКТОР может не переварить то, что ты натворил в модифицированных редакторах, это да
16

» WarCraft 3 / АнтиХак

так ты когда офсет на 4 делишь, у тебя падают все 4 к "36143C/4", три последующих не имеют смысла, поэтому и сказал
16

» WarCraft 3 / АнтиХак

не понял, нафига в антихаке ряд повторяющихся бессмысленных проверок
		call CheckAddrData(   7, 0x36143C, 0x00000001 ) //							|
		call CheckAddrData(   8, 0x36143D, 0x00000001 ) //							|
		call CheckAddrData(   9, 0x36143E, 0x00000001 ) //							|
		call CheckAddrData(  10, 0x36143F, 0x00000001 ) //__________________________|
4 подряд на один и тот же адрес, потому что чтения нечетных адресов нет
16

» WarCraft 3 / Предмет: Божественный Щит

UnitAlive лучше всех:
если юнита не существует, его хп ==0, но IsUnitType(DEAD)==false (потому что юнита нет)
если юнит мертв, но его хп поднялись, то хп >0 при UnitType(DEAD) == true
и UnitAlive работает четко во всех этих ситуациях
16

» WarCraft 3 / Мемхак - смена миникарты во время игры

Принятый ответ
миникарта - это просто картинка, которая при загрузке трансформируется в чистое BMP изображение, где на каждую точку по 4 байта, RGBA. Так что можно и перерисовать при желании вручную. Подгрузить другую картинку я не могу, но на этапе загрузки могу подменить путь к ней, чтобы из двух альтернатив выбирать. Это единтсвенное, что могу предложить из такого, всё остальное нужно разбирать самому.
16

» WarCraft 3 / Вылет ntdll.dll

потому что на низких настрйках игра берет текстуры разрешения пониже, которые могут быть как ложными слоями, так и просто багованными (не проверенны на низких и крашат)
все форматы варкрафта закрыты и по сути просто случайная удача, что кто-то разобрался в них до такой степени, что они не крашат каждый раз