Custom Multiplayer: Tangent Games??

LOST_Creator

New Member
Reaction score
0
De-Sync in Custom Map??

I have been spending the majority of my time on a map I like to call "LOST: The Game". It is a 12-person map that I have designed utilizing custom heroes, abilities, buildings, items and quests specific to each player as well as shared quests all taking place on an epic island filled with many interior locations.

Recently with he have been experiencing issues I've been calling "tangent games" for lack of a better term. While playing and hosting the lap from LAN with 4 people situations have occurred where the game timeline forks creating a separate scenario for 2 players in which the other 2 players become controlled by AI. The 2 players connected to each game can see each others chat, but cannot communicate with the players in the "tangent game". Both pairs can continue playing the game in their separate "tangent games" but can never interact with the "tangent players"... (cue :confused:)

It has happened numerous times (as well as 3 player games) but seems to not occur when there are only 2 players playing. I have not been able to test the game online, but would like to. The first occurrence I noticed was during a 3 player LAN game when an item dropped on death from a neutral hostile hero both players picked up the item. This created the "tangent game" in which player 1 had the item and player 2 did not, and player 2 & 3 were no longer user-controlled. In their "tangent game" player 2 had received the item and was able to interact with player 3, while player 1 was not.

At this time I would like to apologize for the length of my query, but I feel like I have literally hit a brick wall in this mapmaking process (cue :banghead:) and would REALLY appreciate any insight from those who have experienced similar problems, advanced mapmakers, or anyone who has taken the time to finish reading this. Please help me finish this map!!
 

LOST_Creator

New Member
Reaction score
0
Desynching code?

Can you elaborate more as to what a desynching code may be?? I have a trigger within the map that I have added within the past month which may have been the origin of all of these problems.

It involves a timer tied to a computer. The player must type in a message (the numbers) to make the lever vulnerable to be pushed, which resets the timer. In all of the tangent games this timer expires causing an event in one game and the timer resets normally in the other tangent game. I am not sure if this may be the code that is causing this or a byproduct of the person's job of pushing the timer being in the tangent game.
 

Accname

2D-Graphics enthusiast
Reaction score
1,463
Can you elaborate more as to what a desynching code may be?? I have a trigger within the map that I have added within the past month which may have been the origin of all of these problems.

It involves a timer tied to a computer. The player must type in a message (the numbers) to make the lever vulnerable to be pushed, which resets the timer. In all of the tangent games this timer expires causing an event in one game and the timer resets normally in the other tangent game. I am not sure if this may be the code that is causing this or a byproduct of the person's job of pushing the timer being in the tangent game.

are you using any kind of "GetLocalPlayer" actions? these are mainly the reason for a desync.
 

LOST_Creator

New Member
Reaction score
0
Hey I'm not sure what kind of action 'GetLocalPlayer' is but I'm almost positive I am not using it. There are alot of triggers to make sure my code for "The button" which is a lever connected to a timer in which the user must enter in a code 1 minute prior to expiration of the timer to make a lever vulnerable, which when destroyed resets the timer. Anyways this is how this is how it works.

TRIGGER 1

EVENT
Unit - Kelvin Inman 0051 <gen> Dies

