function AV_MbrdRefresh takes nothing returns nothing
    local integer rows = AV_MbrdSetRows()
    local integer i = 1
    local integer n = 0
    local integer a = 1
    local multiboarditem mbi = null
    loop
        exitwhen i>udg_AV_MbrdPlayerCount
        set n = udg_AV_MbrdPlayers[i]
        if udg_AV_MbrdSpy[n]==false then
            if GetLocalPlayer()==Player(n-1) then
                call MultiboardDisplay(udg_AV_Mbrd[n], true)
            endif
        else
            if GetLocalPlayer()==Player(n-1) then
                call MultiboardDisplay(udg_AV_Mbrd[0], true)
            endif
        endif
        loop
            exitwhen a>rows
            set mbi = MultiboardGetItem(udg_AV_Mbrd[n], a, 2)
            call MultiboardSetItemValue(mbi, I2S(LoadInteger(udg_AV_MbrdHash, a, n)))
            call MultiboardReleaseItem(mbi)
            set mbi = MultiboardGetItem(udg_AV_Mbrd[0], a, n+1)
            call MultiboardSetItemValue(mbi, I2S(LoadInteger(udg_AV_MbrdHash, a, n)))    //эта ячейка обновляется только в столбике с красным игроком
            call MultiboardReleaseItem(mbi)
            set a = a+1
        endloop
        set i = i+1
    endloop
    set mbi = null
endfunction
Выводил на экран значение n после присвоения - прогоняет цикл для каждого игрока.

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

перед строкой с изменением ячейки делай дебаг всех значений
a, n, mbi и то что извлекаешь из хеша
2
28
7 лет назад
2
перед строкой с изменением ячейки делай дебаг всех значений
a, n, mbi и то что извлекаешь из хеша
Принятый ответ
0
32
7 лет назад
0
set mbi = MultiboardGetItem(udg_AV_Mbrd[0], a, n+1)
2
16
7 лет назад
Отредактирован avuremybe
2
quq_CCCP:
set mbi = MultiboardGetItem(udg_AV_Mbrd[0], a, n+1)
Если я правильно понял на что ты намекаешь, то:
udg_AV_Mbrd[n] - мультиборд отображающий ресурсы одного игрока n.
udg_AV_Mbrd[0] - мультиборд отображающий ресурсы всех игроков. Соответственно, n+1 это столбец с данными этого конкретного игрока.

nvc123, отладка показала, что внутренний цикл запускается только при первой итерации внешнего цикла. На остальных он не запускается.
Проблема пропуска последующих итераций внутреннего цикла состояла в том, что я не обнулял значение а.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.