WhatsApp Discord
Source Inicial Launcher Update: Magic Blue Edition para Mu Online - Source Mu - Mu Server Files
 

Source Inicial Launcher Update: Magic Blue Edition para Mu Online

Publicado por Dakosmu, Abr 04, 2026, 10:46 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Keywords Launcher

Dakosmu

Launcher Update: Magic Blue Edition para Mu Online

Regístrate para ver el enlace

Presentamos una nueva actualización visual para nuestra suite de herramientas: el Magic Blue Launcher. Este diseño abandona lo rústico para enfocarse en una estética futurista y mágica, con tonos azules profundos y efectos de neón, ideal para servidores Season 6 en adelante.

imagen png
Regístrate para ver el enlace


Novedades de la Versión Magic Blue
  • Progress Bar Integrada: Nueva barra de carga con degradado dinámico integrada en el chasis de la interfaz.
  • Efecto Glassmorphism: Paneles con semi-transparencia que permiten ver el wallpaper del usuario.
  • Optimización de Recursos: Consumo de memoria reducido al utilizar renderizado nativo de PyQt6.
  • Social Links: Espacio pre-configurado para Discord, YouTube y Facebook.

Este código es independiente de versiones anteriores y utiliza un sistema de capas ARGB para la transparencia del personaje.

Instalación y Uso
  • Descarga el archivo magic_blue.png (asegúrate de que el fondo sea transparente).
  • Ejecuta el script
    launcher_magic_blue.py.
  • El botón "Jogar" ya viene pre-estilizado para resaltar con el brillo azul de la armadura.



import sys
import os
from PyQt6.QtWidgets import (QApplication, QMainWindow, QWidget, QPushButton,
                            QLabel, QProgressBar)
from PyQt6.QtCore import Qt, QPoint, QTimer
from PyQt6.QtGui import QPixmap

class MagicBlueLauncher(QMainWindow):
    def __init__(self):
        super().__init__()

        # 1. Configuración de Transparencia y sin bordes
        self.setWindowFlags(Qt.WindowType.FramelessWindowHint)
        self.setAttribute(Qt.WidgetAttribute.WA_TranslucentBackground)

        # 2. Carga de imagen: Usamos "mejorar.png" porque así se ve en tu carpeta
        # Si IrfanView lo guardó sin extensión visible, PyQt lo detectará como mejorar.png
        image_path = "mejorar.png"
       
        if not os.path.exists(image_path):
            # Intento secundario por si no tiene la extensión .png en el nombre
            image_path = "mejorar"

        self.pixmap = QPixmap(image_path)
        if self.pixmap.isNull():
            print(f"Error: No se pudo cargar la imagen desde {image_path}")
            sys.exit()
           
        self.setFixedSize(self.pixmap.size())

        self.container = QWidget(self)
        self.container.setFixedSize(self.pixmap.size())

        # Fondo
        self.bg_label = QLabel(self.container)
        self.bg_label.setPixmap(self.pixmap)
        self.bg_label.setGeometry(0, 0, self.pixmap.width(), self.pixmap.height())

        # --- INTERFAZ AJUSTADA A TU NUEVA IMAGEN ---
       
        # Barra de Progreso (Ubicada sobre las líneas de luz abajo a la izquierda)
        self.progress = QProgressBar(self.container)
        self.progress.setGeometry(30, 940, 520, 15)
        self.progress.setTextVisible(False)
        self.progress.setStyleSheet("""
            QProgressBar {
                background-color: rgba(10, 20, 50, 100);
                border: 1px solid #3a86ff;
                border-radius: 7px;
            }
            QProgressBar::chunk {
                background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,
                                    stop:0 #00d4ff, stop:1 #3a86ff);
                border-radius: 6px;
            }
        """)
       
        # Botón JOGAR (Encima del botón azul brillante abajo a la derecha)
        self.btn_jogar = self.crear_boton_transparente(690, 885, 180, 60)
       
        # Botones Superiores (Site, VIPs, Cadastro)
        self.btn_site = self.crear_boton_transparente(20, 160, 50, 30)
        self.btn_vips = self.crear_boton_transparente(75, 160, 50, 30)
        self.btn_cad = self.crear_boton_transparente(135, 160, 90, 30)

        # Botón Cerrar (La X circular azul arriba a la derecha)
        self.btn_close = QPushButton("", self.container)
        self.btn_close.setGeometry(880, 155, 35, 35)
        self.btn_close.setStyleSheet("background: transparent; border: none;")
        self.btn_close.clicked.connect(self.close)

        # Simulación de carga para la barra
        self.timer = QTimer()
        self.timer.timeout.connect(self.animar_progreso)
        self.valor_carga = 0
        self.timer.start(30)

        self.old_pos = None

    def crear_boton_transparente(self, x, y, w, h):
        btn = QPushButton("", self.container)
        btn.setGeometry(x, y, w, h)
        btn.setStyleSheet("""
            QPushButton { background: transparent; border: none; }
            QPushButton:hover { background-color: rgba(0, 212, 255, 30); border-radius: 10px; }
        """)
        return btn

    def animar_progreso(self):
        if self.valor_carga < 100:
            self.valor_carga += 1
            self.progress.setValue(self.valor_carga)
        else:
            self.timer.stop()

    def mousePressEvent(self, event):
        if event.button() == Qt.MouseButton.LeftButton:
            self.old_pos = event.globalPosition().toPoint()

    def mouseMoveEvent(self, event):
        if self.old_pos is not None:
            delta = QPoint(event.globalPosition().toPoint() - self.old_pos)
            self.move(self.x() + delta.x(), self.y() + delta.y())
            self.old_pos = event.globalPosition().toPoint()

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = MagicBlueLauncher()
    window.show()
    sys.exit(app.exec())


Recuerda guardar el script con codificación UTF-8 (sin BOM) para evitar errores en las rutas de los archivos.

Probado y funcional en Windows 10 y Windows 11 con soporte para High DPI.

Descargas
Regístrate para ver el enlace
Regístrate para ver el enlace
Bon Dia

🡱 🡳
Real Time Web Analytics