function Trig_The_Button_Copy_2_Actions takes nothing returns nothing
call TriggerSleepAction( 1.00 )
call UnitSuspendDecayBJ( true, gg_unit_n016_0051 )
set udg_FailSafeKey = RandomItemInRectSimpleBJ(gg_rct_Region_194)
call TriggerSleepAction( 3.00 )
call QuestMessageBJ( bj_FORCE_PLAYER[2], bj_QUESTMESSAGE_UPDATED, "TRIGSTR_1697" )
call CreateQuestBJ( bj_QUESTTYPE_REQ_DISCOVERED, "TRIGSTR_1698", "TRIGSTR_1699", "ReplaceableTextures\\CommandButtons\\BTNAbsorbMagic.blp" )
set udg_TheButton = GetLastCreatedQuestBJ()
call QuestSetEnabledBJ( true, udg_TheButton )
call QuestSetDiscoveredBJ( udg_TheButton, true )
call FlashQuestDialogButtonBJ( )
call CreateFogModifierRectBJ( true, Player(2), FOG_OF_WAR_VISIBLE, gg_rct_HatchDoor )
call PingMinimapLocForForceEx( bj_FORCE_PLAYER[2], GetRectCenter(gg_rct_HatchDoor), 10.00, bj_MINIMAPPINGSTYLE_FLASHY, 100, 100, 100 )
call StartTimerBJ( udg_Timer1, false, 240.00 )
call CreateTimerDialogBJ( udg_Timer1, "TRIGSTR_1700" )
set udg_Window = GetLastCreatedTimerDialogBJ()
call TimerDialogSetTitleColorBJ( udg_Window, 100, 0.00, 0.00, 0 )
call TimerDialogSetTimeColorBJ( udg_Window, 100, 100.00, 100.00, 0 )
call TimerDialogDisplayForPlayerBJ( false, udg_Window, Player(0) )
call TimerDialogDisplayForPlayerBJ( false, udg_Window, Player(1) )
call TimerDialogDisplayForPlayerBJ( false, udg_Window, Player(3) )
call TimerDialogDisplayForPlayerBJ( false, udg_Window, Player(4) )
call TimerDialogDisplayForPlayerBJ( false, udg_Window, Player(5) )
call TimerDialogDisplayForPlayerBJ( false, udg_Window, Player(6) )
call TimerDialogDisplayForPlayerBJ( false, udg_Window, Player(7) )
call TimerDialogDisplayForPlayerBJ( false, udg_Window, Player(8) )
call TimerDialogDisplayForPlayerBJ( false, udg_Window, Player(9) )
call TimerDialogDisplayForPlayerBJ( false, udg_Window, Player(10) )
call TimerDialogDisplayForPlayerBJ( false, udg_Window, Player(11) )
call TimerDialogDisplayForPlayerBJ( true, GetLastCreatedTimerDialogBJ(), Player(2) )
endfunction

//===========================================================================
function InitTrig_The_Button_Copy_2 takes nothing returns nothing
set gg_trg_The_Button_Copy_2 = CreateTrigger( )
call TriggerRegisterUnitEvent( gg_trg_The_Button_Copy_2, gg_unit_n016_0051, EVENT_UNIT_DEATH )
call TriggerAddAction( gg_trg_The_Button_Copy_2, function Trig_The_Button_Copy_2_Actions )
endfunction

TRIGGER 2

EVENT
Unit - A unit enters The Button <gen>

function Trig_The_Button2_Copy_Func001001 takes nothing returns boolean
return ( IsQuestDiscovered(udg_TheButton) == true )
endfunction

function Trig_The_Button2_Copy_Func001002 takes nothing returns boolean
return ( IsQuestCompleted(udg_TheButton) == false )
endfunction

function Trig_The_Button2_Copy_Conditions takes nothing returns boolean
if ( not GetBooleanAnd( Trig_The_Button2_Copy_Func001001(), Trig_The_Button2_Copy_Func001002() ) ) then
return false
endif
return true
endfunction

function Trig_The_Button2_Copy_Actions takes nothing returns nothing
call QuestMessageBJ( bj_FORCE_PLAYER[2], bj_QUESTMESSAGE_UPDATED, "TRIGSTR_1701" )
call EnableTrigger( gg_trg_The_Button_4 )
call DisableTrigger( GetTriggeringTrigger() )
endfunction

//===========================================================================
function InitTrig_The_Button2_Copy takes nothing returns nothing
set gg_trg_The_Button2_Copy = CreateTrigger( )
call TriggerRegisterEnterRectSimple( gg_trg_The_Button2_Copy, gg_rct_The_Button )
call TriggerAddCondition( gg_trg_The_Button2_Copy, Condition( function Trig_The_Button2_Copy_Conditions ) )
call TriggerAddAction( gg_trg_The_Button2_Copy, function Trig_The_Button2_Copy_Actions )
endfunction

TRIGGER 3

EVENT
Destructible - Button 2830 <gen> dies

function Trig_The_Button3_Func001001 takes nothing returns boolean
return ( IsQuestDiscovered(udg_TheButton) == true )
endfunction

function Trig_The_Button3_Func001002 takes nothing returns boolean
return ( IsQuestCompleted(udg_TheButton) == false )
endfunction

function Trig_The_Button3_Conditions takes nothing returns boolean
if ( not GetBooleanAnd( Trig_The_Button3_Func001001(), Trig_The_Button3_Func001002() ) ) then
return false
endif
return true
endfunction

