XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
MpW

offline
Опыт: 50,203
Активность:
Что такое фильтр?
Я слышал что то про это от джаззеров, я еще где то видел, кажется в событии, для чего он нужен? и что он делает?

Код:
function AntiLeaker takes nothing returns boolean
    return true
endfunction

//===========================================================================
function InitTrig_Frozen_Blast takes nothing returns nothing
    local trigger t = CreateTrigger( )
    local filterfunc f = Filter(function AntiLeaker)
    local integer i = 0
    loop
        call TriggerRegisterPlayerUnitEvent(t, Player(i), EVENT_PLAYER_UNIT_SPELL_EFFECT, f)
        set i = i + 1
        exitwhen i == 16
    endloop
    call TriggerAddCondition(t, Condition( function Trig_Blast_Conditions ) )
    call TriggerAddAction(t, function Trig_Blast_Actions )
    call DestroyFilter(f)
    set f = null
    set t = null
endfunction
Старый 11.06.2011, 03:22
Helpmeplz

offline
Опыт: 11,698
Активность:
например фильтрует юнитов при пике группы
аналогичен Condition(), т.е. преобразует boolean-функцию в условие
Старый 11.06.2011, 03:39
MpW

offline
Опыт: 50,203
Активность:
Helpmeplz, а несколько примеров показать можешь? не совсем понятно зачем это? можно через кучу условии прокрутить
Старый 11.06.2011, 03:50
Helpmeplz

offline
Опыт: 11,698
Активность:
Стандартные ситуации.
Код:
function B takes nothing returns boolean
return GetWidgetLife(GetFilterUnit())>0
endfunction

function A takes nothing returns nothing
call GroupEnumUnitsInRange(g,x,y,350.,Filter(function B))
endfunction

Код:
function B takes nothing returns boolean
return GetWidgetLife(GetTriggerUnit())>0
endfunction

function A takes nothing returns nothing
call TriggerAddCondition(t,Filter(function B))
endfunction

Значительной разницы между Filter() и Condition() нет. По крайней мере, я не видел что бы кто-то это внятно разъяснял. Даже если что-то там утекает, не удаляется, не обнуляется - это все мелочи.

Отредактировано Helpmeplz, 11.06.2011 в 04:15.
Старый 11.06.2011, 04:03
alexprey
познающий Unity
offline
Опыт: 66,701
Активность:
Вроде эту тему уже обсуждали на форуме, и пришли к такому выводу, что функция фильтр, была введена близами, но они её так и не доделали (предполагалось, что у неё будет больший функционал). Ну а так они равносильны
Старый 11.06.2011, 08:35
Doc

offline
Опыт: 61,963
Активность:
Helpmeplz, это плохой пример, переменная должна быть глобалкой, иначе каждый раз создается фильтр.
Старый 11.06.2011, 10:04
DioD

offline
Опыт: 45,184
Активность:
Filter(function A) == Condition(function A)

делайте выводы.
Старый 11.06.2011, 19:21
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 23:53.