Добавлен 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)
}
}
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
ибо в джасс можно удалить боардитем (что в твоём коде и делается)
Отредактирован Clamp
Отредактирован Clamp
Astra:
если кодер не освободил память после того как выделил её то это не функции утечные
это у кодера руки не из того места растут
вот в гуи нету возможности освободить память
поэтому гуи(бж) утечные
Отредактирован nvc123
та функция должна выделять память и она её выделяет
если ты после Object *object=new Object(); не пишешь в конце free object; то это ты дебил а не создатели языка/класса/конструктора
или если ты напишешь new int[1024*1024*1024*1024*256] то виноват не разработчик языка а тот придурок что выделяет столько памяти (то есть ты)
Ты разводишь пустую полемику.