function Trig_The_Button3_Actions takes nothing returns nothing
call DisableTrigger( GetTriggeringTrigger() )
call PauseTimerBJ( true, udg_Timer1 )
call TimerDialogDisplayBJ( false, GetLastCreatedTimerDialogBJ() )
call QuestMessageBJ( bj_FORCE_PLAYER[2], bj_QUESTMESSAGE_UPDATED, "TRIGSTR_798" )
call QuestSetCompletedBJ( udg_TheButton, true )
call DestructableRestoreLife( gg_dest_DTlv_2830, GetDestructableMaxLife(gg_dest_DTlv_2830), true )
call SetDestructableInvulnerableBJ( gg_dest_DTlv_2830, true )
call CreateFogModifierRectBJ( true, Player(2), FOG_OF_WAR_VISIBLE, gg_rct_DesmondsHatch )
set udg_SeeSwan = GetLastCreatedFogModifier()
call CreateQuestBJ( bj_QUESTTYPE_REQ_DISCOVERED, "TRIGSTR_815", "TRIGSTR_816", "ReplaceableTextures\\CommandButtons\\BTNStaffOfPreservation.blp" )
call SetUnitOwner( gg_unit_n018_0221, Player(2), true )
call SetUnitOwner( gg_unit_n005_0032, Player(2), true )
call SetUnitOwner( gg_unit_n006_0033, Player(2), true )
call SetUnitOwner( gg_unit_n004_0110, Player(2), true )
call SetUnitOwner( gg_unit_n002_0000, Player(2), true )
call SetUnitOwner( gg_unit_n018_0219, Player(2), true )
call SetUnitOwner( gg_unit_n018_0220, Player(2), true )
set udg_TheSwan = GetLastCreatedQuestBJ()
call QuestSetEnabledBJ( true, udg_TheSwan )
call QuestSetDiscoveredBJ( udg_TheSwan, true )
call FlashQuestDialogButtonBJ( )
call StartTimerBJ( udg_Timer2, false, 900.00 )
call CreateTimerDialogBJ( udg_Timer2, "TRIGSTR_819" )
set udg_Timer_Window = GetLastCreatedTimerDialogBJ()
call TimerDialogSetTitleColorBJ( GetLastCreatedTimerDialogBJ(), 0.00, 25.00, 75.00, 0 )
call TimerDialogSetTimeColorBJ( GetLastCreatedTimerDialogBJ(), 0.00, 75.00, 75.00, 0 )
call TimerDialogDisplayForPlayerBJ( false, udg_Timer_Window, Player(0) )
call TimerDialogDisplayForPlayerBJ( false, udg_Timer_Window, Player(1) )
call TimerDialogDisplayForPlayerBJ( false, udg_Timer_Window, Player(3) )
call TimerDialogDisplayForPlayerBJ( false, udg_Timer_Window, Player(4) )
call TimerDialogDisplayForPlayerBJ( false, udg_Timer_Window, Player(5) )
call TimerDialogDisplayForPlayerBJ( false, udg_Timer_Window, Player(6) )
call TimerDialogDisplayForPlayerBJ( false, udg_Timer_Window, Player(7) )
call TimerDialogDisplayForPlayerBJ( false, udg_Timer_Window, Player(8) )
call TimerDialogDisplayForPlayerBJ( false, udg_Timer_Window, Player(9) )
call TimerDialogDisplayForPlayerBJ( false, udg_Timer_Window, Player(10) )
call TimerDialogDisplayForPlayerBJ( false, udg_Timer_Window, Player(11) )
call TimerDialogDisplayForPlayerBJ( true, udg_Timer_Window, Player(2) )
call EnableTrigger( gg_trg_Push_it )
endfunction

//===========================================================================
function InitTrig_The_Button3 takes nothing returns nothing
set gg_trg_The_Button3 = CreateTrigger( )
call TriggerRegisterDeathEvent( gg_trg_The_Button3, gg_dest_DTlv_2830 )
call TriggerAddCondition( gg_trg_The_Button3, Condition( function Trig_The_Button3_Conditions ) )
call TriggerAddAction( gg_trg_The_Button3, function Trig_The_Button3_Actions )
endfunction


TRIGGER 4

EVENT
Player - Player 3 (Teal) types a chat message containing 4 8 15 16 23 42 as An exact match


function Trig_The_Button_4_Func001001 takes nothing returns boolean
return ( IsQuestDiscovered(udg_TheButton) == true )
endfunction

function Trig_The_Button_4_Func001002 takes nothing returns boolean
return ( IsQuestCompleted(udg_TheButton) == false )
endfunction

function Trig_The_Button_4_Conditions takes nothing returns boolean
if ( not GetBooleanAnd( Trig_The_Button_4_Func001001(), Trig_The_Button_4_Func001002() ) ) then
return false
endif
return true
endfunction

