Team Resources and Multiboard problem

Terrabull

Veteran Member (Done that)
Reaction score
38
I am using ShareEverythingWithTeam to allow people to control their teammates if the spots are empty. I also have a custom multiboard that shows players special information. When I use ShareEverything the Team Resources multiboard appears, I then set that to LeaverBoard. I am able to hide that and show my custom one again, but I am not able to switch between the two for my users. When I use this code to test it, it says "Multiboard is not set" which is the error message my code gives if the appropriate Leaverboard is set to null. This means that the code assigning Leaverboard is not working correctly for some reason. You can see that I have commented out one set of assign codes, this is because I tried assigning it at multiple parts of the function, and neither of them worked. Any help would be greatly appreciated.

This trigger runs when players type the command to enter 1v1 mode and gain control of their allies.
JASS:
function IsUserNotThere takes player testme returns boolean
    return GetPlayerController(testme) == MAP_CONTROL_COMPUTER or GetPlayerSlotState(testme) == PLAYER_SLOT_STATE_EMPTY
endfunction

function PeonHall takes nothing returns boolean
    return GetUnitTypeId(GetFilterUnit()) == 'h000' or GetUnitTypeId(GetFilterUnit()) == 'h007'
endfunction

function Explode takes nothing returns nothing
    call SetUnitExploded(GetEnumUnit(),true)
    call KillUnit(GetEnumUnit())
endfunction

function Trig_One_v_One_Mode_Actions takes nothing returns nothing
    local integer i = 0
    local player eastblow
    local player westblow
    local group tg = CreateGroup()
    if ((IsUserNotThere(Player(2)) and IsUserNotThere(Player(1))) or (IsUserNotThere(Player(2)) and IsUserNotThere(Player(0))) or (IsUserNotThere(Player(1)) and IsUserNotThere(Player(0)))) and ((IsUserNotThere(Player(5)) and IsUserNotThere(Player(4))) or (IsUserNotThere(Player(5)) and IsUserNotThere(Player(3))) or (IsUserNotThere(Player(4)) and IsUserNotThere(Player(3)))) then
        loop
        exitwhen i > 5
            if IsUserNotThere(Player(i)) then
                call ShareEverythingWithTeam(Player(i))
            endif
        if i < 3 then
            set udg_LeaverBoard[0] = bj_lastCreatedMultiboard
        else
            set udg_LeaverBoard[1] = bj_lastCreatedMultiboard
        endif
            set i = i + 1
        endloop
        if SubString(GetEventPlayerChatString(),4,5) == "2" then
            if IsUserNotThere(Player(2)) then
                set westblow = Player(2)
            elseif IsUserNotThere(Player(1)) then
                set westblow = Player(1)
            endif
            if IsUserNotThere(Player(5)) then
                set eastblow = Player(5)
            elseif IsUserNotThere(Player(4)) then
                set westblow = Player(4)
            endif
            call GroupEnumUnitsOfPlayer(tg,eastblow,Condition(function PeonHall))
            call ForGroup(tg,function Explode)
            call GroupClear(tg)
            call GroupEnumUnitsOfPlayer(tg,westblow,Condition(function PeonHall))
            call ForGroup(tg,function Explode)
        endif
//        call EnableTrigger(gg_trg_Switch_Board)
        call DisplayTextToPlayer(GetLocalPlayer(),0,0,"1v1 Mode Initiated.")
//        if GetPlayerId(GetLocalPlayer()) < 3 then
//            set udg_LeaverBoard[0] = bj_lastCreatedMultiboard
//        else
//            set udg_LeaverBoard[1] = bj_lastCreatedMultiboard
//        endif
        if IsPlayerAlly((GetLocalPlayer()), Player(10)) == true then
            call MultiboardDisplay(udg_LeftBoard,true)
        elseif IsPlayerAlly((GetLocalPlayer()), Player(11)) == true then
            call MultiboardDisplay(udg_RightBoard,true)
        else
            call MultiboardDisplay(udg_OtherBoard,true)
       endif
    else
        call DisplayTextToPlayer(GetLocalPlayer(),0,0,"There are to many players to initiate 1v1 mode.")
    endif
endfunction

//===========================================================================
function InitTrig_One_v_One_Mode takes nothing returns nothing
    set gg_trg_One_v_One_Mode = CreateTrigger()
    call TriggerRegisterAnyPlayerChatEventDK(gg_trg_One_v_One_Mode, "-1v1", false)
    call TriggerAddAction(gg_trg_One_v_One_Mode, function Trig_One_v_One_Mode_Actions)
