Есть ли такая функция, которая поворачивает здание на необходимый угол?

а еще можно глянуть
UpdateStaticUnitVisually
функцию, если есть
function UpdateStaticUnitVisually takes unit u returns nothing
	local integer a=ConvertHandle(u)
	local integer h
	if a==0 then
		return
	endif
	set h=RMem(RMem(a)+0x148)
	call CallThisCallWith4Args(h,a,1,1,1)
	call CallThisCallWith2Args(GameDLL+0x283BC0,a,1)
	call CallThisCallWith1Args(GameDLL+0x28E170,a)
endfunction
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
16
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
18
Через CreateUnit(...) поворачивается
если не надо динамически поворачивать здание - то думаю сойдет)
16
а еще можно глянуть
UpdateStaticUnitVisually
функцию, если есть
function UpdateStaticUnitVisually takes unit u returns nothing
	local integer a=ConvertHandle(u)
	local integer h
	if a==0 then
		return
	endif
	set h=RMem(RMem(a)+0x148)
	call CallThisCallWith4Args(h,a,1,1,1)
	call CallThisCallWith2Args(GameDLL+0x283BC0,a,1)
	call CallThisCallWith1Args(GameDLL+0x28E170,a)
endfunction
Принятый ответ
18
DracoL1ch, это хук на функцию перерисовки?
как я помню зданию нужно пол секунды чтобы повернуться
вот костыль к примеру:
function myFunc takes nothing returns nothing
    call DestroyTimer(GetExpiredTimer())
	call ShowUnit(gg_unit_hbla_0002, false)
    call ShowUnit(gg_unit_hbla_0002, true)
endfunction

function Trig_s_Actions takes nothing returns nothing
    call SetUnitFacing(gg_unit_hbla_0002, 90.)
    call TimerStart(CreateTimer(), 0.5, false, function myFunc)
endfunction
28
"чтобы перерисоваться"
здание поворачивается пол секунды)
а ShowUnit тупо перерисовка
А если убрать скрытие юнита перед раскрытием, то второе будет иметь эффект?
18
PT153, я чуть поспешил с ответом, уже исправил
то второе будет иметь эффект?
нет

вот, нашел
шучу, это более убогий вариант того что я сделал выше
21
Cделал через абилу "Пустить корни" (Aro1), как сказал Steal nerves:
function SetBuildingFacing takes unit whichBuilding, real facingAngle returns nothing
    if IsUnitType( whichBuilding, UNIT_TYPE_STRUCTURE ) and GetUnitAbilityLevel( whichBuilding, 'Aatk' ) > 0 then
        call UnitAddAbility( whichBuilding, 'Aro1' )
        call SetUnitFacing( whichBuilding, facingAngle )
        call UnitRemoveAbility( whichBuilding, 'Aro1' )
    endif
endfunction
Правда имеется какой-то баг: если применить данную функцию не на здание, то юнит лишается возможности передвигаться и атаковать.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.