В карте используется мальтибоард: 14 строк, 10 колонок, отображение иконок героев и всякая статистическая информация. Обновляется с периодом в 1 сек.
Примерно через часов 10-12 игры в сингле вылетает фатал абсолютно в непредсказуемом месте, даже если герой ничего не использует и не двигается.
Изучив соответствующие темы по поиску наткнулся на это xgm.guru/forum/showthread.php?t=38233&highlight=%F4%E0%F2%E0... (последний пост)
Может ли заключаться проблема в этом, учитывая такую продолжительность игры?

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

При использовании нативного функционала работы с мультибордом утекает multiboarditem при каждом действии. Советую попользоваться этим набором:
lib MBItems
{
    private multiboarditem  mbitem

    void MBSS(multiboard board, int col, int row, bool showValue, bool showIcon)
    {
        mbitem = MultiboardGetItem(board, row, col)
        MultiboardSetItemStyle(mbitem, showValue, showIcon)
        MultiboardReleaseItem(mbitem)
    }

    void MBSC(multiboard board, int col, int row, real red, real green, real blue, real transparency)
    {
        mbitem = MultiboardGetItem(board, row, col)
        MultiboardSetItemValueColor(mbitem, PercentToInt(red,255), PercentToInt(green,255), PercentToInt(blue,255), PercentToInt(100.0-transparency,255))
        MultiboardReleaseItem(mbitem)
    }

    void MBSW(multiboard board, int col, int row, real width)
    {
        mbitem = MultiboardGetItem(board, row, col)
        MultiboardSetItemWidth(mbitem, width/100.0)
        MultiboardReleaseItem(mbitem)
    }

    void MBSI(multiboard board, int col, int row, string iconFileName)
    {
        mbitem = MultiboardGetItem(board, row, col)
        MultiboardSetItemIcon(mbitem, iconFileName)
        MultiboardReleaseItem(mbitem)
    }

    void MBST(multiboard board, int col, int row, string val)
    {
        mbitem = MultiboardGetItem(board, row, col)
        MultiboardSetItemValue(mbitem, val)
        MultiboardReleaseItem(mbitem)
    }
}
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
23
8 лет назад
0
Причем тут мультиборд? У тебя просто утечки.
0
12
8 лет назад
0
Меня очень смутил последний пост в той указанной теме - "набирало память из-за частого изменения мультиборда."
+ читал, что сам переодический апдейт мультиборда вызывает утечки. Если да - то какие и насколько это может быть критично?
0
30
8 лет назад
Отредактирован Clamp
0
При использовании нативного функционала работы с мультибордом утекает multiboarditem при каждом действии. Советую попользоваться этим набором:
lib MBItems
{
    private multiboarditem  mbitem

    void MBSS(multiboard board, int col, int row, bool showValue, bool showIcon)
    {
        mbitem = MultiboardGetItem(board, row, col)
        MultiboardSetItemStyle(mbitem, showValue, showIcon)
        MultiboardReleaseItem(mbitem)
    }

    void MBSC(multiboard board, int col, int row, real red, real green, real blue, real transparency)
    {
        mbitem = MultiboardGetItem(board, row, col)
        MultiboardSetItemValueColor(mbitem, PercentToInt(red,255), PercentToInt(green,255), PercentToInt(blue,255), PercentToInt(100.0-transparency,255))
        MultiboardReleaseItem(mbitem)
    }

    void MBSW(multiboard board, int col, int row, real width)
    {
        mbitem = MultiboardGetItem(board, row, col)
        MultiboardSetItemWidth(mbitem, width/100.0)
        MultiboardReleaseItem(mbitem)
    }

    void MBSI(multiboard board, int col, int row, string iconFileName)
    {
        mbitem = MultiboardGetItem(board, row, col)
        MultiboardSetItemIcon(mbitem, iconFileName)
        MultiboardReleaseItem(mbitem)
    }

    void MBST(multiboard board, int col, int row, string val)
    {
        mbitem = MultiboardGetItem(board, row, col)
        MultiboardSetItemValue(mbitem, val)
        MultiboardReleaseItem(mbitem)
    }
}
Принятый ответ
0
28
8 лет назад
0
Clamp, мб ты хотел сказать гуишного функционала?
ибо в джасс можно удалить боардитем (что в твоём коде и делается)
0
30
8 лет назад
Отредактирован Clamp
0
nvc123, родные функции в JASS тоже утекают итем, надо свои допиливать

Ну в целом короч "встроенные решения", как гуи, так и джасс там хреновые
0
12
8 лет назад
0
Clamp:
nvc123, родные функции в JASS тоже утекают итем, надо свои допиливать

Ну в целом короч "встроенные решения", как гуи, так и джасс там хреновые
Те "родные функции" о которых ты говоришь (т.е. BJ функции) это как раз ГУИ и есть, в чем можно легко убедится при конвертировании. Реальные "встроенные решения" (т.е. нативки) в джассе нормальные, не утекают.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.