Решил попробовать выводить текст через мультиброд. Один столбец, а число рядов добавляю в зависимости от объема текста. Собственно, вот триггер:
и как выглядит:
Проблемы начинается, когда я меняю число рядов, на 2 или больше, чем его предыдущее значения. Некоторые ряды становятся просто пустыми
Или может просто крашиться варкрафт.
По идее, косяк в цикле. Не подскажите, в чем именно может быть проблема.
P.S. Пробовал обнулять строки и сам мультиборд - не помогло. Только если удалять и создавать его заного.

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

Мультибоард очень баганая ерунда, для текста лучше использовать фреймы, которые есть в 1.31+.
Из багов: ""MultiboardClear" иногда не чистит мультибоард. Если уменьшить число столбцов или строк, а затем вернуть, то старая информация в скрытых столбцах и строках останется, а новая будет над ней.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
5
4 года назад
0
Попробуй убирать пару-тройку строк, а потом добавлять их. У меня в итоге текст в некоторых рядах просто исчезать начинал
0
28
4 года назад
0
Абсолютная неправда
Ну почему же? Могу порыться и кинуть тестовую карту с этим трешем.
0
30
4 года назад
0
Artem48, попробуй сделать на каждую ячейку действие руками, без цикла.
0
5
4 года назад
0
Clamp:
Artem48, попробуй сделать на каждую ячейку действие руками, без цикла.
Это было тупо, но я сделал_) Короче по итогу абсолютно такая же ситуация, как и с циклом.
Но я кое что заметил, если изменять количество рядов только на один, то все работает так, как и должно
Наверное
Загруженные файлы
Этот комментарий удален
0
30
4 года назад
Отредактирован Clamp
0
Идея моего совета состояла в том, чтобы ты вручную указывал номер строки для каждого конкретного случая, если честно, а не тупо развернул цикл ручным инкрементом.

Вообще, чрезвычайно рекомендую писать мультиборд на JASS (или на LUA, но там я незнаком с API), намного удобнее. Фактически, потребность написать красивый мультиборд привела меня к переходу с GUI на JASS, и мультиборд был реально классным.
0
28
4 года назад
0
Clamp, вот карта, код очень простой, результат налицо.
Загруженные файлы
0
30
4 года назад
0
PT153, извини за наглость, но можешь показать код и результат? Нет под рукой ПК с редактором.
0
28
4 года назад
0
код
globals
    multiboard Board
    integer Times = 0
    
    constant real Char2Width = 0.005
    constant real ItemWidth = 0.005 * 10.
endglobals

function UpdateMultiboard takes nothing returns nothing
    call MultiboardSetColumnCount(Board, 2)
    call MultiboardSetRowCount(Board, 2)
    
    set Times = Times + 1
    if Times / 3 * 3 == Times then
        call MultiboardClear(Board)
    endif
    
    call MultiboardSetColumnCount(Board, 3)
    call MultiboardSetRowCount(Board, 3)
    call MultiboardSetItemsStyle(Board, true, false)
    call MultiboardSetItemsWidth(Board, ItemWidth)
    call MultiboardSetItemsValue(Board, I2S(Times))
endfunction

function Trig_Time0_Actions takes nothing returns nothing
    set Board = CreateMultiboard()
    call MultiboardSetColumnCount(Board, 3)
    call MultiboardSetRowCount(Board, 3)
    call MultiboardSetItemsStyle(Board, true, false)
    call MultiboardSetItemsWidth(Board, ItemWidth)
    call MultiboardSetItemsValue(Board, I2S(Times))
    call MultiboardMinimize(Board, false)
    call MultiboardDisplay(Board, true)
    
    call TimerStart(CreateTimer(), 1., true, function UpdateMultiboard)
endfunction

function InitTrig_Time0 takes nothing returns nothing
    set gg_trg_Time0 = CreateTrigger()
    call TriggerRegisterTimerEvent(gg_trg_Time0, 1. / 64., false)
    call TriggerAddAction(gg_trg_Time0, function Trig_Time0_Actions)
endfunction
Загруженные файлы
0
26
4 года назад
Отредактирован Lord_Teo
0
Короче, сделал для примера удаление 5 и 6 строки. Можно выполнять несколько раз. При каждом выполнении удаляется 5 и 6 строка. Лишних строк нет. Можно вместо удаления делать замену.
В первом цикле подсчитываем количество непустых строк.
Во втором цикле присваиваем значениям временного массива значения по порядку из основного массива без пустых строк.

При добавлении не забыть учесть, что максимальное значение строк в мультиборде 10. При необходимости, можно изначально сделать это количество больше, забив пустыми строками.

Начальное значение (при создании) TEST_NUMSTR = 10.
Загруженные файлы
0
5
4 года назад
0
Lord_Teo, а после удаления они обратно норм возвращаются?
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.