HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

Changing Multiboards (Help me, please!!!!)

02-12-2007, 09:15 AM#1
unyx
Heres my scripts..

To Show the First Multiboard:
Code:
function Trig_MultiboardShow_Actions takes nothing returns nothing
    local integer i = 1
    local multiboarditem mbi
    local multiboard array mb
    local multiboarditem mbi2
    local multiboard array mb2
    local integer j = 0
    call TriggerSleepAction( 0.00 )

    loop
        exitwhen i > 10

       //============== MULTIBOARD 1 ==================
            set mb[i] = CreateMultiboard()
            call MultiboardSetTitleText(mb[i],"Character Sheet")
            call MultiboardSetRowCount(mb[i],12)
            call MultiboardSetColumnCount(mb[i],2)
        //----------------------------------------------

            set mbi = MultiboardGetItem(mb[i],0,0)
            call MultiboardSetItemValue(mbi,"Player")
            set mbi = MultiboardGetItem(mb[i],1,0)
            call MultiboardSetItemValue(mbi,"Race")
            set mbi = MultiboardGetItem(mb[i],2,0)
            call MultiboardSetItemValue(mbi,"Class")
            set mbi = MultiboardGetItem(mb[i],3,0)
            call MultiboardSetItemValue(mbi,"Level")
            set mbi = MultiboardGetItem(mb[i],4,0)
            call MultiboardSetItemValue(mbi,"Gold")
            set mbi = MultiboardGetItem(mb[i],5,0)
            call MultiboardSetItemValue(mbi,"Exp.")
            set mbi = MultiboardGetItem(mb[i],7,0)
            call MultiboardSetItemValue(mbi,"Move. Spd")
            set mbi = MultiboardGetItem(mb[i],8,0)
            call MultiboardSetItemValue(mbi,"X Pos.")
            set mbi = MultiboardGetItem(mb[i],9,0)            
            call MultiboardSetItemValue(mbi,"Y Pos.")

            set mbi = MultiboardGetItem(mb[i],0,1)
            call MultiboardSetItemValue(mbi,udg_data_PlayerColors[i] + GetPlayerName(Player(i)) + "|r" )
            set j = 0
            loop
                exitwhen j > 11
    
                set mbi = MultiboardGetItem(mb[i],j,0)
                call MultiboardSetItemWidth(mbi,0.08)
                call MultiboardSetItemStyle(mbi,true,false)
    
                set mbi = MultiboardGetItem(mb[i],j,1)
                call MultiboardSetItemWidth(mbi,0.10)
                call MultiboardSetItemStyle(mbi,true,false)
                set j = j + 1                
            endloop
            set mbi = MultiboardGetItem(mb[i],11,0)            
            call MultiboardSetItemValue(mbi,"Press |cffffcc00ESC|r to change sheet.")            
            call MultiboardSetItemWidth(mbi,0.18)

            set mbi = MultiboardGetItem(mb[i],11,1)                        
            call MultiboardSetItemWidth(mbi,0)

        set udg_multiboard_1[i] = mb[i]  
        
        
        
        //============== MULTIBOARD 2 ==================        
            set mb[i] = CreateMultiboard()
            call MultiboardSetTitleText(mb[i],"Party Sheet")
            call MultiboardSetRowCount(mb[i],8)
            call MultiboardSetColumnCount(mb[i],3)
        //----------------------------------------------

            set mbi = MultiboardGetItem(mb[i],0,1)
            call MultiboardSetItemValue(mbi,"|cffffcc00Player|r")
            set mbi = MultiboardGetItem(mb[i],0,2)
            call MultiboardSetItemValue(mbi,"|cffffcc00Level|r")

            set mbi = MultiboardGetItem(mb[i],1,0)
            call MultiboardSetItemValue(mbi,"|cffffcc00Leader:|r")
            set mbi = MultiboardGetItem(mb[i],3,0)
            call MultiboardSetItemValue(mbi,"|cffffcc00Party Members:|r")

            set mbi = MultiboardGetItem(mb[i],7,0)
            call MultiboardSetItemValue(mbi,"Press |cffffcc00ESC|r to change sheet.")
            call MultiboardSetItemWidth(mbi,0.26)
            set j = 0
            loop
                exitwhen j > 8

                set mbi = MultiboardGetItem(mb[i],j,0)
                call MultiboardSetItemWidth(mbi,0.10)
                call MultiboardSetItemStyle(mbi,true,false)
                set j = j + 1         
    
                set mbi = MultiboardGetItem(mb[i],j,1)
                call MultiboardSetItemWidth(mbi,0.08)
                call MultiboardSetItemStyle(mbi,true,false)

                set mbi = MultiboardGetItem(mb[i],j,2)
                call MultiboardSetItemWidth(mbi,0.08)
                call MultiboardSetItemStyle(mbi,true,false)
            endloop

        set udg_multiboard_2[i] = mb[i]    
     
        call MultiboardDisplay( udg_multiboard_2[i],false )
        call MultiboardDisplay( udg_multiboard_1[i],false )

        set i = i + 1      
    endloop

    set i = 1
    loop
        exitwhen i > 10        
        if ConvertedPlayer(i) == GetLocalPlayer() then
            call MultiboardDisplay( udg_multiboard_1[i],true )
        endif
        set i = i + 1
    endloop

