Добавлен
эта функция как работает что она делает можете объяснить

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

Это переменная которая используется для добавления в вгруппу юнитов заданного типа.
раскрыть
function GetUnitsOfTypeIdAllFilter takes nothing returns boolean
    return GetUnitTypeId(GetFilterUnit()) == bj_groupEnumTypeId
endfunction

function GetUnitsOfTypeIdAll takes integer unitid returns group
    local group   result = CreateGroup()
    local group   g      = CreateGroup()
    local integer index

    set index = 0
    loop
        set bj_groupEnumTypeId = unitid
        call GroupClear(g)
        call GroupEnumUnitsOfPlayer(g, Player(index), filterGetUnitsOfTypeIdAll)
        call GroupAddGroup(g, result)

        set index = index + 1
        exitwhen index == bj_MAX_PLAYER_SLOTS
    endloop
    call DestroyGroup(g)

    return result
endfunction

function GetUnitsOfPlayerAndTypeIdFilter takes nothing returns boolean
    return GetUnitTypeId(GetFilterUnit()) == bj_groupEnumTypeId
endfunction

function GetUnitsOfPlayerAndTypeId takes player whichPlayer, integer unitid returns group
    local group g = CreateGroup()
    set bj_groupEnumTypeId = unitid
    call GroupEnumUnitsOfPlayer(g, whichPlayer, filterGetUnitsOfPlayerAndTypeId)
    return g
endfunction

function InitBlizzardGlobals takes nothing returns nothing
    // ...
    set filterGetUnitsOfTypeIdAll = Filter(function GetUnitsOfTypeIdAllFilter)
    set filterGetUnitsOfPlayerAndTypeId = Filter(function GetUnitsOfPlayerAndTypeIdFilter)
    // ...
endfunction
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
14
5 лет назад
Отредактирован MATRITSA
0
function GetUnitsOfPlayerAndTypeId takes player whichPlayer, integer unitid returns group
    local group g = CreateGroup() локалка
    set bj_groupEnumTypeId = unitid установка типа юнита
    call GroupEnumUnitsOfPlayer(g, whichPlayer, filterGetUnitsOfPlayerAndTypeId) выбор всех юнитов у играка
    return g
endfunction
 а где добавление
каким оброзом в локалиную групу g попадают юниты
0
28
5 лет назад
Отредактирован PT153
0
Это переменная которая используется для добавления в вгруппу юнитов заданного типа.
раскрыть
function GetUnitsOfTypeIdAllFilter takes nothing returns boolean
    return GetUnitTypeId(GetFilterUnit()) == bj_groupEnumTypeId
endfunction

function GetUnitsOfTypeIdAll takes integer unitid returns group
    local group   result = CreateGroup()
    local group   g      = CreateGroup()
    local integer index

    set index = 0
    loop
        set bj_groupEnumTypeId = unitid
        call GroupClear(g)
        call GroupEnumUnitsOfPlayer(g, Player(index), filterGetUnitsOfTypeIdAll)
        call GroupAddGroup(g, result)

        set index = index + 1
        exitwhen index == bj_MAX_PLAYER_SLOTS
    endloop
    call DestroyGroup(g)

    return result
endfunction

function GetUnitsOfPlayerAndTypeIdFilter takes nothing returns boolean
    return GetUnitTypeId(GetFilterUnit()) == bj_groupEnumTypeId
endfunction

function GetUnitsOfPlayerAndTypeId takes player whichPlayer, integer unitid returns group
    local group g = CreateGroup()
    set bj_groupEnumTypeId = unitid
    call GroupEnumUnitsOfPlayer(g, whichPlayer, filterGetUnitsOfPlayerAndTypeId)
    return g
endfunction

function InitBlizzardGlobals takes nothing returns nothing
    // ...
    set filterGetUnitsOfTypeIdAll = Filter(function GetUnitsOfTypeIdAllFilter)
    set filterGetUnitsOfPlayerAndTypeId = Filter(function GetUnitsOfPlayerAndTypeIdFilter)
    // ...
endfunction
Принятый ответ
0
14
5 лет назад
0
может комментарий написать на каждое действие а то чую я их не правильно понимаю
0
28
5 лет назад
0
MATRITSA, а тебе зачем это? Просто используй и всё.
0
32
5 лет назад
0
Это темповая глобалка для простой реализации поиска на в группе юнитов конкретного типа, её можно использовать и для других целей.
0
26
5 лет назад
0
MATRITSA, она нужна банально для передачи типа юнита в соседнюю функцию, так как вызовы коллбеков не поддерживают передачу аргументов. Вот и все.
0
28
5 лет назад
0
а где добавление
GroupEnumUnits.*() добавляют всех юнитов, что прошли фильтр, в указанную группу.
0
32
5 лет назад
0
Hanabishi, точнее сказать близзарды это не реализовали, на уровне виртуальной jasm машины это возможно.
0
14
5 лет назад
0
Я задал вопрос в надежде какого то озарение Уже так было я задавал вопрос об одном а получил совсем другое
0
27
5 лет назад
0
MATRITSA, Если твоих знаний недостаточно, чтобы понять ответы, значит ты ещё не готов к нему. Изучай jass.
0
32
5 лет назад
0
Я задал вопрос в надежде какого то озарение Уже так было я задавал вопрос об одном а получил совсем другое
здесь 3 правильных ответа на твой вопрос, сказанных немножко в разной интерпретации, а ты ещё не доволен
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.