Здравствуйте! мне нужно использовать юнита как снаряд(некликабельный, но выбирался через триггеры "добавить юнитов в отряд по области") как это можно реализовать? я читал что можно через москиты, но в итоге у меня получалось только вернуть юнита в прежнюю форму (с хп баром, кликабельностью)

//call GroupEnumUnitsInRange(g, x, y, 400., f) //ловит всех юнитов, находящихся в радиусе от точке, но москитов не ловит
//call GroupEnumUnitsInRangeCounted(g, x, y, 400., f, 4) //аналогична GroupEnumUnitsInRange, но берет определенное кол-во юнитов. Москитов не ловит
//call GroupEnumUnitsInRangeOfLoc(g, loc,400., f) //аналогична GroupEnumUnitsInRange. Москитов не ловит.
//call GroupEnumUnitsInRangeOfLocCounted(g, loc,400., f, 4) //аналогична GroupEnumUnitsInRangeCounted. Москитов не ловит.
//call GroupEnumUnitsInRect(g,bj_mapInitialPlayableArea ,f1) //ловит всех юнитов в области. Москитов не ловит.
//call GroupEnumUnitsInRectCounted(g,bj_mapInitialPlayableArea ,f1, 4) //ловит определенное кол-во юнитов в области. Москитов не ловит. 
//call GroupEnumUnitsSelected(g,GetTriggerPlayer(),f) //ловит юнитов. выделенным игроком. Москитов. очевидно. не ловит.
call GroupEnumUnitsOfPlayer(g,GetTriggerPlayer(),f1) //ловит всех-всех юнитов игрока на карте. Москитов ловит нормально.
//call GroupEnumUnitsOfType(g,"Peasant", f) //ловит всех-всех юнитов с этим именем. Нужно писать английский аналог название (например работник = Peasant). Ловит москитов.
//call GroupEnumUnitsOfTypeCounted(g,"Peasant", f, 4) //ловит опреденное кол-во юнитов группу. Ловит Москитов.
Если вам нужно столкновение снарядов, то можете посмотреть в этом заклинании.
стоит стена (стена может двигаться, она может быть любого типа, она тоже москит) в нее ударяется снаряд
Добавляете стену в группу и при переборе сверяете расстояние.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
30
//call GroupEnumUnitsInRange(g, x, y, 400., f) //ловит всех юнитов, находящихся в радиусе от точке, но москитов не ловит
//call GroupEnumUnitsInRangeCounted(g, x, y, 400., f, 4) //аналогична GroupEnumUnitsInRange, но берет определенное кол-во юнитов. Москитов не ловит
//call GroupEnumUnitsInRangeOfLoc(g, loc,400., f) //аналогична GroupEnumUnitsInRange. Москитов не ловит.
//call GroupEnumUnitsInRangeOfLocCounted(g, loc,400., f, 4) //аналогична GroupEnumUnitsInRangeCounted. Москитов не ловит.
//call GroupEnumUnitsInRect(g,bj_mapInitialPlayableArea ,f1) //ловит всех юнитов в области. Москитов не ловит.
//call GroupEnumUnitsInRectCounted(g,bj_mapInitialPlayableArea ,f1, 4) //ловит определенное кол-во юнитов в области. Москитов не ловит. 
//call GroupEnumUnitsSelected(g,GetTriggerPlayer(),f) //ловит юнитов. выделенным игроком. Москитов. очевидно. не ловит.
call GroupEnumUnitsOfPlayer(g,GetTriggerPlayer(),f1) //ловит всех-всех юнитов игрока на карте. Москитов ловит нормально.
//call GroupEnumUnitsOfType(g,"Peasant", f) //ловит всех-всех юнитов с этим именем. Нужно писать английский аналог название (например работник = Peasant). Ловит москитов.
//call GroupEnumUnitsOfTypeCounted(g,"Peasant", f, 4) //ловит опреденное кол-во юнитов группу. Ловит Москитов.
Если вам нужно столкновение снарядов, то можете посмотреть в этом заклинании.
стоит стена (стена может двигаться, она может быть любого типа, она тоже москит) в нее ударяется снаряд
Добавляете стену в группу и при переборе сверяете расстояние.
Принятый ответ
9
NazarPunk, юнит не должен иметь хп бар + некликабельный вообще и выбирался в отряд по области
NazarPunk, я думал о этом, но мне кажется это сильно напрягает процессор т.к. снарядов будет от 1 до 10, так же мне приходило в голову сделать сами модельки некликабельными, но это уже совсем еще тот гемор
26
antonpoganui:
8gabriel8, москиты не выбираются через команду "выбрать юнитов по области в отряд" - единственная проблема
Как уже заметил NazarPunk, заноси созданных Москитов сразу в отряд, чтобы с ним работать. Ещё можешь выбирать без области, а просто всех юнитов игрока такого-то типа, так выбираются Москиты.
вроде
30
юнит не должен иметь хп бар + некликабельный вообще и выбирался в отряд по области
Самый надёжный способ - москиты, но по области они не выбираются.
antonpoganui:
но мне кажется это сильно напрягает процессор
Чтоб не напрягался процессор, используйте оптимизации. Иного выбора нет.
8gabriel8:
Ещё можешь выбирать без области, а просто всех юнитов игрока такого-то типа, так выбираются Москиты.
call GroupEnumUnitsOfPlayer(g,GetTriggerPlayer(),f1) //ловит всех-всех юнитов игрока на карте. Москитов ловит нормально.
9
NazarPunk, у меня есть вариант с темным, только боюсь ошибок, ведь говорят что способность баганая. Пример: выбрать все снаряды (отряд), потом забрать у них темный (москиты), выбрать отряд по области, а потом сново дать темный.
30
antonpoganui, что вы так к отряду по области привязались, сравнить расстояние религия не позволяет?
function DistanceBetweenWidgets takes widget widgetA, widget widgetB returns real
    local real dx = GetWidgetX(widgetB) - GetWidgetX(widgetA)
    local real dy = GetWidgetY(widgetB) - GetWidgetY(widgetA)
    return SquareRoot(dx * dx + dy * dy)
endfunction
9
NazarPunk, ну снарядов могут быть множество, а jass мне сложно дается
26
antonpoganui, если у тебя калькулятор тянет больше, чем WinXP, то не переживай за нагрузку на процессор.
30
ну снарядов могут быть множество
Мы тут недавно плодили по 700+ снарядов без проседания fps.
а jass мне сложно дается
Так переходите на lua. На гуи вы больше утечек наплодите.
9
NazarPunk, кратко говоря я не могу перейти на Jass из-за своих недостатков, а что насчет нагрузки, то у меня уже лагает после создания 100-200 юнитов в зависимости от модельки
28
antonpoganui, сделать его неуязвимым и без модели. Выделятся не будет, но зато будет попадать в группы через GroupEnumUnits..().
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.