Ejemplo n.º 1
0
 public static void CerrarSesion(SessionInstance Session, string error)
 {
     if (Session.User != null)
     {
         UserManager.Ajustar_Remuneracion(Session.User);
         MiniGamesManager.CancelarInscripciones(Session.User);
         if (Session.User.Sala != null)
         {
             SalasManager.Salir_Sala(Session);
         }
         UsuariosOnline.Remove(Session.User.id);
         if (Program.ver_conexion_usuarios == true)
         {
             Output.WriteLine("[UserManager] -> Se ha desconectado " + Session.User.nombre + ". > " + error);
         }
         ActualizarUsuarios();
         Program.UpdateTitle();
     }
 }
Ejemplo n.º 2
0
 public static void Salir_Sala(SessionInstance Session, bool ByKick = false)
 {
     if (Session.User.Sala != null)
     {
         if (Session.User.Sala.Usuarios.ContainsKey(Session.User.IDEspacial))
         {
             if (Session.User.Sala.Usuarios.Remove(Session.User.IDEspacial))
             {
                 Session.User.Sala.Map[Session.User.Posicion.y, Session.User.Posicion.x].FijarSession(null);
                 if (Session.Client.Connected)
                 {
                     ServerMessage cargar_flower_power = new ServerMessage();
                     cargar_flower_power.AddHead(128);
                     cargar_flower_power.AddHead(124);
                     Session.SendDataProtected(cargar_flower_power);
                     if (ByKick)
                     {
                         ServerMessage expulsar_usuario = new ServerMessage();
                         expulsar_usuario.AddHead(153);
                         Session.SendDataProtected(expulsar_usuario);
                     }
                 }
                 ServerMessage eliminar_usuario = new ServerMessage();
                 eliminar_usuario.AddHead(128);
                 eliminar_usuario.AddHead(123);
                 eliminar_usuario.AppendParameter(Session.User.IDEspacial);
                 Session.User.Sala.SendData(eliminar_usuario);
                 Session.User.Sala.EliminarInteraccionesDeUsuario(Session.User.IDEspacial);
                 MiniGamesManager.DescalificarParticipante(Session);
                 if (Session.User.Intercambio != null)
                 {
                     Session.User.Intercambio.TerminarCanjeo();
                 }
                 Session.User.Sala = null;
             }
         }
     }
 }
Ejemplo n.º 3
0
        public static bool Entrar_Sala(SessionInstance Session, SalaInstance Sala, Posicion DoorPosicion)
        {
            int key = 1;

            if (Sala.Visitantes < Sala.Escenario.max_visitantes)
            {
                if (Session.User.Sala != null)
                {
                    if (Session.User.Sala.Escenario.es_categoria == Sala.Escenario.es_categoria && Session.User.Sala.id == Sala.id)
                    {
                        return(false);
                    }
                    Salir_Sala(Session);
                }
                while (Sala.Usuarios.ContainsKey(key))
                {
                    key++;
                }
                Sala.Usuarios.Add(key, Session);
                if (Sala.Usuarios.ContainsKey(key))
                {
                    if (Sala.Escenario.es_categoria == 2)
                    {
                        Session.User.Posicion = MiniGamesManager.ObtenerPuerta(Sala.Escenario, key);
                        if (Sala.Ring != null)
                        {
                            Sala.Ring.Participantes.Add(key, Session);
                            Session.User.CocosRestantes = 3;
                        }
                        if (Sala.Cocos != null)
                        {
                            Sala.Cocos.Participantes.Add(key, Session);
                            Session.User.CocosRestantes = 3;
                        }
                        if (Sala.Sendero != null)
                        {
                            Sala.Sendero.Participantes.Add(key, Session);
                            Session.User.CocosRestantes = 3;
                        }
                        if (Sala.Camino != null)
                        {
                            Sala.Camino.Participantes.Add(key, Session);
                            Session.User.CocosRestantes = 3;
                        }
                    }
                    else
                    {
                        if (DoorPosicion != null)
                        {
                            Session.User.Posicion = DoorPosicion;
                        }
                        else
                        {
                            Session.User.Posicion = new Posicion(Sala.Puerta.x, Sala.Puerta.y);
                        }
                    }
                    Session.User.Sala        = Sala;
                    Session.User.IDEspacial  = key;
                    Session.User.Trayectoria = new Trayectoria(Session);
                    Session.User.Sala.Map[Session.User.Posicion.y, Session.User.Posicion.x].FijarSession(Session);
                    if (Session.User.colores_old != "")
                    {
                        Session.User.colores     = Session.User.colores_old;
                        Session.User.colores_old = "";
                        Session.User.block_upper = false;
                    }
                    Session.User.Sala.EnviarRegistro(Session);
                    return(true);
                }
            }
            return(false);
        }