endfunction

//===========================================================================
function InitTrig_MultiboardShow takes nothing returns nothing
    set gg_trg_MultiboardShow = CreateTrigger(  )
    call TriggerRegisterTimerEventSingle( gg_trg_MultiboardShow, 0.01 )
    call TriggerAddAction( gg_trg_MultiboardShow, function Trig_MultiboardShow_Actions )
endfunction

To Swap to the Second Multiboard:
Code:
function Trig_MultiboardChange_Actions takes nothing returns nothing
        local integer z = GetConvertedPlayerId(GetTriggerPlayer())
        if (udg_plyr_boardstat[z] == 2) then
            set udg_plyr_boardstat[z] = 0
        else       
            set udg_plyr_boardstat[z] = udg_plyr_boardstat[z] + 1
        endif

    loop
        exitwhen z > 10        
        if ConvertedPlayer(z) == GetLocalPlayer() then
            call MultiboardDisplay( udg_multiboard_1[z],false )
        endif
        set z = z + 1       
    endloop
    

    loop
        exitwhen z > 10        
        if ConvertedPlayer(z) == GetLocalPlayer() then
            call MultiboardDisplay( udg_multiboard_2[z],true )
        endif
        set z = z + 1       
    endloop
endfunction

//===========================================================================
function InitTrig_MultiboardChange takes nothing returns nothing
    set gg_trg_MultiboardChange = CreateTrigger(  )
    call TriggerRegisterPlayerEventEndCinematic( gg_trg_MultiboardChange, Player(0) )
    call TriggerRegisterPlayerEventEndCinematic( gg_trg_MultiboardChange, Player(1) )
    call TriggerRegisterPlayerEventEndCinematic( gg_trg_MultiboardChange, Player(2) )
    call TriggerRegisterPlayerEventEndCinematic( gg_trg_MultiboardChange, Player(3) )
    call TriggerRegisterPlayerEventEndCinematic( gg_trg_MultiboardChange, Player(4) )
    call TriggerRegisterPlayerEventEndCinematic( gg_trg_MultiboardChange, Player(5) )
    call TriggerRegisterPlayerEventEndCinematic( gg_trg_MultiboardChange, Player(6) )
    call TriggerRegisterPlayerEventEndCinematic( gg_trg_MultiboardChange, Player(7) )
    call TriggerRegisterPlayerEventEndCinematic( gg_trg_MultiboardChange, Player(8) )
    call TriggerRegisterPlayerEventEndCinematic( gg_trg_MultiboardChange, Player(9) )                
    call TriggerAddAction( gg_trg_MultiboardChange, function Trig_MultiboardChange_Actions )
endfunction

I am just trying to make it so you can swap between two Multiboards with a single button. Is this not possible through the Warcraft engine? Making two multiboards and then just hiding one and showing another?

PLEASE help. I have been working on this for a few days now without any success trying lots of different methods like using different variables and stuff.

Sorry if my code is messy, this is actually my first JASS try after reading lots of tutorials!

Thanks in advance to anyone who can help :)
02-13-2007, 02:34 AM#2
f4nt0m
Sorry about bumping, but I would just like to mention I am using this account now as unyx was a previously owned account. Thanks.

Edit: I figured it out :S My code wasn't wrong in the end. Any comments on my code are still welcome. (This is the third time I've posted something needing help and then figuring it out after hours of work later, sigh, so sorry.)