В общем, есть функция GetUnitsOfTypeIdAll(), пытался упростить до call GroupEnumUnitsOfPlayer(g, Player(i), filterGetUnitsOfTypeIdAll), но безуспешно, не видит юнитов игрока, к тому же "filterGetUnitsOfTypeIdAll" это можно заменить на какой-то тип определенный?

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

filterGetUnitsOfTypeIdAll - фильтр, вместо него должно быть написано либо null или Condition( function XXX) Короче зачем нужен фильтр? Фильтр при выборе всех юнитов сразу отсеивает не нужных, если по условию не подходит, то выкидывает.. Вам сразу достается готовая группа с нужными юнитами
А в качестве переменных используй GetFilterUnit, GetFilterPlayer. На гуи по-другому называют MatchingUnit
где XXX - название функции, эта функция возвращает boolean (то есть истину или ложь)
вбей в поиск названии функции, может найдешь ответ
например выделяем все здания UNIT_TYPE_STRUCTURE, а те, кто не является зданием отсеиваем
function XXX takes nothing returns boolean
    return IsUnitType(GetFilterUnit(), UNIT_TYPE_STRUCTURE)
endfunction
насчет статьи не видел, это придет с пониманием. Главное начать. Сначала тупо конверт, и оптимизация. А дальше можешь сам
что у тебя там не работает скидывай сюда
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
27
7 лет назад
Отредактирован MpW
0
filterGetUnitsOfTypeIdAll - фильтр, вместо него должно быть написано либо null или Condition( function XXX) Короче зачем нужен фильтр? Фильтр при выборе всех юнитов сразу отсеивает не нужных, если по условию не подходит, то выкидывает.. Вам сразу достается готовая группа с нужными юнитами
А в качестве переменных используй GetFilterUnit, GetFilterPlayer. На гуи по-другому называют MatchingUnit
где XXX - название функции, эта функция возвращает boolean (то есть истину или ложь)
вбей в поиск названии функции, может найдешь ответ
например выделяем все здания UNIT_TYPE_STRUCTURE, а те, кто не является зданием отсеиваем
function XXX takes nothing returns boolean
    return IsUnitType(GetFilterUnit(), UNIT_TYPE_STRUCTURE)
endfunction
насчет статьи не видел, это придет с пониманием. Главное начать. Сначала тупо конверт, и оптимизация. А дальше можешь сам
что у тебя там не работает скидывай сюда
Принятый ответ
0
14
7 лет назад
Отредактирован LainMikoroso
0
Steal nerves:
filterGetUnitsOfTypeIdAll - фильтр, вместо него должно быть написано либо null или Condition( function XXX) Короче зачем нужен фильтр? Фильтр при выборе всех юнитов сразу отсеивает не нужных, если по условию не подходит, то выкидывает.. Вам сразу достается готовая группа с нужными юнитами
А в качестве переменных используй GetFilterUnit, GetFilterPlayer. На гуи по-другому называют MatchingUnit
где XXX - название функции, эта функция возвращает boolean (то есть истину или ложь)
вбей в поиск названии функции, может найдешь ответ
например выделяем все здания UNIT_TYPE_STRUCTURE, а те, кто не является зданием отсеиваем
function XXX takes nothing returns boolean
    return IsUnitType(GetFilterUnit(), UNIT_TYPE_STRUCTURE)
endfunction
насчет статьи не видел, это придет с пониманием. Главное начать. Сначала тупо конверт, и оптимизация. А дальше можешь сам
что у тебя там не работает скидывай сюда
У меня все работает, кроме этого упрощения, т.е. если я использую GetUnitsOfTypeIdAll(), то все исправно, а если GroupEnumUnitsOfPlayer(), то группа получается пустой, хотя игроком я не ошибаюсь
Нууу, если говорить конкретнее, то я конвертнул Pick every unt in group, посмотрел из чего она состоит, решил через GroupEnumUnitsOfPlayer() сделать, нууу, чтобы не loop'ило 12 игроков, а просто взяло юнитов у нужного юнита, и в итоге провал
0
27
7 лет назад
0
LainMikoroso, просто это нужно знать что ты сделал. Скидывай код. Не понял, что ты хочешь сделать. Как ты понял что в группе нет юнитов?
0
14
7 лет назад
Отредактирован Uber
0
просто это нужно знать что ты сделал. Скидывай код. Не понял, что ты хочешь сделать. Как ты понял что в группе нет юнитов?
function Lmao takes nothing returns nothing
    call DisplayTextToForce(GetPlayersAll(), "TRIGSTR_4524")
