Запретить выбор юнита
Есть ли способы сделать чтобы юнит не выбирался при клике?



Просмотров: 639

XGM Bot #1 - 7 месяцев назад 0
Голосов: +0 / -0
Похожие вопросы:

» ответ
Может, очищать выбор для игрока?
Событие: игрок выбирает юнита
Условие: Выбранный юнит принадлежит (Triggering Player)
Действие: очистить выбор для игрока (Triggering Player)
Как-то так примерно. Других вариантов не вижу.

agentex #2 - 7 месяцев назад 0
Голосов: +0 / -0
Может, очищать выбор для игрока?
Событие: игрок выбирает юнита
Условие: Выбранный юнит принадлежит (Triggering Player)
Действие: очистить выбор для игрока (Triggering Player)
Хреновый способ. Очистка выбора работает с задержкой и всеравно видно что он выбирается на долю секунды. Не подходит
NekoriDes #3 - 7 месяцев назад 0
Голосов: +0 / -0
Дать ему способность москиты.
Не знаю как после 1.27, но до этой версии способность нельзя найти в дефолтном редакторе, так что нужно будет установить jngp или добавить самостоятельно по ид Aloc
Bergi_Bear #4 - 7 месяцев назад 0
Голосов: +0 / -0
От контекста зависит, например на текущем патче я бы сделал так...
  1. При создании заносим юнит в переменную, юнит создаётся с москитом
  2. Далее юнита можно всегда выбирать триггерно
  3. Если надо снова начать выделять юнита, можно ловить клик мыши рядом с юнитом....
Если любой патч и нодо чтобы враг был невыделяем, например типа способность, невыделяемый и нельзя навести... например сларк в ульте, срабатывают только скилы по площади, есть 1 старый баг по возвращению выделения после москита, я его не особо помню но на форуме 3жды упоминался (мне не надо и я не запомнил)
Исходные данные: юнит не выделяем и он москит, нужно вернуть выделение
  1. Удалить москита
  2. Скрыть юнита
  3. Показать юнита
как-то так
agentex #5 - 7 месяцев назад 0
Голосов: +0 / -0
Москиты попробовал, после них его невозможно ни выбрать ни поймать через BlzGetMouseFocusUnit(), даже после отбирания москита и хайд анхайд.
Даже при EnableSelect(false, false) такого нет, и юнит под мышкой определяется триггерно.
В общем то задача в том, чтобы всегда был выбран только 1 юнит а остальные не выбирались кликом, но можно было по прежнему тригерно отловить клик на них.
Bergi_Bear #6 - 7 месяцев назад 0
Голосов: +0 / -0
В общем то задача в том, чтобы всегда был выбран только 1 юнит а остальные не выбирались кликом, но можно было по прежнему тригерно отловить клик на них
Если так то даже проще... но не всегда подойдёт, лично мне подошло
Я боролся с багом залипания левого клика, и успешно его одолел, но случайно сделал именно то, о чем ты спрашиваешь
	TimerStart(CreateTimer(), 0.01, true, function()
		-- hero - твой юнит
		ForceUIKeyBJ(GetOwningPlayer(hero),"M")
	end)
У меня юнит ходит триггерно на WASD и стандартная панель приказов на прочь убрана, так что мне это подходит
Как результат - не возможно выбрать другого юнита даже на 0,00001 сек, мельканий нет, хоть левой хоть правой жми
Hate #7 - 7 месяцев назад 0
Голосов: +0 / -0
надо возвращать селект на своего юнита после селекта другого, либо на новых нативках убирать селект абсолютно, и определять при клике юнита под мышкой
agentex #8 - 7 месяцев назад 0
Голосов: +0 / -0
У меня юнит ходит триггерно на WASD и стандартная панель приказов на прочь убрана, так что мне это подходит
Да у меня тоже на васд, но абилки и инвентарь используется.. чтобы убрать панель приказов надо все переносить на фреймы, а это месяцы работы
TimerStart(CreateTimer(), 0.01, true, function()
-- hero - твой юнит
ForceUIKeyBJ(GetOwningPlayer(hero),"M")
end)
Не сработало. И почему кстати "M"?
Bergi_Bear #9 - 7 месяцев назад 0
Голосов: +0 / -0
agentex, М а не важно что... мне главное было активировать режим нажатой клавиши, только тогда баг левого клика проходит, можно хоть атаку хоть патруль, но в твоём случае это не подойдёт, раз ты не отказался от инвентаря и панели приказов

М это приказ "Move", может у тебя у юнита нет его, так как нет вообще возможности ходить..
agentex #10 - 7 месяцев назад 0
Голосов: +0 / -0
Понятно почему не сработало тогда, у меня отключены хоткеи команд через переопределение CommandStrings.txt.
Кстати, я так понял в новых версиях нет способа убрать стандартные команды? Раньше вроде работало call SetPlayerAlliance(Player(0), Player(0), ALLIANCE_SHARED_CONTROL, false)
ScorpioT1000 #11 - 7 месяцев назад 0
Голосов: +0 / -0
В рефордже можно вообще переопределить клавиши через меню, так что это не вариант
8gabriel8 #12 - 7 месяцев назад 0
Голосов: +0 / -0
agentex, каждые 0.03 секунды таймер проверяет выбранность юнита, если да, то убирает его из выделения.
Lord_Teo #13 - 7 месяцев назад (отредактировано ) 0
Голосов: +0 / -0
Если имеем конкретного юнита, то можно сделать так:
Создаем в РО копию этого юнита, с возможностью "москиты".
Далее, триггеры:
Прикрепленные файлы
PT153 #14 - 7 месяцев назад 1
Голосов: +1 / -0
Лично я жду опцию из СК2 - выделить юнита можно, но управлять нельзя.
noyl #15 - 7 месяцев назад 0
Голосов: +0 / -0
PT153:
Лично я жду опцию из СК2 - выделить юнита можно, но управлять нельзя.
Ну уж не верю, что ты не сможешь дать юниту стража и запретить им управлять, хоть и костыльно но похоже.
8gabriel8 #16 - 7 месяцев назад 0
Голосов: +0 / -0
noyl, а Страж в Рефордже даётся триггерно?
PT153 #17 - 7 месяцев назад 0
Голосов: +0 / -0
noyl, так в СК2 это красиво сделано, кнопки есть, но они все неактивны. Страж же просто скрывает панель, ПКМ, думаю, всё ещё можно использовать. И как уже сказали, тип "вард" нельзя дать триггерно.