Добавлен Zahanc,
опубликован
Алгоритмы, Наработки и Способности
Способ реализации:
vJass
Тип:
Алгоритм
Функция, позволяющая задать зданию угол поворота во время игры. Работает за счет какой-то внутриигровой ошибки.
Концепция: если здание переместить или скрыть, ему можно задать угол поворота, но фактически здание повернется не на заданный угол, а на предыдущий. Т. е. если попытаться повернуть здание на 180.0 градусов, а потом на 45.0, то в итоге здание будет повернуто на 180.0 градусов (если повезёт — погрешность может составлять до 30 градусов). Чтобы эту ошибку можно было использовать в одной функции, приходится использовать TriggerSleepAction.
При перемещении здания с помощью скрипта поворот сохраняется.
Функция использует рекурсию, так что осторожней с ней.
globals
constant real DIVERGENCE = 1.0
endglobals
function SetBuildingFacing takes unit whichBuilding, real angle returns nothing
local real currentUnitFacing = GetUnitFacing(whichBuilding)
call SetUnitPosition(whichBuilding, GetUnitX(whichBuilding), GetUnitY(whichBuilding))
call SetUnitFacing(whichBuilding, angle)
call TriggerSleepAction(0.01)
if (currentUnitFacing <= angle-DIVERGENCE or currentUnitFacing >= angle+DIVERGENCE) then
call SetBuildingFacing(whichBuilding, angle)
endif
endfunction
7
Holocauster
10 лет назад
7
Запили скрины и видео. Возможно тогда даже на главную (в зависимости от качества)
Этот комментарий удален
Чтобы оставить комментарий, пожалуйста, войдите на сайт.