XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
Чебурашка

offline
Опыт: 5,460
Активность:
Не получается мультиборд
Сделал мультиборд, но почему то иконки до конца не удаляются, и ширина столбцов не меняется
Код
Код:
function MbSetStyle takes multiboard mb, integer row, integer col returns nothing
call MultiboardSetItemStyle(MultiboardGetItem(mb, row , col ), true, false)
call MultiboardReleaseItem(MultiboardGetItem(mb, row , col))
endfunction

function
local multiboarditem mbi= null
    local force f = CreateForce()
    local integer a = 1
    local integer b = 1
    call ForceEnumPlayers(f, Condition(function Trig_MultiboardStandart_Func002002001001001))
    set udg_board = CreateMultiboard()
    call MultiboardSetRowCount(udg_board, CountPlayersInForceBJ(f)+2)
    call MultiboardSetColumnCount(udg_board, 5)
    call MultiboardSetTitleText(udg_board, "TRIGSTR_162")
    call MultiboardDisplay(udg_board, true)
        loop
        exitwhen a > 5
               loop
             exitwhen b > MultiboardGetRowCount(udg_board)
            call MbSetStyle(udg_board,b,a)
            if a==1 then
            set mbi = MultiboardGetItem(udg_board,b,a)
                call MultiboardSetItemWidth( mbi, 8.00 )
            else
            endif
            if a==2 then
            set mbi = MultiboardGetItem(udg_board,b,a)
                call MultiboardSetItemWidth( mbi, 2.10 )
            else
            endif
            if a==3 then
                set mbi = MultiboardGetItem(udg_board,b,a)
                call MultiboardSetItemWidth( mbi, 3.80 )
            else
            endif
            if a==4 then
                set mbi = MultiboardGetItem(udg_board,b,a)
                call MultiboardSetItemWidth( mbi, 4.50 )
            else
            endif
            if a==5 then
                set mbi = MultiboardGetItem(udg_board,b,a)
                call MultiboardSetItemWidth( mbi, 2.50 )
            else
            endif
            set b = b + 1
        endloop
        set a = a + 1
    endloop
Старый 13.06.2010, 21:25
Vampirrr
O_o
offline
Опыт: 19,286
Активность:
Чебурашка, могу предположить, что не меняется из-за невыполнения 2 цикла..Сделай дебаг во внутреннем цикле, что бы увидеть, вызывается ли он.
Старый 13.06.2010, 22:14
Чебурашка

offline
Опыт: 5,460
Активность:
Экспериментальным путем выяснил что внутренний цикл не работает при а больше 2
Старый 13.06.2010, 23:52
Vampirrr
O_o
offline
Опыт: 19,286
Активность:
Чебурашка, ну дык анализируй свой алгоритм и думай почему при а больше 2 он не работает..
Старый 14.06.2010, 00:07
Чебурашка

offline
Опыт: 5,460
Активность:
Алгоритм пофиксил, но не удаляется иконка даже когда я пишу
call MultiboardSetItemStyle(MultiboardGetItem(udg_board, 1 , 1 ), true, false)
call MultiboardReleaseItem(MultiboardGetItem(udg_board, 1 , 1 ))
Старый 14.06.2010, 00:39
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 21:42.