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

Лучший ответ:
Это переменная которая используется для добавления в вгруппу юнитов заданного типа.
» раскрыть
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



Просмотров: 59

Bergi_Bear #1 - 6 дней назад 0
не уверен что это функция, скорее всего это глобальная группа которая нужна в некоторых гуи функциях для работы с группами, а конкретно в функции проверки типов юнитов или в функции проверки количесства юнитов определённого типа
MATRITSA #2 - 6 дней назад (отредактировано ) 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 попадают юниты
PT153 #3 - 6 дней назад (отредактировано ) 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
MATRITSA #4 - 6 дней назад 0
может комментарий написать на каждое действие а то чую я их не правильно понимаю
PT153 #5 - 6 дней назад 0
MATRITSA, а тебе зачем это? Просто используй и всё.
quq_CCCP #6 - 6 дней назад 0
Это темповая глобалка для простой реализации поиска на в группе юнитов конкретного типа, её можно использовать и для других целей.
Hanabishi #7 - 6 дней назад 0
MATRITSA, она нужна банально для передачи типа юнита в соседнюю функцию, так как вызовы коллбеков не поддерживают передачу аргументов. Вот и все.
PT153 #8 - 6 дней назад 0
а где добавление
GroupEnumUnits.*() добавляют всех юнитов, что прошли фильтр, в указанную группу.
quq_CCCP #9 - 6 дней назад 0
Hanabishi, точнее сказать близзарды это не реализовали, на уровне виртуальной jasm машины это возможно.
MATRITSA #10 - 6 дней назад 0
Я задал вопрос в надежде какого то озарение Уже так было я задавал вопрос об одном а получил совсем другое
PrincePhoenix #11 - 6 дней назад 0
MATRITSA, Если твоих знаний недостаточно, чтобы понять ответы, значит ты ещё не готов к нему. Изучай jass.
Bergi_Bear #12 - 6 дней назад 0
Я задал вопрос в надежде какого то озарение Уже так было я задавал вопрос об одном а получил совсем другое
здесь 3 правильных ответа на твой вопрос, сказанных немножко в разной интерпретации, а ты ещё не доволен
MATRITSA #13 - 6 дней назад (отредактировано ) -3
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
вот какой ответ я хотел увидеть 
set bj_groupEnumTypeId = unitid взоимодейсвует с filterGetUnitsOfPlayerAndTypeId 
set bj_groupEnumTypeId эта integet туда записоваеца тип юнита 
 
filterGetUnitsOfPlayerAndTypeId  эта волшебная каманда которое принимает входные пораметры от bj_groupEnumTypeId  если написать любую другую переменую с типом integet ана её не примет
PrincePhoenix #14 - 6 дней назад (отредактировано ) 0
MATRITSA, Настоятельное рекомендую, почитайте правила
PT153 #15 - 6 дней назад 0
MATRITSA, я тебе кинул весь код, ты его точно весь глянул?
MATRITSA #16 - 6 дней назад (отредактировано ) 0
да веси я его и раниче видел не первый раз это сматрю
Создание вопроса, ответ на который есть в базе статей. простите но
этот пункт зависит от ума человека
PT153 #17 - 6 дней назад 0
MATRITSA, filterGetUnitsOfPlayerAndTypeId не волшебная команда, а назначается при вызове карты, я указал где это происходит.