способность временно увеличивает магическую защиту
как мне выбрать определенных юнитов героев от применяющего юнита на 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
13
9 лет назад
0
kano, они и правду утечку выщывает по моему опыту
0
21
9 лет назад
0
Николь, вот статейка.
В остальном согласен с SomeFire и alexprey. Установи JNPG - там есть справка по всем функциям. Заодно поймёшь что такое BJ и что конкретно представляют собой те утечки, о которых все говорят.
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 глобальная группа
Принятый ответ
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.