endfunction

function AfterWait takes nothing returns nothing
    local group g = CreateGroup()
    local integer i = GetPlayerId(GetOwningPlayer(udg_U_C[522]))
    call DisplayTextToForce(GetPlayersAll(), I2S(i+1))
    call CreateUnit(Player(0), 'hfoo', x1, y1, bj_RADTODEG * Atan2(y2 - y1, x2 - x1))
    call CreateUnit(Player(i), 'hfoo', x1, y1, bj_RADTODEG * Atan2(y2 - y1, x2 - x1))
    call CreateUnit(GetOwningPlayer(udg_U_C[522]), 'hfoo', x1, y1, bj_RADTODEG * Atan2(y2 - y1, x2 - x1))
    call GroupEnumUnitsOfPlayer(g, Player(i), filterGetUnitsOfTypeIdAll)
    call ForGroup(g, function Lmao)
endfunction

function Minato_W_Actions takes nothing returns nothing
    set udg_U_C[522] = GetTriggerUnit()
    if (GetSpellAbilityId() == 'AHhb') then
        call TimerStart(CreateTimer(), 0.3, false, function AfterWait)
    endif
endfunction

//===========================================================================
function InitTrig_Minato_W_JJ_____________________u takes nothing returns nothing
    set gg_trg_Minato_W_JJ_____________________u = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Minato_W_JJ_____________________u, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddAction( gg_trg_Minato_W_JJ_____________________u, function Minato_W_Actions )
endfunction
local real x1 = 0.00
    local real y1 = 0.00
    local real x2 = 0.00
    local real y2 = 0.00
ВОт это забыл случайно(ласт 4 строки с реальными переменными)
0
27
7 лет назад
Отредактирован MpW
0
попробуй использовать переменную типа filterGetUnitsOfTypeIdAll
function XXX takes nothing returns boolean
    return( GetUnitTypeId(GetFilterUnit()) == 'hfoo' )
endfunction

set filterGetUnitsOfTypeIdAll = Condition(function XXX)
или вообще filterGetUnitsOfTypeIdAll = null
видимо связана эта переменная с bj_groupEnumTypeId. В переменную bj_groupEnumTypeId вбивают id-тип/равкод юнита
Но в jngp не могу увидеть что за переменная, сшита внутри
0
14
7 лет назад
0
Steal nerves:
попробуй использовать переменную типа filterGetUnitsOfTypeIdAll
function XXX takes nothing returns boolean
    return( GetUnitTypeId(GetFilterUnit()) == 'hfoo' )
endfunction

set filterGetUnitsOfTypeIdAll = Condition(function XXX)
или вообще filterGetUnitsOfTypeIdAll = null
видимо связана эта переменная с bj_groupEnumTypeId. В переменную bj_groupEnumTypeId вбивают id-тип/равкод юнита
Но в jngp не могу увидеть что за переменная, сшита внутри
Вот теперь получилось, с нулом, сейчас пробну функцию заюзать
LainMikoroso:
Steal nerves:
попробуй использовать переменную типа filterGetUnitsOfTypeIdAll
function XXX takes nothing returns boolean
    return( GetUnitTypeId(GetFilterUnit()) == 'hfoo' )
endfunction

set filterGetUnitsOfTypeIdAll = Condition(function XXX)
или вообще filterGetUnitsOfTypeIdAll = null
видимо связана эта переменная с bj_groupEnumTypeId. В переменную bj_groupEnumTypeId вбивают id-тип/равкод юнита
Но в jngp не могу увидеть что за переменная, сшита внутри
Вот теперь получилось, с нулом, сейчас пробну функцию заюзать
Функция также работает, +она юзфулная, спасибо
0
27
7 лет назад
Отредактирован MpW
0
также есть другие похожие переменные из-за чего мб не работать, это на бдущее
filterGetUnitsOfPlayerAndTypeId
bj_groupEnumOwningPlayer
filterGetUnitsInRectOfPlayer
с null видимо всех добавляет
можно юзать локалки вместо set filterGetUnitsOfTypeIdAll = Condition(function XXX). просто не уверен, что будет ли работать с filterGetUnitsOfTypeIdAll так
local boolexpr e = Condition(function XXX)
Чтобы оставить комментарий, пожалуйста, войдите на сайт.