HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

Trigger Causes Fatal Error

05-19-2007, 10:39 PM#1
Joker
I tried making a multiboard without any bjs, and the script gives me a fatal error. Can someone find whats wrong with it?
Collapse JASS:
function MultiboardName takes nothing returns nothing
    local player p = GetEnumPlayer()
    local integer i = GetPlayerId(p)+1
    local integer ic = 1
    local integer maxc = MultiboardGetColumnCount(udg_Multiboard)
    local multiboarditem mb = null
    
    loop
        set mb = MultiboardGetItem( udg_Multiboard, 1, ic )
        call MultiboardSetItemWidth( mb, 0.09 )
        call MultiboardSetItemValue(mb, udg_PlayerNames[i])
        call MultiboardReleaseItem(mb)
        set ic = ic + 1
        exitwhen ic > maxc
    endloop
    
    set mb = null
endfunction   

function Setup2_Actions takes timer t returns nothing
    local integer ir = 1
    local integer ic = 1
    local integer maxr
    local integer maxc
    local multiboarditem mbitem = null
    local multiboarditem mbitem2 = null
    local multiboarditem mbitem3 = null
    local multiboarditem mbitem4 = null
    call MultiboardMinimize( udg_Multiboard, true )
    call MultiboardDisplay( udg_Multiboard, true )
    call MultiboardSetTitleText( udg_Multiboard, "Botr" )
    call MultiboardSetColumnCount( udg_Multiboard, 5 )
    call MultiboardSetRowCount( udg_Multiboard, 15 )
    call ForForce( udg_All_Users, function MultiboardName )
    
    set maxr = MultiboardGetRowCount(udg_Multiboard)
    set maxc = MultiboardGetColumnCount(udg_Multiboard)
    loop            
        set mbitem = MultiboardGetItem(udg_Multiboard, ir, 2)
        set mbitem2 = MultiboardGetItem(udg_Multiboard, ir, 3)
        set mbitem3 = MultiboardGetItem(udg_Multiboard, ir, 4)
        
        loop
            set mbitem4 = MultiboardGetItem(udg_Multiboard, ir, ic)
            call MultiboardSetItemStyle( mbitem4, true, false )
            call MultiboardReleaseItem(mbitem4)
            set ic = ic + 1
            exitwhen ic > maxc
        endloop
        
        call MultiboardSetItemWidth( mbitem, 0.03 )
        call MultiboardSetItemWidth( mbitem2, 0.03 )
        call MultiboardSetItemWidth( mbitem3, 0.01 )
        call MultiboardSetItemValue( mbitem, "0" )
        call MultiboardSetItemValue( mbitem2, "0" )
        call MultiboardSetItemValue( mbitem3, "0" )
        call MultiboardSetItemValueColor( mbitem, 225, 30, 45, 0 )
        call MultiboardSetItemValueColor( mbitem2, 60, 60, 60, 0 )
        call MultiboardSetItemValueColor( mbitem3, 255, 204, 51, 0 )
        call MultiboardReleaseItem(mbitem)
        call MultiboardReleaseItem(mbitem2)
        call MultiboardReleaseItem(mbitem3)  
        set ir = ir + 1
        exitwhen ir > maxr
    endloop
       
    set mbitem = null
    set mbitem2 = null
    set mbitem3 = null
    set mbitem4 = null
endfunction

//===========================================================================
function InitTrig_Setup2 takes nothing returns nothing
    set gg_trg_Setup2 = CreateTrigger(  )
    call TriggerRegisterTimerEvent( gg_trg_Setup2, 1.00, false )
    call TriggerAddAction( gg_trg_Setup2, function Setup2_Actions )
endfunction
05-20-2007, 05:27 AM#2
Pyrogasm
I think it might have to do with the fact that your Setup2_Actions takes an argument:
Collapse JASS:
function Setup2_Actions takes timer t returns nothing
Additionally, why do you initialize your variables as "null"?
Collapse JASS:
    local multiboarditem mbitem = null
    local multiboarditem mbitem2 = null
    local multiboarditem mbitem3 = null
    local multiboarditem mbitem4 = null
05-20-2007, 01:09 PM#3
blu_da_noob
Multiboards probably use 0-based indexing so you might be trying to get a multiboard item that doesn't exist (if you have 5 items, they will be at indices 0-4 and trying to get an item at 5 might crash). Never bothered to work with natives for multiboards so I might be wrong.
05-20-2007, 10:54 PM#4
Joker
Thx pyro, that was the problem. Im not sure what your saying blu...Now theres another problem. :( The multiboard doesnt even show.