Доброго времечка друзья. Хотелось бы спросить у знатоков, как правильно работать с мультибордом на jasse.
К примеру в моей карте жанра выживания, есть множество волн, которые можно запускать сразу все и для удобства я записал эти данные в мультиборд.
Триггер:
Событие-Юнит в области
Условие-тип герой
Действия-
Увеличиваю кол-во строк в Мультиборде на 1
Запускаю таймер для волны
и запускаю самописную функцию call BoardNewVolna("Волна №1")
Теперь сама функция:
function BoardNewVolna takes string volna returns nothing
    local integer i = MultiboardGetRowCount(udg_JC_Board)
    local multiboarditem q1 = MultiboardGetItem(udg_JC_Board, i-1, 0)
    local multiboarditem q2 = MultiboardGetItem(udg_JC_Board, i-1, 1)
    local multiboarditem q3 = MultiboardGetItem(udg_JC_Board, i-1, 2)
    call MultiboardSetItemValue(q1, volna)
    call MultiboardSetItemValue(q2, R2S(TimerGetRemaining(udg_tt[i])) )
    call MultiboardSetItemWidth(q1, 10.00)
    call MultiboardSetItemWidth(q2, 10.00)
    call MultiboardSetItemStyle(q1, true, false)
    call MultiboardSetItemStyle(q2, true, false)
    call MultiboardSetItemStyle(q3, false, false)
    call MultiboardReleaseItem( q1 )
    call MultiboardReleaseItem( q2 )
    call MultiboardReleaseItem( q3 )
    set q1 = null
    set q2 = null
    set q3 = null
endfunction
По идеи в последней строке в первом столбце должно быть название, которое я передал в функцию (Волна №1) это работает.
В втором столбце должен появится таймер (просто число) вот это уже не работает. Подскажите в чем моя ошибка при обращение к второму столбцу в доске? local multiboarditem q2 = MultiboardGetItem(udg_JC_Board, i-1, 1)
Заранее спасибо

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

Sacar777, выведи после MultiboardGetItem(udg_JC_Board, i-1, 1)
на экран следующий текст
I2S(GetHandleId(q1))
I2S(GetHandleId(q2))
если q2 по каким то причинам не создаётся то это скажет об этом
стоп
а какой у тебя размер столбца стоит?
мб просто ячейка q1 перекрывает собой ячейку q2
и размер 10 это очень много
ведь в отличие от гуи тут размер в сотых указывается
то есть если в гуи размер 10 то тут должен быть 0.1
поставь в MultiboardSetItemWidth(q1, 10.00)
вместо 10.00 0.1 и проверь
если 0.1 не сработает то поставь 0.02
если и это не сработает то отпиши сюда
я тогда раскапаю свой старый мультибоард и сравню с твоим
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
28
8 лет назад
0
что именно пишет там где должен быть таймер?
желательно скрин мультибоарда
ибо "не работает" это очень растяжимое понятие
0
8
8 лет назад
Отредактирован Sacar777
0
nvc123, добавил скрин. Первая ячейка q1 работает отлично. q2 и q3 уже отказываются работать, не пойму где ошибка.
0
28
8 лет назад
0
Sacar777, во первых
убедись что таймер существует
добавь перед MultiboardSetItemValue(q2, R2S(TimerGetRemaining(udg_tt[i])) ) вывод текста R2S(TimerGetRemaining(udg_tt[i])) на экран
во вторых
попробуй перенести MultiboardSetItemValue(q2, R2S(TimerGetRemaining(udg_tt[i])) )
после MultiboardSetItemStyle(q2, true, false)
так же закоменти пока что всю работу с ячейкой q3
q3 в твоём коде и не должна работать ибо ты с ней ничего не делаешь кроме стиля
0
8
8 лет назад
Отредактирован Sacar777
0
function BoardNewVolna takes string volna returns nothing
    local integer i = MultiboardGetRowCount(udg_JC_Board)
    local multiboarditem q1 = MultiboardGetItem(udg_JC_Board, i-1, 0)
    local multiboarditem q2 = MultiboardGetItem(udg_JC_Board, i-1, 1)
    //local multiboarditem q3 = MultiboardGetItem(udg_JC_Board, i-1, 2)
	call MultiboardSetItemStyle(q1, true, false)
    call MultiboardSetItemStyle(q2, true, false)
    call MultiboardSetItemWidth(q1, 10.00)
    call MultiboardSetItemWidth(q2, 10.00)
    call MultiboardSetItemValue(q1, volna)
    call DisplayTextToPlayer(Player(0), 0, 0, R2S(TimerGetRemaining(udg_tt[i])))
    call MultiboardSetItemValue(q2, R2S(TimerGetRemaining(udg_tt[i])) )
   // call MultiboardSetItemStyle(q3, false, false)
    call MultiboardReleaseItem( q1 )
    call MultiboardReleaseItem( q2 )
   // call MultiboardReleaseItem( q3 )
    set q1 = null
    set q2 = null
    //set q3 = null
endfunction
Вывел 30.000 все как надо, но борд по прежнему как на скрине
К q2 вообще ни чего не применяется, не стиль, не размер. Пробовал иконку включить, итог нулевой
0
28
8 лет назад
Отредактирован nvc123
0
Sacar777, выведи после MultiboardGetItem(udg_JC_Board, i-1, 1)
на экран следующий текст
I2S(GetHandleId(q1))
I2S(GetHandleId(q2))
если q2 по каким то причинам не создаётся то это скажет об этом
стоп
а какой у тебя размер столбца стоит?
мб просто ячейка q1 перекрывает собой ячейку q2
и размер 10 это очень много
ведь в отличие от гуи тут размер в сотых указывается
то есть если в гуи размер 10 то тут должен быть 0.1
поставь в MultiboardSetItemWidth(q1, 10.00)
вместо 10.00 0.1 и проверь
если 0.1 не сработает то поставь 0.02
если и это не сработает то отпиши сюда
я тогда раскапаю свой старый мультибоард и сравню с твоим
Принятый ответ
0
8
8 лет назад
0
nvc123, божей мой, какая глупая ошибка)) Я даже не знал, что там размер нужно в сотых писать) Спасибо огромное.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.