Добавлен N1ghtSiren
Как работает функция(или что это такое) Filter?
Копнув, нашёл такие вот конструкции:
Копнув, нашёл такие вот конструкции:
call TriggerAddCondition(xIx,Filter(function UVo))
//или
function vlx takes nothing returns boolean
return true
endfunction
set vdx=Filter(function vlx)
Хотелось бы узнать что они делают и как это можно использовать
Принятый ответ
ну это условие. отличие в том, что с помощью этих фильтров можно отсеивать не нужных юнитов, игроков, итемов, декорации. даже в регистре событии можно указать на каких-юнитов не может срабатывать. вот пример, вы выбираете через нативку EnumGroup юнитов, и вам нужно отсеять не нужных юнитов, и подобрать нужных. Например, нужно вражеский герой:
function A takes nothing returns boolean
return IsUnitType(GetFilterUnit(), UNIT_TYPE_HERO) and IsUnitEnemy(GetFilterUnit(), Player(0))
endfunction
local boolexpr b = Condition(function A)
call GroupEnumUnitsInRange(g, x, y, 900, b)
в группу добавляются только герои. тут с логическими условиями работать надо, составляя конструкции (условие 1) и/или (условие 2). Например, нужно вражеский герои либо здание. и так далее
хотя здесь фильтр и условие ничем не отличаются. когда юниты добавляются в группу через GroupEnumUnitsInRange, тут стоит фильтр. Если вернет true пропускает, а false отсеивает, удаляет. Здесь точно также как условие триггера
событие - активировал абилу
условие - id абилы == "..." <= точно также
раньше почему думал что там цикл. что берет всю группу перебирает всех и фильтрует. это не точно. это самый настоящий фильтр.
событие - активировал абилу
условие - id абилы == "..." <= точно также
раньше почему думал что там цикл. что берет всю группу перебирает всех и фильтрует. это не точно. это самый настоящий фильтр.
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован PT153
Отредактирован MpW
событие - активировал абилу
условие - id абилы == "..." <= точно также
раньше почему думал что там цикл. что берет всю группу перебирает всех и фильтрует. это не точно. это самый настоящий фильтр.
Отредактирован PT153
Вот один из примеров, как я их использую. Отсеиваю ненужных в фильтре и там же выполняю необходимые действия. Так как возвращаемый тип nothing, то фильтр всегда возвращает 0, что является ложью, и потому никто в группу не добавляется.
ну это понятно, главное вернуть boolean (условие), ааа у тебя filter ничего не возвращает (nothing) как это возможно. Но мне пишет одну и ту же ошибку, что нельзя конверкнуть в ...
ладно забейте. не так важно это
Отредактирован PT153
У меня пишет ошибку несоответствия типов (cannot convert code to boolexpr) только там, где я передаю code как аргумент, а не прямую ссылку на функцию.
Код ниже.