Здрастувуйте подскажите как сделать чтобы рядом с главным зданиям уже был проклятый рудник как у нежити только ругой модели

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

Есть такая функция MeleeFindNearestMine
function MeleeFindNearestMine takes location src, real range returns unit
    local group nearbyMines

    set bj_meleeNearestMine = null
    set bj_meleeNearestMineDist = -1
    set bj_meleeNearestMineToLoc = src

    set nearbyMines = CreateGroup()
    call GroupEnumUnitsInRangeOfLoc(nearbyMines, src, range, null)
    call ForGroup(nearbyMines, function MeleeEnumFindNearestMine)
    call DestroyGroup(nearbyMines)

    return bj_meleeNearestMine
endfunction
В мили вызывается так.
MeleeFindNearestMine(startLoc, bj_MELEE_MINE_SEARCH_RADIUS)
startLoc - точка стартовой локации игрока.
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
19
3 года назад
0
Похожие вопросы:

ответ
Проблема в том, что, если в этой точке построено здание, то IsTerrainPathable(x, y, PATHING_TYPE_BUILDABILITY) не помогает (это терраин проверяет, а вот то что там построено или нет ему пофиг). Посмотрел в триггерах, есть только текстуры земли - уберспласты (там эти текстурки для здания) - нет функции такой в библиотеке jngp для проверки точки. Пробовал через группу, но там своя заминка (походу выборка ловит тех юнитов, точки которых попали в выборку, а не на целиком. Точно не проверял, но не работает с группой),
Clamp, решил через проверку
if (IssueBuildOrderById(YT, 'hhou', x, y) == false) then если не может построить, значит там здание или что-нибудь еще.
Clamp, помог еще твоя ссылка ExecuteFunc. видимо у меня лимит был, не хотело работать (просто дебаг не отобрал. и раб стоял). Хотя это уже не нужно было
А да слегка подвисает на секунду =(
Урра короче без лагов сделал (версия 3), подредактировать недоработку и будет норм
ответ
Верни стандартную функцию создания стартовых юнитов, поставь игровую паузу, замени всех юнитов на свои аналоги, возобнови игру (я так же дополнительно прячу всех юнитов на этот период). Не забудь удалить все проклятые/оплетённые рудники, если нужно. Чтобы заново оплести рудник после замены юнитов (если заменял древа жизни), используй триггер "Боевая единица - (приказ без цели) Оплести ближайший рудник" (перед оплетением поставь паузу 0.1 секунды чтобы после удаления успел заново появится оригинальный рудник).

0
28
3 года назад
0
Берёшь и заменяешь ближайший рудник на нужный. Так для нежити и делается.
0
1
3 года назад
0
PT153, скажи как через тригеры?
0
26
3 года назад
0
vlad777:
как через тригеры?
Надо раскрыть функцию спавна андедов и посмотреть каким именно образом там меняется здание (рудник) и что делается попутно. А так вообще думаю тебе хватит простой замены юнита, через реплейс (есть такая функция - замена юнита с сохранением параметров хп/мп)
0
28
3 года назад
0
Есть такая функция MeleeFindNearestMine
function MeleeFindNearestMine takes location src, real range returns unit
    local group nearbyMines

    set bj_meleeNearestMine = null
    set bj_meleeNearestMineDist = -1
    set bj_meleeNearestMineToLoc = src

    set nearbyMines = CreateGroup()
    call GroupEnumUnitsInRangeOfLoc(nearbyMines, src, range, null)
    call ForGroup(nearbyMines, function MeleeEnumFindNearestMine)
    call DestroyGroup(nearbyMines)

    return bj_meleeNearestMine
endfunction
В мили вызывается так.
MeleeFindNearestMine(startLoc, bj_MELEE_MINE_SEARCH_RADIUS)
startLoc - точка стартовой локации игрока.
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.