Накидал ситемку WASD, но не могу понять что нужно добавить чтоб юнит не тыкался в объекты и не заедал.

Принятый ответ

но не ясно как использовать TempPoint там.
call SetUnitPositionSmooth(udg_Tanks[udg_WASD_PN], GetLocationX(udg_TempPoint[1]), GetLocationY(udg_TempPoint[1]))
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
29
7 месяцев назад
0
0
8
7 месяцев назад
0
function SetUnitPositionSmooth takes unit source, real x, real y returns nothing
    local real last_x = GetUnitX(source)
    local real last_y = GetUnitY(source)
    local boolean bx
    local boolean by

    call SetUnitPosition(source, x, y)

    if (RAbsBJ(GetUnitX(source) - x) > 0.5) or (RAbsBJ(GetUnitY(source) - y) > 0.5) then
        
        call SetUnitPosition(source, x, last_y)
        set bx = RAbsBJ(GetUnitX(source) - x) <= 0.5
        call SetUnitPosition(source, last_x, y)
        set by = RAbsBJ(GetUnitY(source) - y) <= 0.5
        
        if bx then
            call SetUnitPosition(source, x, last_y)
        elseif by then
            call SetUnitPosition(source, last_x, y)
        else
            call SetUnitPosition(source, last_x, last_y)
        endif

    endif
endfunction
и как правильно использовать?

"source" я как понял это юнит?
0
29
7 месяцев назад
0
"source" я как понял это юнит?
Там же написано:
unit source

и как правильно использовать?
call SetUnitPositionSmooth(myUnit, newX, newY)
0
8
7 месяцев назад
0
call SetUnitPositionSmooth(myUnit, newX, newY)
куда вписывать?
0
29
7 месяцев назад
0
куда вписывать?
Туда, где ты устанавливаешь новую позицию для юнита.
0
8
7 месяцев назад
0
nazarpunk, туда где я на скриншоте показал?

nazarpunk, я не понимаю что в этом коде вообще указано.
0
29
7 месяцев назад
0
туда где я на скриншоте показал?
Туда, где ты позиционируешь юнита при каждом тике таймера.
я не понимаю что в этом коде вообще указано.
Функция, которая позиционирует юнита таким образом, что он не утыкается в преграды.
0
8
7 месяцев назад
0
nazarpunk, тоесть нужно новую систему писать на Jass чтобы вставить эту?
0
29
7 месяцев назад
0
тоесть нужно новую систему писать на Jass чтобы вставить эту?
Нет, нужно найти в твоей системе то место, где ты позиционируешь юнита и заменить SetUnitPosition на SetUnitPositionSmooth.
0
29
7 месяцев назад
0
Если я правильно понял гуй-муй, то это место здесь.
Загруженные файлы
0
8
7 месяцев назад
0
nazarpunk, но у меня богомерзкое гуи там.

jasonrus96, это я понят , можно как-то через кастом скрипт добавить но не ясно как использовать TempPoint там.
1
29
7 месяцев назад
Отредактирован nazarpunk
1
но не ясно как использовать TempPoint там.
call SetUnitPositionSmooth(udg_Tanks[udg_WASD_PN], GetLocationX(udg_TempPoint[1]), GetLocationY(udg_TempPoint[1]))
Принятый ответ
0
8
7 месяцев назад
0
nazarpunk, довольно интересно получается, я и забыл что там есть скобки редко с XY работаю но теперь все ясно спасибо)
Чтобы оставить комментарий, пожалуйста, войдите на сайт.