[Release] Mu Online Launcher

enemY

New Member
Joined
Oct 22, 2017
Messages
28
Reaction score
12
Здравейте, реших да споделя един Mu Online Launcher, който разработих.
Функции:
1.Смяна на резолюция
2.Спиране/включване на звука
3.При натискане на бутона Play се извършва проверка дали има друг отворен main.exe, ако има се затваря автоматично.
4.Смяна на картинката в Launcher -a от папка Launcher
5.Бутони - Уеб сайт и форум - смяна на информацията от папка Launcher/config.ini

В последствие ще кача още ъпдейти като:
1.Смяна на езика
2.Темплейт система и др.

Изисквания:
Windows 7 -10
.net Framework 4.0


Ъпдейт 1.0 - (15.10.19):
Добавен Модул за език:
Английски Език
Български Език
Испански Език
Руски Език
Полски Език

Ъпдейт 2.0 - (18.10.19):
Съвместимост с всички сезони на Mu Online
Настройка:
1.През Launcher/config.ini -
1.2 - ServerVersion= 0/1 - 0 за стари версии като 97д /// 1 за версии от сезон 1 нагоре.
2. ServerIP-Port=/u127.0.0.1 /p44405 - ИП адрес и Порт само, когато настройката за версия е на 0 за старите версии!

Ъпдейт 3.0 - (28.11.19):

Подобрен дизайн
Добавенa AutoUpdate система - има обяснение как работи във файл README.txt.

Благодарности на @r00tme за помощта!

Снимка:
4939

Download Link: Click
Download Link 2 : Click
Source Code: https://github.com/enemyssss/MU-Launcher-C-Sharp

Credits: enemY
 
Last edited:
Пусковият апарат не се стартира.
 
Пусковият апарат не се стартира.
При мен работи
4912

Провери дали имаш инсталиран .net Framework 4.0 или по-голяма версия.
Също така е важно на коя версия на му онлайн го тестваш.
 
Last edited:
Ъпдейт(15.10.19):
Добавен Модул за език:
Английски Език
Български Език
Испански Език
Руски Език
Полски Език

Download Link: Click
Download Link 2 : Click
 
Last edited:
Добавка за старите версии.

C#:
   private void play_Click(object sender, EventArgs e)

        {
            Process mainexe = new Process();

            Double ServerVersions = 0; // 0 = Old  / 1 = New .. да чете от конфиг може би с филтрация

            String addArguments = ServerVersions == 0 ? "/u127.0.0.1 /p44405" : ""; // IP и Port пак от конфиг с филтрации

            if (File.Exists("main.exe")) // MAIN CHECK

            {
                mainexe.StartInfo.FileName = "main.exe";

                mainexe.StartInfo.Arguments = addArguments;

                mainexe.Start();
            }
            else

            {
                MessageBox.Show("The file MAIN.EXE doesnt exist!"); //FALSE
            }
        }
 
  • Like
Reactions: enemY
Ъпдейт 2.0 - (18.10.19):
Съвместимост с всички сезони на Mu Online
Настройка:
1.През Launcher/config.ini -
1.2 - ServerVersion= 0/1 - 0 за стари версии като 97д /// 1 за версии от сезон 1 нагоре.
2. ServerIP-Port=/u127.0.0.1 /p44405 - ИП адрес и Порт само, когато настройката за версия е на 0 за старите версии!

Благодарности на @r00tme за помощта!

Download Link: Click
Download Link 2 : Click
 
Работа те чака не се отпускай, чакаме сокетен ъпдейтър със сървърна част.
 
  • Like
Reactions: enemY
Can you add the language option PT (Português) in the language selector?
 
  • Like
Reactions: zsnesw
Би било добре да му сложиш и минимизатора с ф11 защото повечето не биха го ползвали само заради това. :p
Друга идея би било да му вградиш кликър (ляв/десен бутон)
 
  • Like
Reactions: dota-sdso
Аз и преди ти бях казал за езика да помислиш за цялостната концепция преди да вградиш всичко в кода, дали няма да е по-добре след като си решил да предложиш такава функция да е динамична.