function Trig_The_Button_4_Actions takes nothing returns nothing
call QuestMessageBJ( bj_FORCE_PLAYER[2], bj_QUESTMESSAGE_UPDATED, "TRIGSTR_797" )
call SetDestructableInvulnerableBJ( gg_dest_DTlv_2830, false )
call DisableTrigger( GetTriggeringTrigger() )
endfunction

//===========================================================================
function InitTrig_The_Button_4 takes nothing returns nothing
set gg_trg_The_Button_4 = CreateTrigger( )
call TriggerRegisterPlayerChatEvent( gg_trg_The_Button_4, Player(2), "4 8 15 16 23 42", true )
call TriggerAddCondition( gg_trg_The_Button_4, Condition( function Trig_The_Button_4_Conditions ) )
call TriggerAddAction( gg_trg_The_Button_4, function Trig_The_Button_4_Actions )
endfunction

TRIGGER 5

EVENT
Destructible - Button 2830 <gen> dies

function Trig_The_Button3_Copy_Func003001 takes nothing returns boolean
return ( IsQuestDiscovered(udg_TheSwan) == true )
endfunction

function Trig_The_Button3_Copy_Func003002 takes nothing returns boolean
return ( TimerGetRemaining(udg_Timer2) <= 60.00 )
endfunction

function Trig_The_Button3_Copy_Conditions takes nothing returns boolean
if ( not GetBooleanAnd( Trig_The_Button3_Copy_Func003001(), Trig_The_Button3_Copy_Func003002() ) ) then
return false
endif
return true
endfunction

function Trig_The_Button3_Copy_Actions takes nothing returns nothing
call DisableTrigger( GetTriggeringTrigger() )
call PauseTimerBJ( true, udg_Timer2 )
call DestroyTimerDialogBJ( udg_Timer_Window )
call DestructableRestoreLife( gg_dest_DTlv_2830, GetDestructableMaxLife(gg_dest_DTlv_2830), true )
call SetDestructableInvulnerableBJ( gg_dest_DTlv_2830, true )
call StartTimerBJ( udg_Timer2, false, 900.00 )
call CreateTimerDialogBJ( udg_Timer2, "TRIGSTR_821" )
set udg_Timer_Window = GetLastCreatedTimerDialogBJ()
call TimerDialogSetTitleColorBJ( udg_Timer_Window, 0.00, 25.00, 75.00, 0 )
call TimerDialogSetTimeColorBJ( udg_Timer_Window, 0.00, 75.00, 75.00, 0 )
call TimerDialogDisplayForPlayerBJ( false, udg_Timer_Window, Player(0) )
call TimerDialogDisplayForPlayerBJ( false, udg_Timer_Window, Player(1) )
call TimerDialogDisplayForPlayerBJ( false, udg_Timer_Window, Player(3) )
call TimerDialogDisplayForPlayerBJ( false, udg_Timer_Window, Player(4) )
call TimerDialogDisplayForPlayerBJ( false, udg_Timer_Window, Player(5) )
call TimerDialogDisplayForPlayerBJ( false, udg_Timer_Window, Player(6) )
call TimerDialogDisplayForPlayerBJ( false, udg_Timer_Window, Player(7) )
call TimerDialogDisplayForPlayerBJ( false, udg_Timer_Window, Player(8) )
call TimerDialogDisplayForPlayerBJ( false, udg_Timer_Window, Player(9) )
call TimerDialogDisplayForPlayerBJ( false, udg_Timer_Window, Player(10) )
call TimerDialogDisplayForPlayerBJ( false, udg_Timer_Window, Player(11) )
call TimerDialogDisplayForPlayerBJ( true, udg_Timer_Window, Player(2) )
call TimerDialogDisplayForPlayerBJ( true, udg_Timer_Window, udg_NewHatchGuy )
call EnableTrigger( gg_trg_The_Button_5 )
endfunction

//===========================================================================
function InitTrig_The_Button3_Copy takes nothing returns nothing
set gg_trg_The_Button3_Copy = CreateTrigger( )
call TriggerRegisterDeathEvent( gg_trg_The_Button3_Copy, gg_dest_DTlv_2830 )
call TriggerAddCondition( gg_trg_The_Button3_Copy, Condition( function Trig_The_Button3_Copy_Conditions ) )
call TriggerAddAction( gg_trg_The_Button3_Copy, function Trig_The_Button3_Copy_Actions )
endfunction


