Версия v0.3.0
Графическая модификация для игры WarCraft III.
287 86.9K
13
Дополнительное ПО не нужно распространять вместе с картой (но можно). Просто копируем нужный код в карту и сохраняем.
25
А какие минусы?
Не следил просто за разработкой последние года, не в курсе всех этих вещей.
Для мемхака используется внешнее ПО или нет?
То есть достаточно просто написать код и иницилизировать его в карте, или вместе с картой будет необходимо предоставлять конечному пользователю дополнительное ПО?
13
Я уже написал Караулову, может быть ответить.
В результате пропадут чёрные полосы сверху и снизу экрана, будет выглядеть примерно так:
25
ENAleksey:
NanO, нужно как-то переписать эту строку на jass с помощью массива Memory, там вроде где-то нужно делить на 4, где-то умножать, чтобы получить указатель или разыменовать его:
local integer pBordersFrame = *((int*)GetGameUI(0, 0) + 239) + 180
Можно спросить у Лича или Караулова.
Я просто не особо шарю в jass, никогда не ковырял его.
Напиши плиз их ники точно, я постучусь в ЛС попрошу помочь.
Подскажи, какой в итоге результат то?)
Оно уберет интерфейс или что?
Как примерно будет выглядеть?
13
NanO, нужно как-то переписать эту строку на jass с помощью массива Memory, там вроде где-то нужно делить на 4, где-то умножать, чтобы получить указатель или разыменовать его:
local integer pBordersFrame = *((int*)GetGameUI(0, 0) + 239) + 180
Можно спросить у Лича или Караулова.
25
Подскажи, что в написанном коде надо доработать, чтобы оно заработало и какой конечный результат получится :)
13
Clamp, NanO, доступа к компьютеру сейчас нет, когда приеду домой (10 числа), смогу точнее написать код:
раскрыть
constant integer ANCHOR_TOPLEFT = 0
constant integer ANCHOR_TOP = 1
constant integer ANCHOR_TOPRIGHT = 2
constant integer ANCHOR_LEFT = 3
constant integer ANCHOR_CENTER = 4
constant integer ANCHOR_RIGHT = 5
constant integer ANCHOR_BOTTOMLEFT = 6
constant integer ANCHOR_BOTTOM = 7
constant integer ANCHOR_BOTTOMRIGHT = 8


integer address_SetFramePoint = GameBase + 0x606770 // 1.26a
integer address_GetGameUI = GameBase + ? // Нужно будет поискать адрес через IDA Pro


function SetFramePoint takes integer pFrame, integer point, integer pParentFrame, integer relativePoint, real offsetX, real offsetY returns nothing
	call CallThisCallWith6Args(address_SetFramePoint, pFrame, point, pParentFrame, relativePoint, cleanInt(realToIndex(offsetX)), cleanInt(realToIndex(offsetY)), 1)
endfunction

function GetGameUI takes integer a1, integer a2 returns nothing
    call CallFastCallWith2Args(address_GetGameUI, a1, a2)
endfunction


function HideBlackBorders takes nothing returns nothing
    // точно не помню, как в мемхаке работать с указателями, вроде бы, через массив Memory
	local integer pBordersFrame = Memory[Memory[GetGameUI(0, 0)/4]/4 + 239] + 180 // *((int*)GetGameUI(0, 0) + 239) + 180
	local integer pWindowFrame = GetGameUI(0, 0) + 180

	call SetFramePoint(pBordersFrame, ANCHOR_TOPRIGHT, pWindowFrame, ANCHOR_TOPRIGHT, 0.0, 0.0) // верхняя граница
	call SetFramePoint(pBordersFrame, ANCHOR_BOTTOMLEFT, pWindowFrame, ANCHOR_BOTTOMLEFT, 0.0, 0.0) // нижняя граница
endfunction
2
ENAleksey, Можешь сделать скрытие интерфейса файлом?Наподобие widescreen fix,буду очень благодарен.
13
Кет, сначала так и хотел сделать. Да, отказался из-за того, что доступно только одно начертание, при этом шрифт ещё и выглядит не очень приятно (но это чисто мое мнение).
33
ENAleksey, имхо было бы логичней стандартным сделать Fritz Quadrata (шрифт интерфейса WC3). Ты его не используешь, потому что там одно начертание?