Jump to content

LaMe - Launcher


exec
 Share

Recommended Posts

LaunchMe is a simple launcher/downloader, inspired by the older Ragnarok Online launchers used by the pserver community. Aside from starting the client with custom parameters it can also download pack files and be customized graphically.

This is an alpha release, it has barely been tested, aside from general functionality, and doesn't do much besides downloading and launching. The main reason I wrote this is because I've never written a customizable window and was curious =< But I'm sure someone will find a use for it^^

c268b76a83.png

Features

  • Launching
  • Pack Download
  • Customizeable
  • Browser Element (e.g. to display patch notes)
  • Playing BGM

Download (55KB)
Source

How to make LaMe download packages

LaMe simply downloads files via HTTP and moves them to the "package" folder. If a file already exists the download is skipped. There is no version checks or checknums, if a file from the list doesn't exist in the local package folder LaMe will download it. If you or the client delete a file it will simply be re-downloaded next time you start LaMe.

Put a URL to a folder into the ini file, at Packages/URL. LaMe will look for the download list file (specified in Packages/List) and the actual packs at that address. The list simply contains one file name per line, e.g.

1001-my_features.pack
1002-white_beabhein.pack

There are no naming conventions, these are just examples. Empty lines or lines starting with "//" (comments) are skipped.

How to customize it

Design: The design consists of multiple images that can be found in the "LaMe" folder, the window background, the close and start buttons, and the various states for those buttons (hover, down, disabled). To change anything, just replace the files and adjust the settings in the ini file. The background treats pink (255,0,255) as transparent, so you can do rounded corners and stuff.

Naming: The LaMe.exe looks for the ini and image folder based on its own name. If you rename the exe to "Ibam.exe" you also have to rename the ini and the folder to "Ibam.ini" and "Ibam". In theory this allows for multiple launchers to co-exist.

Future features

If you have ideas for additional features feel free to post them here.

  • Like 4
Link to comment
Share on other sites

  • 9 months later...
3 minutes ago, exec said:

Certainly, here's the method where the ini file is read, after creating if it doesn't exist:

https://github.com/exectails/LaMe/blob/master/LaMe/FrmMain.cs#L60

Simply remove the ini stuff and set the variables to whatever you want.

After I modified the source, could I compile it in a Linux just like Aura (Since I haven't install MS Visual Studio...)?

I guess it is .. right O.o?

# cd LaMe
# mkdir -p bin/Release
# xbuild /p:Configuration=Release LaMe.sln

 

Link to comment
Share on other sites

  • 1 month later...

I honestly feel lost trying to get it working, despite the documentation present...
I honestly cant even get the client to start with it :'(
I annexed my LaMe.ini file here...

EDIT1: Did get it to play Radioactive from Imagine Dragons but that's about it...

EDIT2: The dump file might help...

LaMe.ini

Mabinogi__2016-07-22_17-38.dmp

Edited by YaibaToKen
Link to comment
Share on other sites

; File name of the client executable
; e.g. client.exe
Exe = C:\Nexon\Library\mabinogi\appdata\Client.exe

Compare the example to your value, what's the difference?^^

; Url to the folder containing the list and packages
; e.g. http://localhost/packages
Url = C:/Users/YaibaToKen/Downloads/Games/Mabinogi/LaMe_1.0.0a/Packages/

Again, pay close attention to the example. What LaMe wants here is not the path to your folder, but an HTTP address where it can download the packages, like the one in the example, if you had a web server running on port 80 with a "packages" sub-folder.

Link to comment
Share on other sites

4 hours ago, exec said:

; File name of the client executable
; e.g. client.exe
Exe = C:\Nexon\Library\mabinogi\appdata\Client.exe

Compare the example to your value, what's the difference?^^


; Url to the folder containing the list and packages
; e.g. http://localhost/packages
Url = C:/Users/YaibaToKen/Downloads/Games/Mabinogi/LaMe_1.0.0a/Packages/

Again, pay close attention to the example. What LaMe wants here is not the path to your folder, but an HTTP address where it can download the packages, like the one in the example, if you had a web server running on port 80 with a "packages" sub-folder.

When I ran LaMe, it downloaded the package files for a subfolder called packages in it's root dir. As for the difference in the client name, most likely the letter case, but the file name is indeed in UpperCase. I guess I should just ask it straight out. Is LaMe supposed to be estracted to Mabi's root folder?

EDIT1: So I placed the files inside Mabinogi's root folder and ran it and it worked... Turns out that was the step I was missing. As for the package files URL, I know I will have to change that to a proper URL but for local use it works.

EDIT2: Does the webserver supplied as a part of aura provide any way to send files for LaMe atm? While I know programming and stuff, servers were never my strong suit, though I'm looking to change that.

Edited by YaibaToKen
Link to comment
Share on other sites

I thought it obvious that LaMe has to go into the Mabi folder, my bad. The difference I meant on the first quote was that you shouldn't use your local path, but just "client.exe", because that's all it takes when you run LaMe from the Mabi folder, and that's the only way it will work for others who might have Mabi in a different folder.

That the path worked for the URL surprises me, but it's good to know.

The web server can serve files, it already does so with the hotkeys and the visual chat.

https://github.com/aura-project/aura/blob/master/src/WebServer/WebServer.cs#L101

The folder "user/public/" is set as static folder, so whatever you put in there will be accessible through "http://localhost/user/web/public/...".

  • Like 1
Link to comment
Share on other sites

25 minutes ago, exec said:

I thought it obvious that LaMe has to go into the Mabi folder, my bad. The difference I meant on the first quote was that you shouldn't use your local path, but just "client.exe", because that's all it takes when you run LaMe from the Mabi folder, and that's the only way it will work for others who might have Mabi in a different folder.

That the path worked for the URL surprises me, but it's good to know.

The web server can serve files, it already does so with the hotkeys and the visual chat.

https://github.com/aura-project/aura/blob/master/src/WebServer/WebServer.cs#L101

The folder "user/public/" is set as static folder, so whatever you put in there will be accessible through "http://localhost/user/web/public/...".

Well, that should solve my problem for delivering the files to the users. I didn't know how to use the webserver for that, now I know :) thanks exec, you rule!

A reminder that a path and an url are the same for the local machine, when accessed through a browser. The browser will simply show the file tree for the directory. Since what LaMe does is simply access the directory the path works because it's location was accessible in my machine.

Link to comment
Share on other sites

On 23.7.2016 at 11:59 AM, YaibaToKen said:

The browser will simply show the file tree for the directory.

That's an implementation detail of the browser though, just because the popular browsers handle paths doesn't necessarily mean the WebClient class does as well^^ Though it is very likely using IE behind the scenes... but still!

(*looks at LaMe source code* Wow, I don't remember writing a single line of this...)

Link to comment
Share on other sites

8 hours ago, exec said:

That's an implementation detail of the browser though, just because the popular browsers handle paths doesn't necessarily mean the WebClient class does as well^^ Though it is very likely using IE behind the scenes... but still!

(*looks at LaMe source code* Wow, I don't remember writing a single line of this...)

well IE has been handling it for ages now xD and it's kind of the standard for the minimum reqs for a browser nowadays, so I did indeed assume things xD but yeah, I think in most languages you can handle a path the same way as an url as longs as the path directs to the local machine ;) don't quote me on that though

Link to comment
Share on other sites

  • 3 months later...

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...