Задал вопрос про возвращение юнитов на позиции, но ещё не проверял его в действии. Там ответ был с удалением позиции охраны в виде CS такой:
call RemoveGuardPosition (u)
А есть ли функция на установку GuardPosition юнита в указанную точку, типа SetGuardPosition? Если да, то как на CS выглядит?
И есть ли функция на получение GuardPosition у юнита, который отбежал с места, типа GetGuardPosition? Например, подошёл герой к юнитам, они на него напали, он их оскорбил, получаем их GuardPosition'ы, отдаём приказ атаковать, через 5 секунд отдаём приказ stop и возвращаем старые GuardPosition'ы.

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

Это и есть SetUnitPosition( unut, x, y ) у вас в гуях это есть MoveUnitInstanty в разлеле юнит...
`
ОЖИДАНИЕ РЕКЛАМЫ...
2
32
6 лет назад
2
Есть, SetUnitPosition
0
26
6 лет назад
0
Можно пример CS?
0
32
6 лет назад
0
Это и есть SetUnitPosition( unut, x, y ) у вас в гуях это есть MoveUnitInstanty в разлеле юнит...
Принятый ответ
0
26
6 лет назад
0
Не, это не то. Нужна точка, в которую юнит возвращается, если далеко отбежит.
0
32
6 лет назад
0
Он вернутся в эту точку, если его туда переместить этой функуией, другие способы перемещения на это не влияют.
0
27
6 лет назад
0
8gabriel8, эта же функция точно делает невозрат юнита к точке? давно-давно тестил. у меня нейтралы на нее болт кладут, и всегда возращаются.
раскрыть
native RemoveGuardPosition takes unit hUnit returns nothing //юнит становится неподконтрольным ИИ-командам
native RemoveAllGuardPositions takes player num returns nothing //все юниты игрока становятся неподконтрольным
native RecycleGuardPosition takes unit hUnit returns nothing //возвращает контроль ИИ
native SetUnitCreepGuard(targ,true) //включает/выключается контроль (здесь указаны creep, значит ли что нейтралы ?)
функцией RemoveGuardPosition вырубить нельзя это. Мне кажется ничего не делает она, эта функция полезна на юнитах игроков 0-11, где включен скрипт ИИ. Тестил.
что она делает? отбирает контроль у ИИ-скриптов. Типа он будет стоять и ничего не делать. А у тех юнитов, что включены скрипты, они будут слушаться команды ИИ.
0
16
6 лет назад
0
возможно, обнулять можно только вручную выданные точки?
игра сканирует нейтралов по таймеру и проверяет дальность от точки спавна/охраны. Если далеко, то таймер через х секунд дает приказ вернуться
2
26
6 лет назад
Отредактирован 8gabriel8
2
Спасибо всем за ответы, но сегодня уже слишком поздно, чтобы всё проверить. Чего-то слишком много сегодня попросили помочь с триггерными заклинаниями.

Он вернутся в эту точку, если его туда переместить этой функуией, другие способы перемещения на это не влияют.
Вот как этим воспользоваться? Пусть перемещу юнита на мгновение в нужную точку через MoveUnitInstanty, а потом обратно через MoveUnitInstanty, он же не побежит в предыдущую точку, так как уже новую обрёл)

На самом деле есть идея. Даже без подключения ИИ можно сделать:
call RecycleGuardPosition( u )

Вот триггер:
Мгновенное перемещение срабатывает вне времени, то есть координаты устанавливаются без ожидания 0.01 секунды. Нормально вроде работает для второго игрока-Компьютера, проверять нейтральных или не объявленных игроков лень, строчить статью тоже. Но если кто найдёт эту информацию, тот молодец, а если она ещё и пригодится, то счастливчик!

Но это по сути SetGuardPosition, а вот с GetGuardPosition пока нет идей, жаль.
Загруженные файлы
Чтобы оставить комментарий, пожалуйста, войдите на сайт.