O Emotion Launcher (eLauncher) é um Launcher moderno e dedicado para San Andreas Multiplayer (SA-MP) e Open Multiplayer (open.mp). Desenvolvido com foco em estabilidade, usabilidade e funcionalidades avançadas, o eLauncher oferece uma experiência fluida para conectar-se a servidores multiplayer, gerenciar favoritos, configurar a instalação do GTA San Andreas e manter o Launcher atualizado de forma automática e eficiente.
- Deutsch: README
- English: README
- Español: README
- Français: README
- Italiano: README
- Polski: README
- Русский: README
- Svenska: README
- Türkçe: README
- Emotion Launcher
- Navegação Multi-Fonte: Explore servidores favoritos salvos localmente, servidores online via API do Open.MP e servidores hospedados personalizados.
- Consulta Assíncrona de Informações: Recuperação eficiente e não bloqueante de detalhes do servidor, como nome, modo, idioma, número de jogadores, ping e status de senha.
- Gerenciamento de Favoritos: Adicione, remova e persista servidores favoritos em um arquivo local
servers.ini
. - Diálogo de Conexão Intuitivo: Insira seu nickname e senha do servidor (quando necessário), com persistência automática do nickname.
- Configuração do Caminho do GTA San Andreas: Selecione a pasta de instalação do GTA San Andreas ou baixe um pacote pré-configurado com GTA + SA-MP diretamente pelo Launcher.
- Atualizações Automáticas: Verifica automaticamente novas versões do Launcher online e permite a aplicação de atualizações com um clique.
- Interface com Tema Escuro Personalizado: Design moderno, consistente e visualmente agradável em todas as janelas do Launcher.
- Tratamento de Erros Robusto: Mensagens amigáveis para problemas de conectividade, entradas inválidas ou falhas de atualização.
Para executar o Emotion Launcher, os seguintes componentes são necessários:
Note
Esses componentes são obrigatórios para evitar erros de execução.
- Baixe a versão mais recente do Launcher na página de Releases ou no site oficial: https://elauncher.site.
- Extraia o arquivo baixado para um diretório de sua escolha.
- Execute o arquivo
EmotionLauncher.exe
. - Configure o caminho de instalação do GTA San Andreas clicando no botão de configurações.
- Navegue pelos servidores disponíveis nas abas de favoritos, servidores online ou servidores hospedados.
- Clique duas vezes em um servidor para conectar, inserindo seu nickname e senha, se necessário.
O Emotion Launcher utiliza dois arquivos de configuração principais, localizados no diretório do Launcher:
config.ini
: Armazena o caminho da instalação do GTA San Andreas.
Exemplo de conteúdo:gta_path=C:\Program Files\Rockstar Games\GTA San Andreas
servers.ini
: Contém a lista de servidores favoritos no formatoIP:porta
.
Exemplo de conteúdo:127.0.0.1:7777 play.example.com:7777
O caminho do GTA San Andreas pode ser configurado diretamente na interface do Launcher ou editando manualmente o arquivo config.ini
.
- Selecione um servidor na lista de favoritos, servidores online ou hospedados.
- Clique duas vezes no servidor ou pressione o botão "Conectar".
- Caso o servidor exija senha, uma janela de entrada será exibida.
- Insira seu nickname (salvo automaticamente para sessões futuras).
- Clique em "Entrar" para iniciar o jogo e conectar-se usando o
samp-injector.dll
.
O Launcher verifica periodicamente por atualizações por meio de um manifesto JSON hospedado em:
https://elauncher.site/api/version/version.json
Se uma nova versão for detectada, o Launcher exibe uma notificação para baixar e instalar a atualização. O pacote de atualização é baixado como um arquivo ZIP, extraído após o fechamento do Launcher, substituindo os arquivos antigos e reiniciando o aplicativo automaticamente.
private async void ConnectButton_Click(object sender, EventArgs e)
{
SaveNicknameToIni(UserNickname);
if (string.IsNullOrWhiteSpace(selectedIp) || selectedPort == 0)
{
CustomMessageBox.Show("Warning", "Please select a server before connecting.");
return;
}
try
{
var query = new SAMPQuery.SampQuery(selectedIp, selectedPort);
var info = await query.GetServerInfoAsync();
bool requiresPassword = false;
if (info != null)
{
var prop = info.GetType().GetProperty("Passworded");
if (prop != null)
{
var val = prop.GetValue(info);
requiresPassword = val is int intVal ? intVal == 1 : val is bool boolVal && boolVal;
}
}
using var connectBox = new ConnectInputBox(selectedIp, selectedPort.ToString(), requiresPassword);
if (connectBox.ShowDialog() == DialogResult.OK)
{
string nickname = connectBox.UserNickname;
string password = connectBox.ServerPassword;
EELauncher.Core.SampInjector.Launch(nickname, selectedIp, selectedPort.ToString(), password);
}
}
catch (Exception ex)
{
CustomMessageBox.Show("Error", $"Failed to query server info: {ex.Message}");
}
}
public static class ConfigManager
{
private static readonly string ConfigPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "config.ini");
public static string GetGtaPath()
{
if (!File.Exists(ConfigPath)) return null;
var lines = File.ReadAllLines(ConfigPath);
foreach (var line in lines)
{
if (line.StartsWith("gta_path="))
{
return line.Substring("gta_path=".Length);
}
}
return null;
}
}
public static async Task<bool> CheckForUpdatesAsync()
{
try
{
using var client = new HttpClient();
var json = await client.GetStringAsync(versionUrl);
var serverData = JsonSerializer.Deserialize<VersionData>(json);
if (serverData != null && new Version(serverData.version) > new Version(LocalVersion))
{
var result = MessageBox.Show($"New version available: {serverData.version}\nDo you want to update now?",
"Emotion Launcher - Update Available", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
if (result == DialogResult.Yes)
{
await DownloadAndUpdateAsync(serverData.downloadUrl, serverData.version);
return true;
}
}
}
catch (Exception ex)
{
MessageBox.Show("Error checking updates: " + ex.Message);
}
return false;
}
- samp-injector.dll: Biblioteca da SPC, para inicialização e injeção do SA-MP | open.mp.
- SAMPQuery: Biblioteca de justmavi, para consulta assíncrona de informações de servidores.
- Guna.UI2.WinForms: Controles de interface modernos utilizados no Launcher.
Contribuições são bem-vindas! Você pode colaborar com o Emotion Launcher por meio de:
- Relato de bugs e problemas.
- Sugestões de novas funcionalidades ou melhorias.
- Envio de pull requests com correções ou novos recursos.
Certifique-se de seguir o estilo de código do projeto e testar suas alterações antes de enviar um pull request. As contribuições devem ser compatíveis com o .NET 8.0.
Em caso de dúvidas ou problemas, entre em contato por meio de:
- Abertura de uma issue no repositório GitHub.
- Formulário de contato no site oficial: https://elauncher.site.
Este projeto, Emotion Launcher, é licenciado sob a Licença MIT, uma licença de software livre e permissiva amplamente utilizada. Isso significa que você tem liberdade para:
- Usar, copiar, modificar, mesclar, publicar, distribuir, sublicenciar e/ou vender cópias do software;
- Desde que o aviso de copyright e a permissão da licença sejam incluídos em todas as cópias ou partes substanciais do software.
Important
Este software é fornecido "no estado em que se encontra", sem qualquer tipo de garantia, expressa ou implícita, incluindo, mas não se limitando a garantias de comercialização, adequação a um propósito específico e não infração.
Para mais detalhes legais, consulte o arquivo LICENSE incluído neste repositório.
Agradecemos por utilizar o Emotion Launcher. Seu apoio e contribuições ajudam a manter o projeto ativo e em constante evolução.