Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Rappelz > Rappelz Private Server
You last visited: Today at 02:37

  • Please register to post and access all features, it's quick, easy and FREE!

 

[Release] HTML based launcher (beta version)

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Apr 2012
Posts: 448
Received Thanks: 768
[Release] HTML based launcher (beta version)

Here is a launcher based on a web page as the official launcher do.
I make it to be compatible with official web pages

The web page has to have these comments:
Code:
<!-- EXECUTE_FILE :  SFrame.exe -->
<!-- LAUNCH_ARGUMENT : /auth_ip:182.162.85.11 /cash /commercial_shop /main_server /help_url_w:902 /help_url_h:670  -->
<!-- UPDATE_COMPLETE_MESSAGE : Update completed. -->
<!-- ALREADY_UPDATE_MESSAGE :  Already updated. -->
<!-- LAUNCH_BUTTON_DECO : html_code_to_set_when_update_done_for_launch_button -->
<!-- CONFIG_BUTTON_DECO : html_code_to_set_for_config_button -->
<!-- LAUNCHER_SIZE : 704, 510 -->
Where:
-EXECUTE_FILE is the file to launch when the launch button is clicked (usually sframe.exe)
-LAUNCH_ARGUMENT is the argument list to add when launching EXECUTE_FILE
-UPDATE_COMPLETE_MESSAGE is the message to show when the update is completed
-ALREADY_UPDATE_MESSAGE is the message to show when all files are already up to date
-LAUNCH_BUTTON_DECO is the html code to insert between span id=LAUNCH_BUTTON and /span elements when the update is completed
-CONFIG_BUTTON_DECO is the html code to insert between span id=CONFIG_BUTTON and /span elements
-LAUNCHER_SIZE is the launcher's window size (width, height)

commands links are:
action://launch/ : start the game (
action://config/ : start RappelzConfig.exe
action://minimize/ : minimize the launcher's window
action://destroy/ : close the launcher's window

Html special elements are:
Code:
<span id=element_name></span>
where element_name is one of the following:
-LAUNCHER_VERSION : where to add the launcher version (currently v1)
CLIENT_VERSION : where to add the client version
MESSAGE : the message to inform the user what the launcher is doing (like Receiving updated information...)
FILENAME : the filename being downloaded
PROGRESS_1 : the progress bar for the current file download progress
PROGRESS_2 : the progress bar for the total update progress
PERCENTAGE_1 : the percentage of the current file download
PERCENTAGE_2 : the percentage of the total update
LAUNCH_BUTTON : where to add LAUNCH_BUTTON_DECO when update completed
CONFIG_BUTTON : where to add CONFIG_BUTTON_DECO

The launcher use a file to know where is the launcher's page and update information file
it's LauncherOptions.xml and is like this:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<launcher>
    <version>0</version>
    <launcherpageurl>http://launcherchinese.rappelz.my/service/Game/Launcher/indexjump1.aspx</launcherpageurl>
    <updatefileurl>http://127.0.0.1/update.txt</updatefileurl>
    <lastwidth>705</lastwidth>
    <lastheight>555</lastheight>