За езиците, има готови API-та но са платени и/или лимитирани, както и доста бавни, а отделно апликацията трябва да е сввързана с интернет, което не е решение в конкретният случай. От личен опит ти го казвам, ползвал съм езикова библиотека вградена в езика (което предполага скорост и независимост), която за да ми преведе езика бавеше стартирането на програмата с някакви 2-3 секудни, което е много за малка програма. За да предложиш вариант за език, и за да не се налага ти да им превеждаш на 100+ езика.

Аз бих направил следното:
1. Ще разпиша едни константи/променливи с техните стандартни стойности
2. Ще извадя едно меню, в което да излизат всички фрази за да дам възможност на ползвателите да променят стойностите на константите. Ако въведеното е празно или характерите не могат да се парснат да чете основните въведени.

Тук може би ще се наложи да се рестартира сама програмата при смяна на език, защото не съм много сигурен точно как ще стане да ъпдейтне UI-то в реално време. Въпрос на дизайн и може би framework-а който ползваш, но предполагам че C# е достатъчно интелигентен за да има вградена функция за това.

Проекта е супер, много се радвам, че се хвана да го правиш и съм убеден, че ще се използва. А лично за тебе освен това, че ще се забавляваш и ще учиш нови неща докато го правиш. Подкрепям те с две ръце за начинанието. Моят съвет е да изпипваш и обмисляш нещата преди да ги започнеш за да не се налага да се преработва след това и да не предлагаш опции, които могат да те вкарат в проблеми.
 
Last edited:
  • Like
Reactions: enemY
Няма нужда от смяна на езика през лаунчера щом се гласи от конфиг файла трябва да си е предварително зададено една идея ако искаш добави и проверка на това дали сървъра е на линия и да показва Online - Offline

C#:
 private void CheckPort(string Ip, int Port, Label LB)
        {
            TcpClient TcpScan = new TcpClient();
            var result = TcpScan.BeginConnect(Ip, Port, null, null);

            var success = result.AsyncWaitHandle.WaitOne(TimeSpan.FromSeconds(1));
            if (!success)
            {
                LB.Foreground = Brushes.Red;
                LB.Content = "OFFLINE";
            }
            else
            {
                LB.Foreground = Brushes.Green;
                LB.Content = "ONLINE";
            }
        }

Ако това може да ти помогне ползвай го
 
  • Like
Reactions: enemY
Няма нужда от смяна на езика през лаунчера щом се гласи от конфиг файла трябва да си е предварително зададено една идея ако искаш добави и проверка на това дали сървъра е на линия и да показва Online - Offline

Смея да не се съглася с тебе браД този път. Той в конфига в момента има 1,2,3 примерно, като суич но по този начин трябва езиците да ги е разписал предварително в самата програма, което е грешка според мен. Аз му предлагам да направи темплейт система, която да ползва фрази (както в пхп декларираш константа) и всеки админ да може да променя/превежда стойностите им и след това да генерира xml или db файл или направо екзе с константите. Това се отнася за цялостната конфигурация на лаунчера, какво да показва как да го показва конфигурация на сървър и така нататъка.

Нали идеята е, че админа първо трябва да наласи този лаунчер според неговият сървър преди да го прати на играчите. Дефакто админа му трябва конфигуратор за цялостната визия на лаунчера, за целта може би трябва една съпътстваща програма лаунчер конфигуратор, който да генерита тези файлове. Аз бих направил сървър страна, която да праща тази информация динамично дори, а това пък вече ще ми даде възможност да контролирам много други неща в бъдеще, за които може би се сещаш.

Във всички случаи да забиеш 2-3 езика в програмата е глупост и определено такава апликация трудно ще се развива и поддържа в бъдеще. Ето ти сам виждаш, човека пита за португалски, утре ще е китайски....
 
Абе пери only english кво се занимаваш :) Особено в няква игра според мен всичко тря да е само на английски
 
  • Like
Reactions: dota-sdso
Ъпдейт 3.0 - (28.11.19):

Подобрен дизайн
Добавенa AutoUpdate система - има обяснение как работи във файл README.txt.

Download Link: Click
Download Link 2 : Click
 
Last edited:
  • Like
Reactions: dota-sdso