Well thats the MEAT of one of my more complex triggers that may be causing the desync. PLEASE let me know if you see anything within these triggers that may be causing this annoyance. Much appreciated!!
 

LOST_Creator

New Member
Reaction score
0
Damniit, well Im gonna spend some time and look through all my triggers soon, theres just so god damn many!! Can you give me some ideas on what to look for that could cause a desync?? I'm not a very experienced map maker, I've pretty much taught myself the World Editor. Recently I've been using what I call "double variables" or variables based off of other variables. Although I doubt it could this potentially cause a de-sync?? Im just really new to this problem and I have no idea where to start looking.... Could you elaborate on what a 'Get Local Player' action is and where I can find it under the trigger menu (What type of trigger is it??). Anyways thanks so much for taking a look, I've got a bunch of people who are anxious to play the map and I feel like I've wasted a year of my efforts towards a a map that will never work :banghead:. Please let me if you have experienced a de-sync before, what happened, and how you corrected it. Any further guidance/advice would be much appreciated. Thanks again!!
 
Reaction score
91
Just search for [ljass]GetLocalPlayer()[/ljass] anywhere in your triggers (check every line of code). If you have it, post the specific trigger which contains it here.
 

Accname

2D-Graphics enthusiast
Reaction score
1,463
Damniit, well Im gonna spend some time and look through all my triggers soon, theres just so god damn many!! Can you give me some ideas on what to look for that could cause a desync?? I'm not a very experienced map maker, I've pretty much taught myself the World Editor. Recently I've been using what I call "double variables" or variables based off of other variables. Although I doubt it could this potentially cause a de-sync?? Im just really new to this problem and I have no idea where to start looking.... Could you elaborate on what a 'Get Local Player' action is and where I can find it under the trigger menu (What type of trigger is it??). Anyways thanks so much for taking a look, I've got a bunch of people who are anxious to play the map and I feel like I've wasted a year of my efforts towards a a map that will never work :banghead:. Please let me if you have experienced a de-sync before, what happened, and how you corrected it. Any further guidance/advice would be much appreciated. Thanks again!!
GetLocalPlayer returns a player which is the user himself at every computer, this means if 12 players play a game where GetLocalPlayer is called it returns different values for each different player.
Its used to make actions happen for a single player only which would normally effect everybody, like fade-out for example.
it works something like this, maybe you understand better with an example:
(BEWARE HANDWRITTEN!)
Trigger:
  • Actions
    • custom script: udg_TempPlayer = (GetLocalPlayer)
    • custom script: if udg_TempPlayer Equal Player 1 (Red)
    • Cinematic - Fade-out over 2.00 seconds using texture white Mask and color (0.00%, 0.00%, 0.00%) with 0.00% transparency
    • Game - Display to (All players) the text: (Name of TempPlayer)
    • custom script: endif

this trigger would make the screen fade out for player 1 red ONLY and show him the message and only him. it will happen only for his computer and nobody will notice.
This particular trigger will not cause desync because the actions do not effect gameplay.
actions which will cause desync if used together with GetLocalPlayer are for example (as far as i know) all "Unit - xyz" actions such as "Unit - Kill Unit" and such. It would result in one player playing a totally different game then others if actions like these would happen for a local player only.
 

LOST_Creator

New Member
Reaction score
0
Just search for [ljass]GetLocalPlayer()[/ljass] anywhere in your triggers (check every line of code). If you have it, post the specific trigger which contains it here.
Alright, but I don't use custom scripts, does that make any difference?

Also, do I have to convert each trigger to Custom Text before I search for GetLocalPlayer()?
(I assume this is what you meant by check every line, just making sure)
 

Accname

2D-Graphics enthusiast
Reaction score
1,463
you can use GetLocalPlayer with Jass only anyhow, if you use plain GUI you are pretty much likely not using it. forget about GetLocalPlayer if you dont know what it is and neither did you use some system made by somebody else i am pretty sure its something else is your problem.
 

LOST_Creator

New Member
Reaction score
0
Alright, but I don't use custom scripts, does that make any difference?

Also, do I have to convert each trigger to Custom Text before I search for GetLocalPlayer()?
(I assume this is what you meant by check every line, just making sure)
I looked through alot of my suspicious codes and found alot of GetMatchingPlayer, GetTriggeringPlayer, ect. but none of them said GetLocalPlayer yet. I probably don't know how to do that :p
 

LOST_Creator