</launcher>
The first time, version should be 0 (or if the downloaded client is already udpated, the coresponding update version number)
launcherpageurl is the url of the launcher page (here it's the rappelz ph one)
updatefileurl is the url of the update information file
lastwidth and lastheight are not needed, they are used to store the previous size of the launcher

The update information file is like this:
Code:
UPDFILE
http://updatedfilelocation.com/
somefiletoupdate.txt:3
someotherfiletoupdate.txt:4
This file MUST begin with UPDFILE (no line before, no space, nothing)
The 2nd line is the base url location, filenames are appended to this string to make the full url of the file to download
All lines after that are file's version:
filename.ext:version
For this example, if the client version is < 3, the launcher will download and
If the client version is 3, it will only download

The update file MUST have an empty line at the end of the file

All files are written to the current directory, you cannot (or else it's a security flaw ) execute a file outside of the current directory

To know how to make a launcher page, use the official ones (windowed mode checkbox is not supported, the "continue" button is not supported, progress bar works like that: percentage = file downloaded/file to download)

Here is some official launcher pages:
(not fully supported)
(flash not supported)
(didn't see any bugs, replace * with fr/de/it/...)
(not fully supported, some deco features not implemented)

Let me know if someone encountered some bugs

This program use Qt 4.8.1, if you don't already have Qt's dll, you can download Qt4.8.1Dlls.zip (these dlls must be in the program's directory or in the PATH env var)
(msvc*100.dll are maybe not needed, but if you need them, they are in Launcher.zip)

Virus total for Launcher.zip:
Virus total scan for Qt4.8.1Dlls.zip:
Attached Files
File Type: zip Launcher.zip (19.8 KB, 222 views)
File Type: zip Qt4.8.1Dlls.zip (9.86 MB, 372 views)



glandu2 is offline  
Thanks
9 Users
Old   #2
 
elite*gold: 0
Join Date: Aug 2011
Posts: 535
Received Thanks: 231
Seems nice my man.


marekrndr is offline  
Thanks
1 User
Old   #3
 
elite*gold: 0
Join Date: Apr 2012
Posts: 448
Received Thanks: 768
A new version that fully support progress bar (relative to total bytes to download)

You need the same Qt dll as in the first post, if you already have them, you do not need to redownload qt's dll

In the web page, there are several thing that will be recognized by the launcher.

Here is an example of how to make a web page for the launcher with all supported parameters:

Use it to know how things works

Official launcher pages are somewhat supported, but not fully for all, if there is a parameter that is not on the example page, it means that this parameter is not supported (as well as specials IDs in <span> tags)

-LAUNCHER_SIZE is the launcher size in pixels
-LAUNCHER_VERSION_DECO is a string that will be inserted in the element that contain LAUNCHER_VERSION id, it must contain %1, this %1 will be replaced with the current launcher version
-CLIENT_VERSION_DECO Same as LAUNCHER_VERSION_DECO but for the client version
-MESSAGE_DECO is a string where %1 will be replaced with the message (UPDATING_MESSAGE, ALREADY_UPDATE_MESSAGE, UPDATE_COMPLETE_MESSAGE or RECEIVING_UPDATE_MESSAGE)
-FILENAME_DECO is a string where %1 is the filename currently being downloaded
-PERCENTAGE_1_DECO / PERCENTAGE_2_DECO %1 is replaced with the current percentage of update completion, PERCENTAGE_1_DECO is for the percentage of downloaded bytes for the current file and PERCENTAGE_2_DECO the percentage of total bytes to download
-PROGRESS_BAR_DECO is a progress bar where %1 is the percentage of progress done and %2 is the remaining percentage so %1+%2 = 100
-LAUNCH_BUTTON_DECO is a string inserted in the element with id = LAUNCH_BUTTON when the update is completed
-CONFIG_BUTTON_DECO Same as the launch button, but is inserted at the beginning, not sure if this parameter is really useful, but some official launcher page require it
-LAUNCH_ARGUMENT: what parameter to add when launching EXECUTE_FILENAME
-EXECUTE_FILENAME: the file to execute when the user click on a link with href=action://LAUNCH/
-*_MESSAGE: message to show at different update status (see example)

action://* links have not changed
Using form to trigger an action is not supported (as used in European launchers)

If you do not have in your page elements with IDs PROGRESS_1 and PERCENTAGE_1, that is you do not want to have the current file download progress informations, the launcher will download severals file at the same time (6 files max) increasing downloading speed

The option file is now case sensitive and must be at least like that:
Code:
<?xml version="1.0" encoding="utf-8"?>
<launcher>
    <updateFileUrl>set your update info url here</updateFileUrl>
    <launcherPageUrl>set your launcher page url here</launcherPageUrl>
    <version>0</version>
</launcher>
launcherPageUrl point to your launcher page like
updateFileUrl point to the update info file (which begins with UPDFILE)

The launcher add lastWidth and lastHeight, but they are just for the launcher to know the last LAUNCHER_SIZE parameter and to avoid resizing the launcher while loading the page

If you delete the file, the launcher will complain about the url not defined and will create the option file with that:
Code:
<?xml version="1.0" encoding="utf-8"?>
<launcher>
    <updateFileUrl>http://www.yourserver.com/updfile.txt</updateFileUrl>
    <launcherPageUrl>http://www.yourserver.com/launcher.html</launcherPageUrl>
    <version>0</version>
    <lastWidth>700</lastWidth>
    <lastHeight>400</lastHeight>
</launcher>
Where you will have to change updateFileUrl and launcherPageUrl to match your settings

The update file is now like this:
Code:
UPDFILE
http://updatedfilelocation.com/
somefiletoupdate.txt:3:1234
someotherfiletoupdate.txt:4:12412
The only difference with the previous version is that there is a new field (1234 and 12412) that is the file size, after the second ':'. The file size is required else the launcher will skip the file, if you don't know exactly the file size, you can use an approximation, this value is used for the percentage of total update calculation, if your value is not the real value, the global progress bar speed will not reflect the real download speed (the file progress bar will remain correct even if the file size provided is not the real size at all).
So now a file is described like this: filename:fileversion:filesize
(And don't forget the last empty line)

As an example, you should use european launchers which are fully supported except for the config button (because it use a form instead of a link)
For test purpose, you can also use the file protocol instead of having a real web server, for example instead of , you can use file://localhost/C:/yourpath/launcher.html and the launcher will load the page on your hdd this way (so no need to have a web server to test it)

If you does not have QtXml4.dll, download QtXml4.dll

If you have any question (or you find bugs), please post here ^^

Virus total for the Launcher:
Virus total for QtXml4:

[EDIT] Launcher updated (and virustotal scan too) to have instead of launcher.txt for the default example config file
You can now specify file in oder folders than the current folder, for example to add a file to update where the file is located in the resources folder, add in the updfile resources/filename.ext:version:filesize
If the server prefix is , it will downloaded from and it will saved in ./resources/filename.ext (".." is not allowed in file names or path so you cannot add a file in ../afolder/filename.ext for example)
Attached Files
File Type: zip QtXml4.zip (131.7 KB, 71 views)
File Type: zip Launcher.zip (28.2 KB, 71 views)
glandu2 is offline  
Reply



« Previous Thread | Next Thread »

Similar Threads
[Release] HTML-Based Launcher
Heya, Since I got bored this morning, I thaught about creating a similar Launcher like the retail one (also I wanted to test around how they were...
13 Replies - Rappelz Private Server
[Release]Beta Graphics Launcher
Updated the program itself with a new ugly background xD http://img191.imageshack.us/img191/9021/mokaj.jpg the download link ...
38 Replies - Grand Chase Hacks, Bots, Cheats & Exploits
[Release][GC All Version]Launcher Mods
1.Download File 2.Extract to Grand Chase folder (ex. C Drive->Ntreev->Grand Chase) 3.Press ok the replace 4.Enjoy =D 5.Thank 6.Comment =) ...
12 Replies - Grand Chase Hacks, Bots, Cheats & Exploits
[Release] Perfect world [MY] Multiclient launcher! THE LAST VERSION (08.01.2010)
Hereby my MultiClient Launcher for PW (MY)! RAPID LINK http://img359.imageshack.us/img359/5933/downloadbutton0409lg1.jpg MEDIAFIRE LINK ...
7 Replies - Perfect World
[Release] ALL VERSIONS Perfect world multiclient launcher! NEW VERSION!
see here! ...
2 Replies - Perfect World



All times are GMT +2. The time now is 02:37.


Powered by vBulletin®
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy
Copyright ©2017 elitepvpers All Rights Reserved.