Доброго времени суток.
Такой вопрос - как скрыть карту приказов у определенного юнита? То-есть чтобы его можно было контролировать триггерами, а игроку нельзя было. То-бишь как в кастл-файте у бегающих из зданий юнитов сделано. Изначально юнит должен быть управляем игроком, но уже в игре он, используя скилл, временно лишается управления игроком.

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

Про стража мне известно. Но тут такая пробелма - мой юнит изначально контроллируемый, но в процессе игры он может заюзать скилл, который сделает его на время неуправляемым. Извиняюсь, что забыл дописать это в вопрос сразу.
Пока сам ковырялся нашёл такой способ (работает только для одного типа юнитов):
"Создается юнит и его копия в РО. У копии дается классификация "страж", а в игре с помощью перевоплощения я превращаю исходного юнита в юнита-копию, у которого скрыта карта приказов. Таким образом я могу временно потерять над юнитом контроль (по плану взамен дать ему временный бафф)."
Нашёл решение в этой статье - xgm.guru/p/wc3/powerups
В любом случае - спасибо всем отписавшимся!
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
19
6 лет назад
0
Похожие вопросы:

ответ
Пассивки в книге заклинаний работают, даже если запретить доступность самой книги для игрока.Так что да.
ответ
без мемхака - нет
ответ
Оба файла удаляются, потому что ты импортируешь их в карту через программу и не добавляешь данные о файлах в файл импорта(war3map.imp). При сохранении карты в редакторе архив пересобирается, и в него добавляются сторонние файлы, которые сохранены в том самом файле импорта. Поэтому используй стандартный менеджер импорта в редакторе.

2
18
6 лет назад
Отредактирован Maniac_91
2
Как убрать у воина все его способности и обездвижить?
Страж (ward)
Если классификация боевой единицы – Страж, исчезнет его карта команд и способности. Помимо этого, никаких изменений с воином не произойдет. Однако у боевой единицы все еще останется возможность выполнять приказ правой кнопкой мыши. Если же Вы хотите заблокировать и перемещение боевой единицы, используйте следующий код:
function Catch_Order_Actions takes nothing returns nothing
  if GetIssuedOrderId() == OrderId("smart") then
    call PauseUnit(GetOrderedUnit(), true)
    call IssueImmediateOrder(GetOrderedUnit(), "stop")
    call PauseUnit(GetOrderedUnit(), false)
  endif
endfunction

function Catch_Order takes nothing returns nothing
  local trigger t = CreateTrigger()
  call TriggerRegisterUnitEvent(t, gg_unit_hpea_0006, EVENT_UNIT_ISSUED_TARGET_ORDER)
  call TriggerRegisterUnitEvent(t, gg_unit_hpea_0006, EVENT_UNIT_ISSUED_POINT_ORDER)
  call TriggerAddAction(t, function Catch_Order_Actions)
endfunction
Ну или отдать другому игроку, только там с ИИ могут быть проблемы.
0
19
6 лет назад
0
Maniac_91, можешь объяснить как действует код, я понял его немного, но не до конца..
Я просто чайник
1
29
6 лет назад
1
KaneThaumaturge:
Maniac_91, можешь объяснить как действует код, я понял его немного, но не до конца..
Я просто чайник
function Catch_Order_Actions takes nothing returns nothing
  if GetIssuedOrderId() == OrderId("smart") then // если приказ "клик мыши", то
    call PauseUnit(GetOrderedUnit(), true)  // паузим юнита
    call IssueImmediateOrder(GetOrderedUnit(), "stop") // даем приказ стоп
    call PauseUnit(GetOrderedUnit(), false)  // анпаузим юнита
  endif
endfunction

function Catch_Order takes nothing returns nothing
  local trigger t = CreateTrigger()
  call TriggerRegisterUnitEvent(t, gg_unit_hpea_0006, EVENT_UNIT_ISSUED_TARGET_ORDER) // регистрируем событие отдачи приказа по объекту для юнита gg_unit_hpea_0006 
  call TriggerRegisterUnitEvent(t, gg_unit_hpea_0006, EVENT_UNIT_ISSUED_POINT_ORDER) // регистрируем событие отдачи приказа по точке на карте для юнита gg_unit_hpea_0006 
  call TriggerAddAction(t, function Catch_Order_Actions) // добавляем действие в виде функции Catch_Order_Actions
endfunction
Вообще лучше приказы хранить в массиве структур, тк может такое случиться, что юнит куда-то шел, а потом приказ сбрасывается из-за вмешательства игрока, а до срабатывания ИИ таймера времени прилично
0
19
6 лет назад
0
Msey, спасибо большое.
Msey, gg_unit_hpea_0006 - это id типа боевой еденицы?
0
32
6 лет назад
0
Ну еще мемхаком можно.
0
7
6 лет назад
Отредактирован Freezeeee
0
Про стража мне известно. Но тут такая пробелма - мой юнит изначально контроллируемый, но в процессе игры он может заюзать скилл, который сделает его на время неуправляемым. Извиняюсь, что забыл дописать это в вопрос сразу.
Пока сам ковырялся нашёл такой способ (работает только для одного типа юнитов):
"Создается юнит и его копия в РО. У копии дается классификация "страж", а в игре с помощью перевоплощения я превращаю исходного юнита в юнита-копию, у которого скрыта карта приказов. Таким образом я могу временно потерять над юнитом контроль (по плану взамен дать ему временный бафф)."
Нашёл решение в этой статье - xgm.guru/p/wc3/powerups
В любом случае - спасибо всем отписавшимся!
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.