static void ShowOnHudSuccess(ref ChangeShowOnHudMsg msg, MyNetworkClient sender)
        {
            Dictionary <int, MyGps> gpsList;
            var result = MySession.Static.Gpss.m_playerGpss.TryGetValue(msg.IdentityId, out gpsList);

            if (result)
            {
                MyGps gps;
                result = gpsList.TryGetValue(msg.Hash, out gps);
                if (result)
                {
                    gps.ShowOnHud = msg.Show == 1;
                    gps.DiscardAt = null;//finalize

                    var handler = MySession.Static.Gpss.GpsChanged;
                    if (handler != null)
                    {
                        handler(msg.IdentityId, msg.Hash);
                    }

                    if (msg.IdentityId == MySession.LocalPlayerId)
                    {
                        if (gps.ShowOnHud)
                        {
                            MyHud.GpsMarkers.RegisterMarker(gps);
                        }
                        else
                        {
                            MyHud.GpsMarkers.UnregisterMarker(gps);
                        }
                    }
                }
            }
        }
        static void ShowOnHudRequest(ref ChangeShowOnHudMsg msg, MyNetworkClient sender)
        {
            Dictionary <int, MyGps> gpsList;
            var result = MySession.Static.Gpss.m_playerGpss.TryGetValue(msg.IdentityId, out gpsList);

            if (result != null)
            {
                Sync.Layer.SendMessageToAllAndSelf(ref msg, MyTransportMessageEnum.Success);
            }
        }
        void SendChangeShowOnHud(long identityId, int gpsHash, bool show)
        {
            var msg = new ChangeShowOnHudMsg();

            msg.IdentityId = identityId;
            msg.Hash       = gpsHash;
            msg.Show       = (byte)(show?1:0);

            Sync.Layer.SendMessageToServer(ref msg, MyTransportMessageEnum.Request);
        }
        static void ShowOnHudSuccess(ref ChangeShowOnHudMsg msg, MyNetworkClient sender)
        {
            Dictionary<int,MyGps> gpsList;
            var result = MySession.Static.Gpss.m_playerGpss.TryGetValue(msg.IdentityId, out gpsList);
            if (result)
            {
                MyGps gps;
                result = gpsList.TryGetValue(msg.Hash, out gps);
                if(result)
                {
                    gps.ShowOnHud = msg.Show == 1;
                    gps.DiscardAt = null;//finalize

                    var handler = MySession.Static.Gpss.GpsChanged;
                    if (handler != null)
                        handler(msg.IdentityId,msg.Hash);

                    if (msg.IdentityId == MySession.LocalPlayerId)
                    {
                        if (gps.ShowOnHud)
                            MyHud.GpsMarkers.RegisterMarker(gps);
                        else
                            MyHud.GpsMarkers.UnregisterMarker(gps);
                    }
                }

            }
        }
        static void ShowOnHudRequest(ref ChangeShowOnHudMsg msg, MyNetworkClient sender)
        {
            Dictionary<int,MyGps> gpsList;
            var result=MySession.Static.Gpss.m_playerGpss.TryGetValue(msg.IdentityId,out gpsList);

            if (result != null)
            {
                Sync.Layer.SendMessageToAllAndSelf(ref msg, MyTransportMessageEnum.Success);
            }
        }
        void SendChangeShowOnHud(long identityId, int gpsHash, bool show)
        {
            var msg = new ChangeShowOnHudMsg();
            msg.IdentityId=identityId;
            msg.Hash=gpsHash;
            msg.Show=(byte)(show?1:0);

            Sync.Layer.SendMessageToServer(ref msg, MyTransportMessageEnum.Request);
        }