HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

GetLocalPlayer() Desyncs

08-15-2004, 07:30 AM#1
TheBlackMage01
Hey guys, I know this is a common problem but I dont think Battle.net will be patching it any-time soon.

Code:
function Trig_Untitled_Trigger_002_Conditions takes nothing returns boolean
    if ( not ( Player(0) == GetLocalPlayer() ) ) then
        return false
    endif
    return true
endfunction

function Trig_Untitled_Trigger_002_Actions takes nothing returns nothing
    call ChangeElevatorHeight( gg_dest_DTrx_0001, 3 )
endfunction

//===========================================================================
function InitTrig_Untitled_Trigger_002 takes nothing returns nothing
    set gg_trg_Untitled_Trigger_002 = CreateTrigger(  )
    call TriggerRegisterPlayerChatEvent( gg_trg_Untitled_Trigger_002, Player(0), "up", true )
    call TriggerRegisterPlayerChatEvent( gg_trg_Untitled_Trigger_002, Player(1), "up", true )
    call TriggerRegisterPlayerChatEvent( gg_trg_Untitled_Trigger_002, Player(2), "up", true )
    call TriggerAddCondition( gg_trg_Untitled_Trigger_002, Condition( function Trig_Untitled_Trigger_002_Conditions ) )
    call TriggerAddAction( gg_trg_Untitled_Trigger_002, function Trig_Untitled_Trigger_002_Actions )
endfunction

Is there anyway I can replicate this or something similar without desyncs or server splits? I dont care how long or how rigerous it is.
08-15-2004, 12:26 PM#2
Jeltz
I know little about triggers in multiplayer games, but to me it seems that the reason it desyncs is not the function GetLocalPlayer(), it's the way that you use it. When this trigger runs it will only raise the elevator for player 0. What happens when the elevator rises for one player but not the others? There will be differnet meanings on where the elevator is, but that might not desync the game (since the elevator hieght is just graphical). But you might have another trigger which uses the elevator height to open and close walls or soemthing. If you don't do anyhting more with the elevator height it might be that it's enough to have differnet hieght of oen elevator for different players to desync the game.

What are you trying to accomplish with this trigger?
08-15-2004, 02:57 PM#3
PitzerMike
Indeed this is not a bug.
Of course it desyncs because the elevator height is only changed for one player.
I fail to see how you can expect a fix in a patch for that.
08-15-2004, 06:10 PM#4
TheBlackMage01
Ok, so there is no way around this?
08-15-2004, 07:03 PM#5
Jeltz
I don't know partly since desyncs isn't my area and partly because I'm not really sure of what you want to accomplish.
08-15-2004, 07:45 PM#6
TheBlackMage01
Im trying to accomplish making a elevator go up for 1 player and only 1 player , so it made sense I would use the GetLocalPlayer() function. But when I do the server splits and no one is left in game
08-19-2004, 01:42 PM#7
PitzerMike
Quote:
Originally Posted by TheBlackMage01
Im trying to accomplish making a elevator go up for 1 player and only 1 player , so it made sense I would use the GetLocalPlayer() function. But when I do the server splits and no one is left in game

No, there's no way of doing it without a desync.
08-19-2004, 01:47 PM#8
Vexorian
Quote:
Originally Posted by PitzerMike
No, there's no way of doing it without a desync.
GetLocalPlayer() is there to be used correctly, it actually says that it should be used only with local code.

And I actually think that Elevator HEight doesn't change any game play, cause the wall are what change the pathing. And that this desync is caused by the comparission in the Trigger Conditions, you should try with an if then else inside the trigger instead.

This would only make the elevator look like it is at that height for the player, it won't allow the player to use it as if the elevator was at that height