Добавлен  Astra 
                            
                            
                            
                            
                            
                            
                        
                        
                    В карте используется мальтибоард: 14 строк, 10 колонок, отображение иконок героев и всякая статистическая информация. Обновляется с периодом в 1 сек.
Примерно через часов 10-12 игры в сингле вылетает фатал абсолютно в непредсказуемом месте, даже если герой ничего не использует и не двигается.
Примерно через часов 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)
    }
}
    
        
            
                `
            
            
                
        
    
    ОЖИДАНИЕ РЕКЛАМЫ...
            
                    
                        Чтобы оставить комментарий, пожалуйста, войдите на сайт.
                    
                
             
                        
                        
                    
 WC3
                                WC3
                            



 
                    
                
+ читал, что сам переодический апдейт мультиборда вызывает утечки. Если да - то какие и насколько это может быть критично?
Ред. Clamp
ибо в джасс можно удалить боардитем (что в твоём коде и делается)
Ред. Clamp
Ред. Clamp
Astra: