Добрый день.распишите пожалуйста эту строчку
return IsPlayerEnemy(GetOwningPlayer(GetFilterUnit()),GetOwningPlayer(GetEnumUnit())) and GetUnitAbilityLevel(GetFilterUnit(),'Aloc(Москиты)')==0

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

Вывод из всех комментов- строку объяснять незачем. Она ужасна написана.Переделай

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
3
32
7 лет назад
Отредактирован quq_CCCP
3
Похоже на фильтр, который писал не далекий человек, нет проверки жив ли Юнит, враг или нет проверяется функцией IsUnitEnemy, на москитов никогда не проверяют, они не попадают в группы при пике Юнитов в области. Для передачи в фильтр игрока низя юзать Get EnumUnit, вместо этого используется глобальная переменная...
0
5
7 лет назад
Отредактирован keks_090
0
quq_CCCP:
Похоже на фильтр, который писал не далекий человек, нет проверки жив ли Юнит, враг или нет проверяется функцией IsUnitEnemy, на москитов никогда не проверяют, они не попадают в группы при пике Юнитов в области. Для передачи в фильтр игрока низя юзать Get EnumUnit, вместо этого используется глобальная переменная...
Я кидал строчку для разборки не совсем было понятно и все ли верно сделано, проверку сделаю,
а так вот полный код на каст скила компом(Всё работает), но надо ли что-нибудь изменить?):
function Trig_LVL2CastSpells_f1 takes nothing returns boolean
    return GetUnitAbilityLevel(GetFilterUnit(),'Aslo')==1
endfunction

function Trig_LVL2CastSpells_f3 takes nothing returns boolean
    return IsPlayerEnemy(GetOwningPlayer(GetFilterUnit()),GetOwningPlayer(GetEnumUnit())) and GetUnitAbilityLevel(GetFilterUnit(),'Aloc')==0
endfunction

function Trig_LVL2CastSpells_f2 takes nothing returns nothing
    local group g=CreateGroup()
    local unit u=GetEnumUnit()
    local unit u2
    local boolexpr be=Condition(function Trig_LVL2CastSpells_f3)
    //set udg_TempUnit=u
    call GroupEnumUnitsInRange(g,GetUnitX(u),GetUnitY(u),800.,be)
    call DestroyBoolExpr(be)
    set u2=GroupPickRandomUnit(g)
    if u2!=null  and GetUnitState(u,UNIT_STATE_MANA)>=50. then
      call IssueTargetOrder(u,"slow",u2)
    endif
    call DestroyGroup(g)
    set g=null
    set u=null
    set u2=null
endfunction

function Trig_LVL2CastSpells_Actions takes nothing returns nothing
    local group g=CreateGroup()
    local boolexpr be=Condition(function Trig_LVL2CastSpells_f1)
    call GroupEnumUnitsOfPlayer(g,Player(bj_PLAYER_NEUTRAL_EXTRA),be)
    call DestroyBoolExpr(be)
    call ForGroup(g,function Trig_LVL2CastSpells_f2)
    set be=null
    call DestroyGroup(g)
    set g=null
endfunction

//===========================================================================
function InitTrig_LVL2CastSpells takes nothing returns nothing
    set gg_trg_LVL2CastSpells = CreateTrigger(  )
    call TriggerRegisterTimerEventPeriodic( gg_trg_LVL2CastSpells, 2.50 )
    call TriggerAddAction( gg_trg_LVL2CastSpells, function Trig_LVL2CastSpells_Actions )
endfunction
0
26
7 лет назад
0
есть подозрение, что этот фильтр берет всех, неважно, враг или друг, вы проверьте
а еще куча лишних телодвижений, зачем то создается локалка на кондишн, яхз)
0
5
7 лет назад
0
Hate:
есть подозрение, что этот фильтр берет всех, неважно, враг или друг, вы проверьте
а еще куча лишних телодвижений, зачем то создается локалка на кондишн, яхз)
Нейтрал кастует, только во врага ему, с фильтром всё ок, а насчёт москитиков, то надо будет убрать если вы верно всё расписали мне)
С такой локалочкой удобней)
0
26
7 лет назад
0
keks_090:
Hate:
есть подозрение, что этот фильтр берет всех, неважно, враг или друг, вы проверьте
а еще куча лишних телодвижений, зачем то создается локалка на кондишн, яхз)
Нейтрал кастует, только во врага ему, с фильтром всё ок, а насчёт москитиков, то надо будет убрать если вы верно всё расписали мне)
С такой локалочкой удобней)
тогда этот фильтр не имеет смысла
в чем удобство?
0
27
7 лет назад
Отредактирован MpW
0
была тема о том что нативки которые начинают с GroupEnum....могут не выделять москитов в группу xgm.guru/p/wc3/187447#lastpost
правда не все
с помощью нативок GroupEnum... фильтр отсеивает не нужных. Короче берет всех кто попал, и фильтром отсеивает. Если вернет true, то юнита зачисляют в группу, иначе отсеивают
у вас фильтр странный. Владелец GetFilterUnit враг владельца GetEnumUnit. Мне кажется лучше GetEnumUnit в переменную засунуть. Ведь варкрафтоская переменная мб не надежной, так как GetEnumUnit работает только в ForGroup. Неизвестно существует ли ссылка, пуста ли переменная. На кого ты ссылаешься? Существует ли этот юнит? мб его и не сущестует
1
32
7 лет назад
1
Ничего что даммик замедление кассовая на своих\невидимых\дохлых\ иммунных к магии не может.
буллекспры не утекают, нет надобности в переменных и удалении...
0
15
7 лет назад
0
Вывод из всех комментов- строку объяснять незачем. Она ужасна написана.Переделай
Принятый ответ
0
5
7 лет назад
0
Steal nerves:
была тема о том что нативки которые начинают с GroupEnum....могут не выделять москитов в группу xgm.guru/p/wc3/187447#lastpost
правда не все
с помощью нативок GroupEnum... фильтр отсеивает не нужных. Короче берет всех кто попал, и фильтром отсеивает. Если вернет true, то юнита зачисляют в группу, иначе отсеивают
у вас фильтр странный. Владелец GetFilterUnit враг владельца GetEnumUnit. Мне кажется лучше GetEnumUnit в переменную засунуть. Ведь варкрафтоская переменная мб не надежной, так как GetEnumUnit работает только в ForGroup. Неизвестно существует ли ссылка, пуста ли переменная. На кого ты ссылаешься? Существует ли этот юнит? мб его и не сущестует
Ну наделе, что это за фильтр выходит. Юнит у которого есть "Замедление" и этот юнит не с Москитами(dammy) враг выбранному юниту
quq_CCCP:
Ничего что даммик замедление кассовая на своих\невидимых\дохлых\ иммунных к магии не может.
буллекспры не утекают, нет надобности в переменных и удалении...
Я сделал в замедлении, что каст на своих возможен и в этом фильтре даммик во все не будет кастовать.//По внимательней)//
Хорошо можно и удалить эту локалку, но смысл её создания был? И нет статеек вроде как про boolexpr) и вопросик тогда смысл функции удаления boolexpr?
EnergyFrost:
филтер и енум юнит в одной функции зацени
Что-то я не понял, как это, можно пример?)
0
15
7 лет назад
0
keks_090, как правило енум используется при функции ForGroup, а филтер- при выборке юнитов
0
26
7 лет назад
0
Юнит у которого есть "Замедление" и этот юнит не с Москитами(dammy) враг выбранному юниту
я более чем уверен что этот фильтр берет всех подряд
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.