Доброго времени суток!
Хотелось бы поинтересоваться. BJ функции для создания мультиборда утечны? В Blizzard j ни чего про мультиборды не нашёл, как ни странно. Мне казалось там все BJ функции написаны...

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

fREEz10121, не то что утечны, но нагружают память. К примеру ты хочешь установить какой-то клетке мультиборда значение. Вот так это выглядит в BJ
function MultiboardSetItemValueBJ takes multiboard mb, integer col, integer row, string val returns nothing
    local integer curRow = 0
    local integer curCol = 0
    local integer numRows = MultiboardGetRowCount(mb)
    local integer numCols = MultiboardGetColumnCount(mb)
    local multiboarditem mbitem = null

    // Loop over rows, using 1-based index
    loop
        set curRow = curRow + 1
        exitwhen curRow > numRows

        // Apply setting to the requested row, or all rows (if row is 0)
        if (row == 0 or row == curRow) then
            // Loop over columns, using 1-based index
            set curCol = 0
            loop
                set curCol = curCol + 1
                exitwhen curCol > numCols

                // Apply setting to the requested column, or all columns (if col is 0)
                if (col == 0 or col == curCol) then
                    set mbitem = MultiboardGetItem(mb, curRow - 1, curCol - 1)
                    call MultiboardSetItemValue(mbitem, val)
                    call MultiboardReleaseItem(mbitem)
                endif
            endloop
        endif
    endloop
endfunction
Против вот этого
native MultiboardSetItemValue takes multiboarditem mbi, string val returns nothing
Такое же происходит во всех остальных BJ
0
25
9 лет назад
0
fREEz10121, не то что утечны, но нагружают память. К примеру ты хочешь установить какой-то клетке мультиборда значение. Вот так это выглядит в BJ
function MultiboardSetItemValueBJ takes multiboard mb, integer col, integer row, string val returns nothing
    local integer curRow = 0
    local integer curCol = 0
    local integer numRows = MultiboardGetRowCount(mb)
    local integer numCols = MultiboardGetColumnCount(mb)
    local multiboarditem mbitem = null

    // Loop over rows, using 1-based index
    loop
        set curRow = curRow + 1
        exitwhen curRow > numRows

        // Apply setting to the requested row, or all rows (if row is 0)
        if (row == 0 or row == curRow) then
            // Loop over columns, using 1-based index
            set curCol = 0
            loop
                set curCol = curCol + 1
                exitwhen curCol > numCols

                // Apply setting to the requested column, or all columns (if col is 0)
                if (col == 0 or col == curCol) then
                    set mbitem = MultiboardGetItem(mb, curRow - 1, curCol - 1)
                    call MultiboardSetItemValue(mbitem, val)
                    call MultiboardReleaseItem(mbitem)
                endif
            endloop
        endif
    endloop
endfunction
Против вот этого
native MultiboardSetItemValue takes multiboarditem mbi, string val returns nothing
Такое же происходит во всех остальных BJ
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.