XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Барахолка
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
Zahanc

offline
Опыт: 22,977
Активность:
Динамический поворот зданий
Функция, позволяющая задать зданию угол поворота во время игры. Работает за счет какой-то внутриигровой ошибки.
Концепция: если здание переместить или скрыть, ему можно задать угол поворота, но фактически здание повернется не на заданный угол, а на предыдущий. Т. е. если попытаться повернуть здание на 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
Прикрепленные файлы
Тип файла: w3x buildingfacing.w3x (13.8 Кбайт, 13 просмотров )

Отредактировано bladget, 20.04.2014 в 20:04.
Старый 20.04.2014, 14:24
Extremator

offline
Опыт: 40,273
Активность:
Я делал иначе...
просто двигал здание с изменение угла поворота
двигал туда, где оно и стояло
а угол - от туда где было здание, до точки куда юзнулся скилл (поворачивал скиллом, типа "повернуть здание")
Старый 20.04.2014, 17:07
Zahanc

offline
Опыт: 22,977
Активность:
а угол - от туда где было здание, до точки куда юзнулся скилл (поворачивал скиллом, типа "повернуть здание")
Т. е. угол корректно вычислялся с первого раза?
bladget добавил:
+
В смысле здание поворачивалось ровно на столько, насколько нужно?
Старый 20.04.2014, 17:20
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 04:46.