Как триггерно создать блок. пути на тип местности для пеших юнитов?

в зависимости от задач. Можно нарисовать карту путей ссылка, и триггерно ставить невидимые декорации (блокираторы). текстуры путей нацепить можно на здания, так и на декор

ну и чисто триггерно это с помощью SetTerrainPathable, точечно каждую точку помечаешь нужным тебе флагом.
пример кода
function SetPathingRect takes rect re, pathingtype pt, boolean pathable returns nothing
    //probably this trigger won't work if you don't snap the regions to the grid

    //available pathing types
//PATHING_TYPE_ANY                 //if this is false you can't walk/build/fly on it
//PATHING_TYPE_WALKABILITY         //if this is false you can't walk on it
//PATHING_TYPE_FLYABILITY          //if this is false you can't fly on it
//PATHING_TYPE_BUILDABILITY        //if this is false you can't build on it
//PATHING_TYPE_PEONHARVESTPATHING  //don't know
//PATHING_TYPE_BLIGHTPATHING       //if this is false you can't build ziggs on it
//PATHING_TYPE_FLOATABILITY        //don't know
//PATHING_TYPE_AMPHIBIOUSPATHING   //don't know

    local real r = 32  //size of pathing blocks
    local real x = GetRectMinX(re)
    local real y
    local real x2 = GetRectMaxX(re)
    local real y2 = GetRectMaxY(re)

    loop
        exitwhen x == x2
        set y = GetRectMinY(re)
        loop
            exitwhen y == y2
            call SetTerrainPathable(x, y, pt, pathable)
            set y = y + r
        endloop
        set x = x + r
    endloop
    call RemoveRect(re)
    set re = null
    set pt = null
endfunction
`
ОЖИДАНИЕ РЕКЛАМЫ...
27
в зависимости от задач. Можно нарисовать карту путей ссылка, и триггерно ставить невидимые декорации (блокираторы). текстуры путей нацепить можно на здания, так и на декор

ну и чисто триггерно это с помощью SetTerrainPathable, точечно каждую точку помечаешь нужным тебе флагом.
пример кода
function SetPathingRect takes rect re, pathingtype pt, boolean pathable returns nothing
    //probably this trigger won't work if you don't snap the regions to the grid

    //available pathing types
//PATHING_TYPE_ANY                 //if this is false you can't walk/build/fly on it
//PATHING_TYPE_WALKABILITY         //if this is false you can't walk on it
//PATHING_TYPE_FLYABILITY          //if this is false you can't fly on it
//PATHING_TYPE_BUILDABILITY        //if this is false you can't build on it
//PATHING_TYPE_PEONHARVESTPATHING  //don't know
//PATHING_TYPE_BLIGHTPATHING       //if this is false you can't build ziggs on it
//PATHING_TYPE_FLOATABILITY        //don't know
//PATHING_TYPE_AMPHIBIOUSPATHING   //don't know

    local real r = 32  //size of pathing blocks
    local real x = GetRectMinX(re)
    local real y
    local real x2 = GetRectMaxX(re)
    local real y2 = GetRectMaxY(re)

    loop
        exitwhen x == x2
        set y = GetRectMinY(re)
        loop
            exitwhen y == y2
            call SetTerrainPathable(x, y, pt, pathable)
            set y = y + r
        endloop
        set x = x + r
    endloop
    call RemoveRect(re)
    set re = null
    set pt = null
endfunction
Принятый ответ
21
Steal nerves, сейчас не могу проверить, но можно ли одну точку сделать неWALKABILITY, но при этом BUILDABILITY? То есть повесть на одну точку несколько pathingtype одновременно?
26
ScopteRectuS, по идее нужна красная карта пути:
Конкретно по твоей формулировке вопроса не проверял, но накладывал этим способом проходимость на розовую карту пути вдоль клифов. То есть вероятно, что последняя наложенная проходимость всё решает.
21
8gabriel8, ну чтобы красную сделать нужно:
SetTerrainPathable( x, y, PATHING_TYPE_BUILDABILITY, true )
SetTerrainPathable( x, y, PATHING_TYPE_WALKABILITY, false )
SetTerrainPathable( x, y, PATHING_TYPE_FLYABILITY, false )
Но будут ли работать все 3, или только последняя.
27
ScopteRectuS, можно одновременно несколько флагов задать точке

это можно легко проверить. берете здание, там указываете в требование пути:
"Пути - расположение мешает" или "Пути - требование к расположению"
триггером помечаешь точку, потом пытайте прощупать землю. При постройке указываете здание, у вас будет помечано красным или зеленым. Это более точно помогает, тк эти точки невидимы. В своей карте мне помогает, до этого столько ляпов наделал полагаясь на логику.
делаете 3 разных здания с разными требованиями, и смотрите поочередно. Это работает норм.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.