endfunction



This function is supposed to switch the multiboard when the player types -switch
JASS:
function Trig_Switch_Board_Actions takes nothing returns nothing
    call DisplayTextToPlayer(GetLocalPlayer(),0,0,"Multiboard Switch Starting.")
    if GetLocalPlayer() == GetTriggerPlayer() then
        if GetPlayerId(GetTriggerPlayer()) < 3 then
            if IsMultiboardDisplayed(udg_LeftBoard) == true then
                if udg_LeaverBoard[0] == null then
                    call DisplayTextToPlayer(GetLocalPlayer(),0,0,"Multiboard not set.")
                else
                    call MultiboardDisplay(udg_LeftBoard,false)
                    call MultiboardDisplay(udg_LeaverBoard[0],true)
                    call DisplayTextToPlayer(GetLocalPlayer(),0,0,"Multiboard switched.")
                endif
            else
                call MultiboardDisplay(udg_LeaverBoard[0],false)
                call MultiboardDisplay(udg_LeftBoard,true)
            endif
        else
            if IsMultiboardDisplayed(udg_RightBoard) then
                if udg_LeaverBoard[1] == null then
                    call DisplayTextToPlayer(GetLocalPlayer(),0,0,"Multiboard not set.")
                else
                    call MultiboardDisplay(udg_RightBoard,false)
                    call MultiboardDisplay(udg_LeaverBoard[1],true)
                    call DisplayTextToPlayer(GetLocalPlayer(),0,0,"Multiboard switched.")
                endif
            else
                call MultiboardDisplay(udg_LeaverBoard[1],false)
                call MultiboardDisplay(udg_RightBoard,true)
            endif
        endif
    endif
endfunction

//===========================================================================
function InitTrig_Switch_Board takes nothing returns nothing
    set gg_trg_Switch_Board = CreateTrigger()
    call TriggerRegisterAnyPlayerChatEventDK( gg_trg_Switch_Board, "-switch", true )
    call TriggerAddAction( gg_trg_Switch_Board, function Trig_Switch_Board_Actions )
//    call DisableTrigger(gg_trg_Switch_Board)
endfunction


Strangely, when this code runs, the multiboard script worked (at least in the last testings.)
JASS:
function Cond_New_Leaver takes nothing returns boolean
    return IsPlayerObserver(GetTriggerPlayer()) == false
endfunction

function Act_New_Leaver takes nothing returns nothing
    local player leaver = GetTriggerPlayer()
//    call SetPlayerAllianceStateBJ( Player(1), Player(0), bj_ALLIANCE_ALLIED_ADVUNITS )
    call DisplayTextToPlayer(GetLocalPlayer(),0,0,GetPlayerName(leaver) + " has left the game, what a loser.")
    call ShareEverythingWithTeam(leaver)
    if GetPlayerId(leaver) < 3 then
        set udg_LeaverBoard[0] = bj_lastCreatedMultiboard
    else
        set udg_LeaverBoard[1] = bj_lastCreatedMultiboard
    endif
    call MultiboardDisplay(bj_lastCreatedMultiboard,false)
    if IsPlayerAlly((GetLocalPlayer()), Player(10)) == true then
        call MultiboardDisplay(udg_LeftBoard,true)
    elseif IsPlayerAlly((GetLocalPlayer()), Player(11)) == true then
        call MultiboardDisplay(udg_RightBoard,true)
    else
        call MultiboardDisplay(udg_OtherBoard,true)
    endif
    if IsPlayerAlly(leaver,GetLocalPlayer()) then
        call DisplayTextToPlayer(GetLocalPlayer(),0,0,"Type -switch to see the Team Resources Board.")
    endif
    set leaver = null
endfunction

//===========================================================================
function InitTrig_New_Leaver takes nothing returns nothing
    local integer i = 0
    set gg_trg_New_Leaver = CreateTrigger()
    loop
        exitwhen i > 5
        call TriggerRegisterPlayerEvent(gg_trg_New_Leaver,Player(i),EVENT_PLAYER_LEAVE)
        set i = i + 1
    endloop
    call TriggerAddCondition(gg_trg_New_Leaver,Condition(function Cond_New_Leaver))
    call TriggerAddAction(gg_trg_New_Leaver,function Act_New_Leaver)
endfunction
 

phyrex1an

Staff Member and irregular helper
Reaction score
447
The resource board doesn't turn up in the bj_lastCreatedMultiboard variable.
The reason the resource board is hidden is because you show another board, not because you try to hide it with MultiboardDisplay.

