Здравствуйте, уважаемые знатоки World Editorа третьего Варкрафта. Очень нужна ваша помощь.
Как сделать так, чтобы юнит, подходя к границе карты мгновенно оказывался возле другой, но так, чтобы появился именно на той координате, на какой был подходя к границе карты (Знаю, легко запутаться в этом вопросе). То есть, если, скажем, юнит подходит к углу левой границы карты, он мгновенно перемещается к углу правой границы карты.
Поиск по триггерам не принес должного результата. Из всех действий, на перемещение годиться лишь Боевая единица - Move, но там перемещение либо к центру региона, либо к рандомной точке региона.

ну вот смотрите
function MirrorCoords takes unit a returns nothing
        local real x_a = GetUnitX(a)
        local real y_a = GetUnitY(a)
        local real x
        local real y

            if x_a  < 0. then
                set x = RAbsBJ(x_a)
            else
                set x = x_a - (x_a + x_a)
            endif
            
            if y_a < 0. then
                set y = RAbsBJ(y_a)
            else
                set y = y_a - (y_a + y_a)
            endif
            
            call SetUnitX(a, x)
            call SetUnitY(a, y)
    endfunction
во первых .проверяем на ось Х, если меньше 0, то конвертируем функцией в противоположное значение, функция Absolute в гуи, иначе просто уменьшаем х на двойное значение самого себя
тоже самое по оси У
а затем просто присваиваем данные координаты
в гуи будет слишком криво, поэтому лучше скопируйте в шапку карты и вызывайте через кастом скрипт при покидании игрового региона
call MirrorCoords(GetTriggerUnit())
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
27
можно относительно центра области считывать. Кстати есть функции макс. и мин. высоту и макс. и мин. ширину, то по этим можно углы областей найти
кстати можно использовать порталы, и можно триггерно назначать куда телепортнуть. Преимущество - у юнита составляет маршрут, типа кликаешь в нужную точку и он сам дойдет до телепорта и доберется куда надо.
3
Steal nerves:
можно относительно центра области считывать. Кстати есть функции макс. и мин. высоту и макс. и мин. ширину, то по этим можно углы областей найти
кстати можно использовать порталы, и можно триггерно назначать куда телепортнуть. Преимущество - у юнита составляет маршрут, типа кликаешь в нужную точку и он сам дойдет до телепорта и доберется куда надо.
Тогда нарушится атмосфера карты. Я же делаю карту по мотивам этапа Цивилизации из игры Spore
26
ну вот смотрите
function MirrorCoords takes unit a returns nothing
        local real x_a = GetUnitX(a)
        local real y_a = GetUnitY(a)
        local real x
        local real y

            if x_a  < 0. then
                set x = RAbsBJ(x_a)
            else
                set x = x_a - (x_a + x_a)
            endif
            
            if y_a < 0. then
                set y = RAbsBJ(y_a)
            else
                set y = y_a - (y_a + y_a)
            endif
            
            call SetUnitX(a, x)
            call SetUnitY(a, y)
    endfunction
во первых .проверяем на ось Х, если меньше 0, то конвертируем функцией в противоположное значение, функция Absolute в гуи, иначе просто уменьшаем х на двойное значение самого себя
тоже самое по оси У
а затем просто присваиваем данные координаты
в гуи будет слишком криво, поэтому лучше скопируйте в шапку карты и вызывайте через кастом скрипт при покидании игрового региона
call MirrorCoords(GetTriggerUnit())
Принятый ответ
3
function MirrorCoords takes unit a returns nothing
local real x_a = GetUnitX(a)
local real y_a = GetUnitY(a)
local real x
local real y
if x_a < 0. then
set x = RAbsBJ(x_a)
else
set x = x_a - (x_a + x_a)
endif

if y_a < 0. then
set y = RAbsBJ(y_a)
else
set y = y_a - (y_a + y_a)
endif

call SetUnitX(a, x)
call SetUnitY(a, y)
endfunction
Это, я так понимаю, jass? Если да, то самое время мне научиться им пользоваться. А так, спасибо
18
Вот рабочий пример на GUI с использованием Custom Script. В одном триггере. Центр карты должен быть с координатами 0;0, а области расположены симметрично.
Тапками не кидайте, делал по-быстрому)
Загруженные файлы
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.