способность временно увеличивает магическую защиту
как мне выбрать определенных юнитов героев от применяющего юнита на local jass?

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

call GroupEnumUnitsInRange(udg_G,x,y,300.,null)
loop
set u = FirstOfGroup(udg_G)
if (тут условия отбора юнитов) then

endif
call GroupRemoveUnit(udg_G,u)
exitwhen u == null
endloop
udg_G глобальная группа
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
23
9 лет назад
0
Николь, открываешь Blizzard.j, смотришь реализацию функции и устраняешь утечки.
0
13
9 лет назад
0
GF RaiseD, пожалуйста напиши функцию которая выбирает отряд с радиусом 900 от применившего юнита без bj
и делает действия для группы, т.е всех подходящих условию юнитов,
я уже 5 часов не могу сделать;(
JNPG у меня есть
0
2
9 лет назад
0
Воспользуйся поиском. Полно материала по этому поводу.
Сегодня тебе помогут, а завтра тебе нужно будет пикнуть всех неуязвимых союзников и ты опять попросишь написать тебе код.
0
13
9 лет назад
0
kano, :\
0
25
9 лет назад
0
Ну элементарно жи делается. Приду домой, попробую разьяснить что и как делается.
0
21
9 лет назад
0
Николь, первое что придумал.
Код
local unit  u

local group YourUnits = GetUnitsInRangeOfLocAll(900,whichLocation)
local integer i = CountUnitsInGroup(YourUnits)

loop
  set u = GroupPickRandomUnit(YourUnits)
  //
  //Любые твои действия +
  //
  GroupRemoveUnitSimple(u,YourUnits)
  set i = i - 1
exitwhen  i = 0 
   call RemoveLocation (whichLocation)
   call DestroyGroup(YourUnits)
   set u = null
endloop

Как-то так. Но пока не тестил.
0
13
9 лет назад
0
Ancient, обьясни по понятней!
GF RaiseD, почему красный код GetUnitsInRangeOfLocAll это ведь не bj?
0
21
9 лет назад
0
Николь, не знаю. Не все bj - зло. Но большинство из них вызывают другие функции, к которым можно обращаться и непосредственно. Так же не все функции, которые вызывают BJ-шки нормально оптимизированы. Некоторые вызывают утечки локаций, юнитов, прочего (не обнуляют локалки/не удаляют локации/плодят локации). Потому лучше напрямую обращаться к нужному тебе и прочитать ту статью. В JNGP есть справка, в которой можно посмотреть механизм действия Bj-шок. Некоторые BJ вообще абсурдны - они представляют собой ту же функцию с обратным порядком аргументов и хоть они не всегда вызывают утечки, тут лучше обходится без лишнего.
3
29
9 лет назад
Отредактирован Кет
3
call GroupEnumUnitsInRange(udg_G,x,y,300.,null)
loop
set u = FirstOfGroup(udg_G)
if (тут условия отбора юнитов) then

endif
call GroupRemoveUnit(udg_G,u)
exitwhen u == null
endloop
udg_G глобальная группа
Принятый ответ
0
25
9 лет назад
0
16GB, а не лучше ли создавать локальную группу и в нее записать? А в глобальную в случае надобности запихивать юнитов.
0
29
9 лет назад
Отредактирован 16GB
0
Ancient,
ну глобальная уже создана, а локальную надо создавать/удалять, с глобальной быстрее.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.