You can try to change the alliance status back and forth once and see if the resource board re-appears. (This might be the reason why your last example works)
 

Terrabull

Veteran Member (Done that)
Reaction score
38
Is there any way to catch the handle or the multiboard as it is made? I just need some way to assign it to a variable.
Also, on more recent testing the last example no longer works either. I know it worked at one point, what happened?
EDIT: Tried twiddling the alliance settings (Shared Control) that does not make the board reappear.
 

Terrabull

Veteran Member (Done that)
Reaction score
38
Bump, any other thoughts about how to get this to work again? I would appreciate even really out there suggestions.
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • Ghan Ghan:
    Still lurking
    +3
  • The Helper The Helper:
    I am great and it is fantastic to see you my friend!
    +1
  • The Helper The Helper:
    If you are new to the site please check out the Recipe and Food Forum https://www.thehelper.net/forums/recipes-and-food.220/
  • Monovertex Monovertex:
    How come you're so into recipes lately? Never saw this much interest in this topic in the old days of TH.net
  • Monovertex Monovertex:
    Hmm, how do I change my signature?
  • tom_mai78101 tom_mai78101:
    Signatures can be edit in your account profile. As for the old stuffs, I'm thinking it's because Blizzard is now under Microsoft, and because of Microsoft Xbox going the way it is, it's dreadful.
  • The Helper The Helper:
    I am not big on the recipes I am just promoting them - I use the site as a practice place promoting stuff
    +2
  • Monovertex Monovertex:
    @tom_mai78101 I must be blind. If I go on my profile I don't see any area to edit the signature; If I go to account details (settings) I don't see any signature area either.
  • The Helper The Helper:
    You can get there if you click the bell icon (alerts) and choose preferences from the bottom, signature will be in the menu on the left there https://www.thehelper.net/account/preferences
  • The Helper The Helper:
    I think I need to split the Sci/Tech news forum into 2 one for Science and one for Tech but I am hating all the moving of posts I would have to do
  • The Helper The Helper:
    What is up Old Mountain Shadow?
  • The Helper The Helper:
    Happy Thursday!
    +1
  • Varine Varine:
    Crazy how much 3d printing has come in the last few years. Sad that it's not as easily modifiable though
  • Varine Varine:
    I bought an Ender 3 during the pandemic and tinkered with it all the time. Just bought a Sovol, not as easy. I'm trying to make it use a different nozzle because I have a fuck ton of Volcanos, and they use what is basically a modified volcano that is just a smidge longer, and almost every part on this thing needs to be redone to make it work
  • Varine Varine:
    Luckily I have a 3d printer for that, I guess. But it's ridiculous. The regular volcanos are 21mm, these Sovol versions are about 23.5mm
  • Varine Varine:
    So, 2.5mm longer. But the thing that measures the bed is about 1.5mm above the nozzle, so if I swap it with a volcano then I'm 1mm behind it. So cool, new bracket to swap that, but THEN the fan shroud to direct air at the part is ALSO going to be .5mm to low, and so I need to redo that, but by doing that it is a little bit off where it should be blowing and it's throwing it at the heating block instead of the part, and fuck man
  • Varine Varine:
    I didn't realize they designed this entire thing to NOT be modded. I would have just got a fucking Bambu if I knew that, the whole point was I could fuck with this. And no one else makes shit for Sovol so I have to go through them, and they have... interesting pricing models. So I have a new extruder altogether that I'm taking apart and going to just design a whole new one to use my nozzles. Dumb design.
  • Varine Varine:
    Can't just buy a new heatblock, you need to get a whole hotend - so block, heater cartridge, thermistor, heatbreak, and nozzle. And they put this fucking paste in there so I can't take the thermistor or cartridge out with any ease, that's 30 dollars. Or you can get the whole extrudor with the direct driver AND that heatblock for like 50, but you still can't get any of it to come apart
  • Varine Varine:
    Partsbuilt has individual parts I found but they're expensive. I think I can get bits swapped around and make this work with generic shit though
  • Ghan Ghan:
    Heard Houston got hit pretty bad by storms last night. Hope all is well with TH.
  • The Helper The Helper:
    Power back on finally - all is good here no damage
    +2
  • V-SNES V-SNES:
    Happy Friday!
    +1
  • The Helper The Helper:
    New recipe is another summer dessert Berry and Peach Cheesecake - https://www.thehelper.net/threads/recipe-berry-and-peach-cheesecake.194169/

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top