New Member
Reaction score
0
GetLocalPlayer returns a player which is the user himself at every computer, this means if 12 players play a game where GetLocalPlayer is called it returns different values for each different player.
Its used to make actions happen for a single player only which would normally effect everybody, like fade-out for example.
it works something like this, maybe you understand better with an example:
(BEWARE HANDWRITTEN!)
Trigger:
  • Actions
    • custom script: udg_TempPlayer = (GetLocalPlayer)
    • custom script: if udg_TempPlayer Equal Player 1 (Red)
    • Cinematic - Fade-out over 2.00 seconds using texture white Mask and color (0.00%, 0.00%, 0.00%) with 0.00% transparency
    • Game - Display to (All players) the text: (Name of TempPlayer)
    • custom script: endif

this trigger would make the screen fade out for player 1 red ONLY and show him the message and only him. it will happen only for his computer and nobody will notice.
This particular trigger will not cause desync because the actions do not effect gameplay.
actions which will cause desync if used together with GetLocalPlayer are for example (as far as i know) all "Unit - xyz" actions such as "Unit - Kill Unit" and such. It would result in one player playing a totally different game then others if actions like these would happen for a local player only.
Thanks so much for your detailed reply! I don't use custom scripts in my map though, could I be using that command in another way perhaps? And as for your final comment I have countless action triggers involving killing, and moving units for GetOwningPlayer() or GetTriggeringUnit() but I don't believe any of them have GetLocalPlayer(). There must be some other reason for the desync. I plan on testing the map soon, it would just be nice to have some idea what I'm looking for before I do so.
 

LOST_Creator

New Member
Reaction score
0
you can use GetLocalPlayer with Jass only anyhow, if you use plain GUI you are pretty much likely not using it. forget about GetLocalPlayer if you dont know what it is and neither did you use some system made by somebody else i am pretty sure its something else is your problem.
Yup I am using plain of Warcraft 3: The Frozen Throne World Editor version 1.24e (6059). What is odd is that I am able to host other warcraft 3 games over my LAN with 4 players, but with my map it seems that I always have this desync issue about 20 minutes into the game if there are more than 2 players. I have recently added in quests to the game that only certain players are able to complete, could this be a potential cause to the desync?
 

tooltiperror

Super Moderator
Reaction score
231
Converted GUI Trigger is worthless.

Post your triggers.
 

LOST_Creator

New Member
Reaction score
0
Here's one of my more complicated ones:

Code:
[B]EVENT[/B]
Destructible - Button 2830 <gen> dies

[B]CONDITION[/B]
((TheSwan is discovered) Equal to True) and ((Remaining time for Timer2) Less than or equal to 60.00)

[B]ACTION[/B]
Trigger - Turn off (This trigger)

Countdown Timer - Pause Timer2

Countdown Timer - Destroy Timer_Window

Destructible - Resurrect Button 2830 <gen> with (Max life of Button 2830 <gen>) life and Show birth animation

Destructible - Make Button 2830 <gen> Invulnerable

Countdown Timer - Start Timer2 as a One-shot timer that will expire in 900.00 seconds

Countdown Timer - Create a timer window for Timer2 with title The Button

Set Timer_Window = (Last created timer window)

Countdown Timer - Change the color of the title for Timer_Window to (0.00%, 25.00%, 75.00%) with 0.00% transparency

Countdown Timer - Change the color of the time for Timer_Window to (0.00%, 75.00%, 75.00%) with 0.00% transparency

Countdown Timer - Hide Timer_Window for Player 1 (Red)

Countdown Timer - Hide Timer_Window for Player 2 (Blue)

...ect....

Countdown Timer - Hide Timer_Window for Player 12 (Brown)

Countdown Timer - Show Timer_Window for Player 3 (Teal)

Trigger - Turn on The Button 5 <gen>


Not sure if there's anything there.. Anyone have any idea what kind of triggers I can make in the GUI that could cause this?? I have no idea what type of triggers to look for
 

LOST_Creator

New Member
Reaction score
0
Another person posted this on a different form where I asked the same question:

This problem is probably caused by quests since they're only meant for single player games. Remove all quests (and save first then remove the quest if it dosen't work!) and the map should work properly.

It seems likely as it is a new problem and I recently added in quests. If this is the case, does anyone know a way to implement in the quests without causing this problem (de-sync)?
 

tooltiperror

Super Moderator
Reaction score
231
First of all, don't double/triple post, just use the edit button (
edit.gif
) and edit your message.

Secondly, I'm sorry, but I can't help, I don't know how GUI desyncs.
 
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

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top